project_creation_date: '2017-06-30'
lifecycle_state: 'Incubation'
project_lead: &onap_releng_ptl
- name: 'Ram Koya'
- email: 'rk541m@att.com'
- id: 'rampi_k'
+ name: 'Mandar Sawant'
+ email: 'ms5838@att.com'
+ id: 'sawantmandar'
company: 'ATT'
timezone: 'America/Dallas'
primary_contact: *onap_releng_ptl
company: 'ATT'
id: 'sawantmandar'
timezone: 'America/Dallas'
- - name: 'Varun Gudisena'
- email: 'vg411h@att.com'
- company: 'ATT'
- id: 'vg411h'
- timezone: 'America/Dallas'
- name: 'Bhanu Ramesh'
email: 'bg6954@att.com'
company: 'ATT'
email: 'conor.ward@ericsson.com'
company: 'ericsson'
id: 'econwar'
- timezone: 'America/Dallas'
+ timezone: 'Europe/Dublin'
+ - name: 'Fiachra Corcoran'
+ email: 'fiachra.corcoran@est.tech'
+ company: 'ericsson'
+ id: 'efiacor'
+ timezone: 'Europe/Dublin'
+
tsc:
approval: 'https://lists.onap.org/pipermail/onap-tsc'
changes:
name: 'Xinhui Li'
name: 'Jing Wang'
name: 'Ramdas Sawant'
+ name: 'Varun Gudisena'
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
- <dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
- </dependency>
</dependencies>
<profiles>
<profile>
try {
resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid request URI. Expecting <feed-publishing-url>/<fileid>.");
} catch (IOException e) {
- logger.error("NODE0541 DRNodeCadiFilter.getFeedId: ", e.getMessage());
+ logger.error("NODE0541 DRNodeCadiFilter.getFeedId: ", e);
}
return null;
}
try {
resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid request URI. Expecting <feed-publishing-url>/<fileid>. Possible missing fileid.");
} catch (IOException e) {
- logger.error("NODE0542 DRNodeCadiFilter.getFeedId: ", e.getMessage());
+ logger.error("NODE0542 DRNodeCadiFilter.getFeedId: ", e);
}
return null;
}
this.pubid = pubid;
this.spool = spool;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DelItem delItem = (DelItem) o;
+ return Objects.equals(pubid, delItem.pubid) &&
+ Objects.equals(getSpool(), delItem.getSpool());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(pubid, getSpool());
+ }
}
private double fdstart;
try {
wait(nextcheck + 500 - now);
} catch (Exception e) {
+ logger.error("InterruptedException", e);
}
now = System.currentTimeMillis();
}
package org.onap.dmaap.datarouter.node;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
import java.io.*;
import java.util.*;
* failure timer is active or if no files are found in a directory scan.
*/
public class DeliveryQueue implements Runnable, DeliveryTaskHelper {
+ private static EELFLogger logger = EELFManager.getInstance().getLogger(DeliveryQueue.class);
private DeliveryQueueHelper deliveryQueueHelper;
private DestInfo destinationInfo;
private Hashtable<String, DeliveryTask> working = new Hashtable<>();
try {
pidtime = Long.parseLong(fname2.substring(0, dot));
} catch (Exception e) {
+ logger.error("Exception", e);
}
if (pidtime < 1000000000000L) {
continue;
hdrv.add(new String[]{h, v});
}
} catch (Exception e) {
- eelfLogger.error("Exception "+ Arrays.toString(e.getStackTrace()), e.getMessage());
+ eelfLogger.error("Exception", e);
}
hdrs = hdrv.toArray(new String[hdrv.size()][]);
url = deliveryTaskHelper.getDestURL(fileid);
outputStream.close();
} catch (IOException e) {
httpURLConnection.setRequestProperty("Decompression_Status", "FAILURE");
- eelfLogger.info("Could not decompress file");
+ eelfLogger.info("Could not decompress file", e);
sendFile(httpURLConnection);
}
private boolean decompress;
private boolean followRedirects;
private String aafInstance;
- /**
- * Create a destination information object.
- *
- * @param name n:fqdn or s:subid
- * @param spool The directory where files are spooled.
- * @param subid The subscription ID (if applicable).
- * @param logdata Text to be included in log messages
- * @param url The URL to deliver to.
- * @param authuser The auth user for logging.
- * @param authentication The credentials.
- * @param metaonly Is this a metadata only delivery?
- * @param use100 Should I use expect 100-continue?
- * @param privilegedSubscriber Can we wait to receive a file processed acknowledgement before deleting file
- * @param followRedirects Is follow redirect of destination enabled?
- * @param decompress To see if the they want there information compressed or decompressed
- */
- public DestInfo(String name, String spool, String subid, String logdata, String url, String authuser, String authentication, boolean metaonly, boolean use100, boolean privilegedSubscriber, boolean followRedirects, boolean decompress) {
- this.name = name;
- this.spool = spool;
- this.subid = subid;
- this.logdata = logdata;
- this.url = url;
- this.authuser = authuser;
- this.authentication = authentication;
- this.metaonly = metaonly;
- this.use100 = use100;
- this.privilegedSubscriber = privilegedSubscriber;
- this.followRedirects = followRedirects;
- this.decompress = decompress;
+
+ public static class DestInfoBuilder {
+ private String name;
+ private String spool;
+ private String subid;
+ private String logdata;
+ private String url;
+ private String authuser;
+ private String authentication;
+ private boolean metaonly;
+ private boolean use100;
+ private boolean privilegedSubscriber;
+ private boolean followRedirects;
+ private boolean decompress;
+ private NodeConfig.ProvSubscription subscription;
+
+ public DestInfoBuilder setName(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public DestInfoBuilder setSpool(String spool) {
+ this.spool = spool;
+ return this;
+ }
+
+ public DestInfoBuilder setSubid(String subid) {
+ this.subid = subid;
+ return this;
+ }
+
+ public DestInfoBuilder setLogdata(String logdata) {
+ this.logdata = logdata;
+ return this;
+ }
+
+ public DestInfoBuilder setUrl(String url) {
+ this.url = url;
+ return this;
+ }
+
+ public DestInfoBuilder setAuthuser(String authuser) {
+ this.authuser = authuser;
+ return this;
+ }
+
+ public DestInfoBuilder setAuthentication(String authentication) {
+ this.authentication = authentication;
+ return this;
+ }
+
+ public DestInfoBuilder setMetaonly(boolean metaonly) {
+ this.metaonly = metaonly;
+ return this;
+ }
+
+ public DestInfoBuilder setUse100(boolean use100) {
+ this.use100 = use100;
+ return this;
+ }
+
+ public DestInfoBuilder setPrivilegedSubscriber(boolean privilegedSubscriber) {
+ this.privilegedSubscriber = privilegedSubscriber;
+ return this;
+ }
+
+ public DestInfoBuilder setFollowRedirects(boolean followRedirects) {
+ this.followRedirects = followRedirects;
+ return this;
+ }
+
+ public DestInfoBuilder setDecompress(boolean decompress) {
+ this.decompress = decompress;
+ return this;
+ }
+
+ public DestInfoBuilder setSubscription(NodeConfig.ProvSubscription subscription) {
+ this.subscription = subscription;
+ return this;
+ }
+
+ public DestInfo createDestInfo() {
+ return new DestInfo(this);
+ }
+ }
+
+ public DestInfo(DestInfoBuilder destInfoBuilder) {
+ this.name = destInfoBuilder.name;
+ this.spool = destInfoBuilder.spool;
+ this.subid = destInfoBuilder.subid;
+ this.logdata = destInfoBuilder.logdata;
+ this.url = destInfoBuilder.url;
+ this.authuser = destInfoBuilder.authuser;
+ this.authentication = destInfoBuilder.authentication;
+ this.metaonly = destInfoBuilder.metaonly;
+ this.use100 = destInfoBuilder.use100;
+ this.privilegedSubscriber = destInfoBuilder.privilegedSubscriber;
+ this.followRedirects = destInfoBuilder.followRedirects;
+ this.decompress = destInfoBuilder.decompress;
}
/**
hostAddrArray.add(addr.getHostAddress());
}
} catch (UnknownHostException e) {
- logger.error("IsFrom: UnknownHostEx: " + e.toString(), e.getMessage());
+ logger.error("IsFrom: UnknownHostEx: " + e.toString(), e);
}
ips = hostAddrArray.toArray(new String[0]);
logger.info("IsFrom: DNS ENTRIES FOR FQDN " + fqdn + " : " + Arrays.toString(ips));
return true;
}
} catch (UnknownHostException e) {
- logger.error("IsFrom: UnknownHostEx: " + e.toString(), e.getMessage());
+ logger.error("IsFrom: UnknownHostEx: " + e.toString(), e);
} catch (IOException e) {
- logger.error("IsFrom: Failed to parse IP : " + ip + " : " + e.toString(), e.getMessage());
+ logger.error("IsFrom: Failed to parse IP : " + ip + " : " + e.toString(), e);
}
return false;
}
******************************************************************************/
package org.onap.dmaap.datarouter.node;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
*/
public class LogManager extends TimerTask {
-
+ private EELFLogger logger = EELFManager.getInstance().getLogger(LogManager.class);
private NodeConfigManager config;
private Matcher isnodelog;
private Matcher iseventlog;
private String logdir;
private class Uploader extends Thread implements DeliveryQueueHelper {
+ private EELFLogger logger = EELFManager.getInstance().getLogger(Uploader.class);
public long getInitFailureTimer() {
return (10000L);
public Uploader() {
dq = new DeliveryQueue(this,
- new DestInfo("LogUpload", uploaddir, null, null, null, config.getMyName(), config.getMyAuth(), false, false, false, false, false));
+ new DestInfo.DestInfoBuilder().setName("LogUpload").setSpool(uploaddir).setSubid(null).setLogdata(null)
+ .setUrl(null).setAuthuser(config.getMyName()).setAuthentication(config.getMyAuth())
+ .setMetaonly(false).setUse100(false).setPrivilegedSubscriber(false).setFollowRedirects(false)
+ .setDecompress(false).createDestInfo());
setDaemon(true);
setName("Log Uploader");
start();
try {
wait(10000);
} catch (Exception e) {
+ logger.error("InterruptedException", e);
}
}
lastqueued = br.readLine();
br.close();
} catch (Exception e) {
+ logger.error("Exception", e);
}
for (String fn : fns) {
if (!isnodelog.reset(fn).matches()) {
Files.createLink(Paths.get(uploaddir + "/" + pid), Paths.get(logdir + "/" + fn));
Files.createLink(Paths.get(uploaddir + "/" + pid + ".M"), Paths.get(uploaddir + "/.meta"));
} catch (Exception e) {
+ logger.error("Exception", e);
}
}
}
(new File(uploaddir + "/.meta")).delete();
w.write(lastqueued + "\n");
} catch (Exception e) {
+ logger.error("Exception", e);
}
}
}
isnodelog = Pattern.compile("node\\.log\\.\\d{8}").matcher("");
iseventlog = Pattern.compile("events-\\d{12}\\.log").matcher("");
} catch (Exception e) {
+ logger.error("Exception", e);
}
logdir = config.getLogDir();
uploaddir = logdir + "/.spool";
continue;
}
String auth = NodeUtils.getNodeAuthHdr(cName, nodeauthkey);
- DestInfo di = new DestInfo("n:" + cName, spooldir + "/n/" + cName, null, "n2n-" + cName,
- "https://" + cName + ":" + port + "/internal/publish", cName, myauth, false, true, false, false, false);
+ DestInfo di = new DestInfo.DestInfoBuilder().setName("n:" + cName).setSpool(spooldir + "/n/" + cName).setSubid(null)
+ .setLogdata("n2n-" + cName).setUrl("https://" + cName + ":" + port + "/internal/publish")
+ .setAuthuser(cName).setAuthentication(myauth).setMetaonly(false).setUse100(true)
+ .setPrivilegedSubscriber(false).setFollowRedirects(false).setDecompress(false).createDestInfo();
(new File(di.getSpool())).mkdirs();
destInfos.add(di);
nodeinfo.put(cName, di);
.getProperty("org.onap.dmaap.datarouter.node.properties", "/opt/app/datartr/etc/node.properties")));
} catch (Exception e) {
NodeUtils.setIpAndFqdnForEelf("NodeConfigManager");
- eelfLogger.error(EelfMsgs.MESSAGE_PROPERTIES_LOAD_ERROR, System.getProperty("org.onap.dmaap.datarouter.node.properties", "/opt/app/datartr/etc/node.properties"));
+ eelfLogger.error(EelfMsgs.MESSAGE_PROPERTIES_LOAD_ERROR, e, System.getProperty("org.onap.dmaap.datarouter.node.properties", "/opt/app/datartr/etc/node.properties"));
}
provurl = drNodeProperties.getProperty("ProvisioningURL", "https://dmaap-dr-prov:8443/internal/prov");
/*
provhost = (new URL(provurl)).getHost();
} catch (Exception e) {
NodeUtils.setIpAndFqdnForEelf("NodeConfigManager");
- eelfLogger.error(EelfMsgs.MESSAGE_BAD_PROV_URL, provurl);
+ eelfLogger.error(EelfMsgs.MESSAGE_BAD_PROV_URL, e, provurl);
System.exit(1);
}
eelfLogger.info("NODE0303 Provisioning server is " + provhost);
try {
initfailuretimer = (long) (Double.parseDouble(getProvParam("DELIVERY_INIT_RETRY_INTERVAL")) * 1000);
} catch (Exception e) {
+ eelfLogger.error("Error parsing DELIVERY_INIT_RETRY_INTERVAL", e);
}
try {
waitForFileProcessFailureTimer = (long) (Double.parseDouble(getProvParam("DELIVERY_FILE_PROCESS_INTERVAL")) * 1000);
} catch (Exception e) {
+ eelfLogger.error("Error parsing DELIVERY_FILE_PROCESS_INTERVAL", e);
}
try {
maxfailuretimer = (long) (Double.parseDouble(getProvParam("DELIVERY_MAX_RETRY_INTERVAL")) * 1000);
} catch (Exception e) {
+ eelfLogger.error("Error parsing DELIVERY_MAX_RETRY_INTERVAL", e);
}
try {
expirationtimer = (long) (Double.parseDouble(getProvParam("DELIVERY_MAX_AGE")) * 1000);
} catch (Exception e) {
+ eelfLogger.error("Error parsing DELIVERY_MAX_AGE", e);
}
try {
failurebackoff = Double.parseDouble(getProvParam("DELIVERY_RETRY_RATIO"));
} catch (Exception e) {
+ eelfLogger.error("Error parsing DELIVERY_RETRY_RATIO", e);
}
try {
deliverythreads = Integer.parseInt(getProvParam("DELIVERY_THREADS"));
} catch (Exception e) {
+ eelfLogger.error("Error parsing DELIVERY_THREADS", e);
}
try {
fairfilelimit = Integer.parseInt(getProvParam("FAIR_FILE_LIMIT"));
} catch (Exception e) {
+ eelfLogger.error("Error parsing FAIR_FILE_LIMIT", e);
}
try {
fairtimelimit = (long) (Double.parseDouble(getProvParam("FAIR_TIME_LIMIT")) * 1000);
} catch (Exception e) {
+ eelfLogger.error("Error parsing FAIR_TIME_LIMIT", e);
}
try {
fdpstart = Double.parseDouble(getProvParam("FREE_DISK_RED_PERCENT")) / 100.0;
} catch (Exception e) {
+ eelfLogger.error("Error parsing FREE_DISK_RED_PERCENT", e);
}
try {
fdpstop = Double.parseDouble(getProvParam("FREE_DISK_YELLOW_PERCENT")) / 100.0;
} catch (Exception e) {
+ eelfLogger.error("Error parsing FREE_DISK_YELLOW_PERCENT", e);
}
if (fdpstart < 0.01) {
fdpstart = 0.01;
} catch (Exception e) {
NodeUtils.setIpAndFqdnForEelf("fetchconfigs");
eelfLogger.error(EelfMsgs.MESSAGE_CONF_FAILED, e.toString());
- eelfLogger.error("NODE0306 Configuration failed " + e.toString() + " - try again later", e.getMessage());
+ eelfLogger.error("NODE0306 Configuration failed " + e.toString() + " - try again later", e);
pfetcher.request();
}
}
}
return type + "|" + aafInstance + "|" + action;
} catch (Exception e) {
- eelfLogger.error("NODE0543 NodeConfigManager.getPermission: ", e.getMessage());
+ eelfLogger.error("NODE0543 NodeConfigManager.getPermission: ", e);
}
return null;
}
try {
in = getClass().getClassLoader().getResourceAsStream("drNodeCadi.properties");
} catch (Exception e) {
- nodeMainLogger.error("Exception in Inner.getCadiProps() method " + e.getMessage());
+ nodeMainLogger.error("Exception in Inner.getCadiProps() method ", e);
}
return in;
}
InputStream in = obj.getCadiProps();
cadiProperties.load(in);
} catch (IOException e1) {
- nodeMainLogger.error("NODE00005 Exception in NodeMain.Main() loading CADI properties " + e1.getMessage());
+ nodeMainLogger.error("NODE00005 Exception in NodeMain.Main() loading CADI properties ", e1);
}
cadiProperties.setProperty("aaf_locate_url", nodeConfigManager.getAafURL());
nodeMainLogger.info("NODE00005 aaf_url set to - " + cadiProperties.getProperty("aaf_url"));
server.start();
nodeMainLogger.info("NODE00006 Node Server started-" + server.getState());
} catch (Exception e) {
- nodeMainLogger.info("NODE00006 Jetty failed to start. Reporting will we unavailable", e.getMessage());
+ nodeMainLogger.info("NODE00006 Jetty failed to start. Reporting will we unavailable", e);
}
server.join();
nodeMainLogger.info("NODE00007 Node Server joined - " + server.getState());
}
} catch (IOException ioe) {
- eelfLogger.error("IOException" + ioe.getMessage());
+ eelfLogger.error("IOException", ioe);
}
String path = req.getPathInfo();
String qs = req.getQueryString();
try {
common(req, resp, true);
} catch (IOException ioe) {
- eelfLogger.error("IOException" + ioe.getMessage());
+ eelfLogger.error("IOException", ioe);
eelfLogger.info(EelfMsgs.EXIT);
}
}
try {
common(req, resp, false);
} catch (IOException ioe) {
- eelfLogger.error("IOException " + ioe.getMessage());
+ eelfLogger.error("IOException", ioe);
eelfLogger.info(EelfMsgs.EXIT);
}
}
try {
exlen = Long.parseLong(req.getHeader("Content-Length"));
} catch (Exception e) {
- eelfLogger.error("NODE00000 Exception common: " + e.getMessage());
+ eelfLogger.error("NODE00000 Exception common", e);
}
StatusLog.logPubFail(pubid, feedid, logurl, req.getMethod(), ctype, exlen, data.length(), ip, user, ioe.getMessage());
//Fortify scan fixes - log forging
}
} catch (IOException ioe) {
eelfLogger.error("NODE0117 Unable to delete files (" + pubid + ", " + pubid + ".M) from DR Node: "
- + config.getMyName() + ". Error: " + ioe.getMessage());
+ + config.getMyName(), ioe);
eelfLogger.info(EelfMsgs.EXIT);
}
}
return false;
}
} catch (NullPointerException npe) {
- eelfLogger.error("NODE0114 " + errorMessage + " Error: Subscription " + subscriptionId + " does not exist");
+ eelfLogger.error("NODE0114 " + errorMessage + " Error: Subscription " + subscriptionId +
+ " does not exist", npe);
resp.sendError(HttpServletResponse.SC_NOT_FOUND);
eelfLogger.info(EelfMsgs.EXIT);
return false;
}
} catch (Exception e) {
setIpAndFqdnForEelf("getCanonicalName");
- eelfLogger.error(EelfMsgs.MESSAGE_KEYSTORE_LOAD_ERROR, ksfile, e.toString());
+ eelfLogger.error(EelfMsgs.MESSAGE_KEYSTORE_LOAD_ERROR, e, ksfile);
return (null);
}
return (getCanonicalName(ks));
}
}
} catch (Exception e) {
- eelfLogger.error("NODE0402 Error extracting my name from my keystore file " + e.toString(), e.getMessage());
+ eelfLogger.error("NODE0402 Error extracting my name from my keystore file " + e.toString(), e);
}
return (null);
}
try {
response.sendError(errorCode);
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("IOException", ioe);
}
}
package org.onap.dmaap.datarouter.node;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
+import java.io.IOException;
import java.io.OutputStream;
import java.util.Hashtable;
import java.util.Timer;
* Track redirections of subscriptions
*/
public class RedirManager {
-
+ private static EELFLogger eelfLogger = EELFManager.getInstance().getLogger(RedirManager.class);
private Hashtable<String, String> sid2primary = new Hashtable<String, String>();
private Hashtable<String, String> sid2secondary = new Hashtable<String, String>();
private String redirfile;
os.write(sb.toString().getBytes());
}
} catch (Exception e) {
+ eelfLogger.error("Exception", e);
}
}
};
}
}
} catch (Exception e) {
- // missing file is normal
+ eelfLogger.error("Missing file is normal", e);
}
}
package org.onap.dmaap.datarouter.node;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
import java.util.regex.*;
import java.util.*;
import java.io.*;
* Logging for data router delivery events (PUB/DEL/EXP)
*/
public class StatusLog {
+ private static EELFLogger eelfLogger = EELFManager.getInstance().getLogger(StatusLog.class);
private static StatusLog instance = new StatusLog();
private HashSet<String> toship = new HashSet<String>();
private SimpleDateFormat filedate;
try {
filedate = new SimpleDateFormat("-yyyyMMddHHmm");
} catch (Exception e) {
+ eelfLogger.error("Exception", e);
}
}
def = best * 1000;
}
} catch (Exception e) {
+ eelfLogger.error("Exception", e);
}
return (def);
}
try {
instance.checkRoll(System.currentTimeMillis());
} catch (Exception e) {
+ eelfLogger.error("Exception", e);
}
return (instance.curfile);
}
os.write((NodeUtils.logts(new Date(now)) + '|' + s + '\n').getBytes());
os.flush();
} catch (IOException ioe) {
+ eelfLogger.error("IOException", ioe);
}
}
DeliveryQueueHelper deliveryQueueHelper;
private String dirPath = "/tmp/dir001/";
- private String FileName1 = "10000000000004.fileName.M";
+ private String fileName = "10000000000004.fileName.M";
@Before
public void setUp() {
- when(destInfo.getSpool()).thenReturn("tmp");
+ when(destInfo.getSpool()).thenReturn(dirPath);
deliveryQueue = new DeliveryQueue(deliveryQueueHelper, destInfo);
}
@Test
public void Given_New_DeliveryQueue_Directory_Is_Created_As_Defined_By_DestInfo() {
- when(destInfo.getSpool()).thenReturn("tmp");
- File file = new File("tmp");
+ File file = new File("/tmp");
assertTrue(file.exists());
- deleteFile("tmp");
}
@Test
deliveryQueue = new DeliveryQueue(deliveryQueueHelper, destInfo);
DeliveryTask nt = deliveryQueue.getNext();
assertEquals("10000000000004.fileName", nt.getPublishId());
- deleteFile(dirPath + FileName1);
+ deleteFile(dirPath + fileName);
deleteFile(dirPath);
}
private void prepareFiles() throws Exception {
createFolder(dirPath);
- createFile(FileName1, dirPath);
- String[] files = new String[2];
- files[0] = dirPath + FileName1;
+ createFile(fileName, dirPath);
}
private void createFolder(String dirName) {
private DestInfo[] createDestInfoObjects() {
DestInfo[] destInfos = new DestInfo[1];
- DestInfo destInfo = new DestInfo("node.datarouternew.com", "spool/s/0/1", "1", "logs/", "/subs/1", "user1", "Basic dXNlcjE6cGFzc3dvcmQx", false, true, false, false, false);
+ DestInfo destInfo = new DestInfo.DestInfoBuilder().setName("node.datarouternew.com").setSpool("spool/s/0/1").setSubid("1")
+ .setLogdata("logs/").setUrl("/subs/1").setAuthuser("user1").setAuthentication("Basic dXNlcjE6cGFzc3dvcmQx")
+ .setMetaonly(false).setUse100(true).setPrivilegedSubscriber(false).setFollowRedirects(false)
+ .setDecompress(false).createDestInfo();
destInfos[0] = destInfo;
return destInfos;
}
import java.io.StringReader;
@RunWith(PowerMockRunner.class)
-@SuppressStaticInitializationFor({"org.onap.dmaap.datarouter.node.ProvData", "org.onap.dmaap.datarouter.node.NodeUtils"})
+@SuppressStaticInitializationFor({"org.onap.dmaap.datarouter.node.ProvData",
+ "org.onap.dmaap.datarouter.node.NodeUtils"})
public class NodeConfigTest {
private static NodeConfig nodeConfig;
}
@Test
- public void Given_SubId_Then_Get_Feed_Id_Returns_Correct_Id() {
+ public void Given_SubId_Then_Get_Feed_Id_Returns_Correct_Id(){
String feedId = nodeConfig.getFeedId("1");
Assert.assertEquals("1", feedId);
}
@Test
public void Given_Same_Ip_Then_Is_Another_Node_Returns_False() {
- Boolean isAnotherNode = nodeConfig.isAnotherNode("Basic MTcyLjAuMC40OmtCTmhkWVFvbzhXNUphZ2g4T1N4Zmp6Mzl1ND0=", "172.0.0.1");
+ Boolean isAnotherNode =
+ nodeConfig.isAnotherNode("Basic MTcyLjAuMC40OmtCTmhkWVFvbzhXNUphZ2g4T1N4Zmp6Mzl1ND0=", "172.0.0.1");
Assert.assertFalse(isAnotherNode);
}
@Test
public void Given_Different_Ip_Then_Is_Another_Node_Returns_True() {
- Boolean isAnotherNode = nodeConfig.isAnotherNode("Basic MTcyLjAuMC40OmtCTmhkWVFvbzhXNUphZ2g4T1N4Zmp6Mzl1ND0=", "172.0.0.4");
+ Boolean isAnotherNode =
+ nodeConfig.isAnotherNode("Basic MTcyLjAuMC40OmtCTmhkWVFvbzhXNUphZ2g4T1N4Zmp6Mzl1ND0=", "172.0.0.4");
Assert.assertTrue(isAnotherNode);
}
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
- <version>5.4.1.Final</version>
+ <version>5.2.9.Final</version>
+ <exclusions>
+ <exclusion>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<version>1.0.2.Final</version>
</dependency>
<dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
+ <groupId>org.dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>2.1.1</version>
</dependency>
</dependencies>
<profiles>
loopback = InetAddress.getLoopbackAddress();
//checkHttpsRelaxation(); //Data Router Subscriber HTTPS Relaxation feature USERSTORYID:US674047.
} catch (UnknownHostException e) {
- // ignore
+ intlogger.info("BaseServlet.init: " + e.getMessage(), e);
}
}
return "Unauthorized address: " + remote;
}
} catch (UnknownHostException e) {
- intlogger.error("PROV0051 BaseServlet.isAuthorizedForProvisioning: ", e.getMessage());
+ intlogger.error("PROV0051 BaseServlet.isAuthorizedForProvisioning: " + e.getMessage(), e);
return "Unauthorized address: " + remote;
}
// Does remote have a valid certificate?
return true;
}
} catch (UnknownHostException e) {
- intlogger.error("PROV0052 BaseServlet.isAuthorizedForInternal: ", e.getMessage());
+ intlogger.error("PROV0052 BaseServlet.isAuthorizedForInternal: " + e.getMessage(), e);
}
return false;
}
}
}
} catch (UnknownHostException e) {
- intlogger.error("PROV0053 BaseServlet.addressMatchesNetwork: ", e.getMessage());
+ intlogger.error("PROV0053 BaseServlet.addressMatchesNetwork: " + e.getMessage(), e);
return false;
}
return true;
thisPod = InetAddress.getLocalHost().getHostName();
} catch (UnknownHostException e) {
thisPod = "";
- intlogger.warn("PROV0014 Cannot determine the name of this provisioning server.");
+ intlogger.warn("PROV0014 Cannot determine the name of this provisioning server.", e);
}
// Normalize the nodes, and fill in nodeAddresses
intlogger.debug("PROV0003 DNS lookup: " + nodes[i] + " => " + na[i].toString());
} catch (UnknownHostException e) {
na[i] = null;
- intlogger.warn("PROV0004 Cannot lookup " + nodes[i] + ": " + e.getMessage());
+ intlogger.warn("PROV0004 Cannot lookup " + nodes[i] + ": " + e.getMessage(), e);
}
}
intlogger.debug("PROV0003 DNS lookup: " + pods[i] + " => " + na[i].toString());
} catch (UnknownHostException e) {
na[i] = null;
- intlogger.warn("PROV0004 Cannot lookup " + pods[i] + ": " + e.getMessage());
+ intlogger.warn("PROV0004 Cannot lookup " + pods[i] + ": " + e.getMessage(), e);
}
}
podAddresses = na;
try (InputStream inStream = getClass().getClassLoader().getResourceAsStream(MAILCONFIG_FILE)) {
mailprops.load(inStream);
} catch (IOException e) {
- intlogger.error("PROV9003 Opening properties: " + e.getMessage());
+ intlogger.error("PROV9003 Opening properties: " + e.getMessage(), e);
System.exit(1);
}
}
try {
notifyPSTeam(p.get("org.onap.dmaap.datarouter.provserver.https.relax.notify").toString());
} catch (Exception e) {
- intlogger.warn("Exception: " + e.getMessage());
+ intlogger.warn("Exception: " + e.getMessage(), e);
}
}
mailSendFlag = true;
* @param email - list of email ids to notify if HTTP relexcation is enabled.
* @author vs215k
**/
- private void notifyPSTeam(String email) throws Exception {
+ private void notifyPSTeam(String email) {
loadMailProperties(); //Load HTTPS Relex mail properties.
String[] emails = email.split(Pattern.quote("|"));
intlogger.info("HTTPS relaxation mail is sent to - : " + email);
} catch (MessagingException e) {
- intlogger.error("Invalid email address, unable to send https relaxation mail to - : " + email);
+ intlogger.error("Invalid email address, unable to send https relaxation mail to - : " + email, e);
+ } catch (UnknownHostException uhe) {
+ intlogger.error("UnknownHostException", uhe);
}
}
rv = bean.doInsert(conn);
} catch (SQLException e) {
rv = false;
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);
} finally {
if (conn != null) {
db.release(conn);
rv = bean.doUpdate(conn);
} catch (SQLException e) {
rv = false;
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);
} finally {
if (conn != null) {
db.release(conn);
rv = bean.doDelete(conn);
} catch (SQLException e) {
rv = false;
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());
+ intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);
} finally {
if (conn != null) {
db.release(conn);
return true;
}
} catch (JSONException e) {
- intlogger.error("JSONException: " + e.getMessage());
+ intlogger.error("JSONException: " + e.getMessage(), e);
}
}
return false;
MDC.put(MDC_SERVER_FQDN, InetAddress.getLocalHost().getHostName());
MDC.put(MDC_SERVER_IP_ADDRESS, InetAddress.getLocalHost().getHostAddress());
} catch (Exception e) {
- intlogger.error("Exception: " + e.getMessage());
+ intlogger.error("Exception: " + e.getMessage(), e);
}
}
}
return type + "|" + aafInstance + "|" + action;
} catch (Exception e) {
- intlogger.error("PROV7005 BaseServlet.getFeedPermission: ", e.getMessage());
+ intlogger.error("PROV7005 BaseServlet.getFeedPermission: " + e.getMessage(), e);
}
return null;
}
}
return type + "|" + aafInstance + "|" + action;
} catch (Exception e) {
- intlogger.error("PROV7005 BaseServlet.getSubscriberPermission: ", e.getMessage());
+ intlogger.error("PROV7005 BaseServlet.getSubscriberPermission: " + e.getMessage(), e);
}
return null;
}
try {
resp.getOutputStream().print(feed.asJSONObject(true).toString());
} catch (IOException ioe) {
- eventlogger.error("IOException" + ioe.getMessage());
+ eventlogger.error("PROV0111 DRFeedServlet.doGet " + ioe.getMessage(), ioe);
}
}
} else {
try {
resp.getOutputStream().print(t);
} catch (IOException ioe) {
- eventlogger.error("IOException" + ioe.getMessage());
+ eventlogger.error("PROV0112 DRFeedServlet.doGet " + ioe.getMessage(), ioe);
}
}
} finally {
message = e.getMessage();
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- eventlogger.error(elr.toString());
+ eventlogger.error(elr.toString(), e);
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
try {
resp.getOutputStream().print(feed.asLimitedJSONObject().toString());
} catch (IOException ioe) {
- eventlogger.error("IOException" + ioe.getMessage());
+ eventlogger.error("PROV0113 DRFeedServlet.doPost " + ioe.getMessage(), ioe);
}
provisioningDataChanged();
} else {
try {
resp.getOutputStream().print(feed.asJSONObject(true).toString());
} catch (IOException ioe) {
- eventlogger.error("IOException" + ioe.getMessage());
+ eventlogger.error("PROV0101 FeedServlet.doGet: " + ioe.getMessage(), ioe);
}
} finally {
eelfLogger.info(EelfMsgs.EXIT);
message = e.getMessage();
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- eventlogger.error(elr.toString());
+ eventlogger.error(elr.toString(), e);
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
try {
resp.getOutputStream().print(feed.asLimitedJSONObject().toString());
} catch (IOException ioe) {
- eventlogger.error("IOException" + ioe.getMessage());
+ eventlogger.error("PROV0102 FeedServlet.doPut: " + ioe.getMessage(), ioe);
}
feed.changeOwnerShip();
}
} catch (JSONException je) {
- eventlogger.error("JSONException" + je.getMessage());
+ eventlogger.error("PROV0103 FeedServlet.doPut: " + je.getMessage(), je);
}
}
/***End of change ownership*/
try {
resp.getOutputStream().print(gup.asJSONObject().toString());
} catch (IOException ioe) {
- eventlogger.error("IOException" + ioe.getMessage());
+ eventlogger.error("PROV0121 GroupServlet.doGet: " + ioe.getMessage(), ioe);
}
// Display a list of Groups
message = e.getMessage();
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- eventlogger.error(elr.toString());
+ eventlogger.error(elr.toString(), e);
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
try {
resp.getOutputStream().print(gup.asJSONObject().toString());
} catch (IOException ioe) {
- eventlogger.error("IOException" + ioe.getMessage());
+ eventlogger.error("PROV0122 GroupServlet.doPut: " + ioe.getMessage(), ioe);
}
provisioningDataChanged();
} else {
message = e.getMessage();
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- eventlogger.error(elr.toString());
+ eventlogger.error(elr.toString(), e);
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
try {
resp.getOutputStream().print(gup.asJSONObject().toString());
} catch (IOException ioe) {
- eventlogger.error("IOException" + ioe.getMessage());
+ eventlogger.error("PROV0122 GroupServlet.doPost: " + ioe.getMessage(), ioe);
}
provisioningDataChanged();
} else {
try {
resp.getOutputStream().print(p.getProvisioningString());
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("PROV0131 InternalServlet.doGet: " + ioe.getMessage(), ioe);
}
return;
}
try {
resp.getOutputStream().print(generateLogfileList().toString());
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("PROV0132 InternalServlet.doGet: " + ioe.getMessage(), ioe);
}
return;
}
try {
Files.copy(logpath, resp.getOutputStream());
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("PROV0133 InternalServlet.doGet: " + ioe.getMessage(), ioe);
}
return;
}
try {
resp.getOutputStream().print(param.getValue() + "\n");
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("PROV0134 InternalServlet.doGet: " + ioe.getMessage(), ioe);
}
return;
}
try {
resp.getOutputStream().print(lfl.getBitSet().toString());
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("PROV0135 InternalServlet.doGet: " + ioe.getMessage(), ioe);
}
return;
}
total += store.getTotalSpace();
avail += store.getUsableSpace();
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("PROV0136 InternalServlet.doPost: " + ioe.getMessage(), ioe);
}
}
try {
fs.close();
} catch (Exception e) {
+ intlogger.error("PROV0137 InternalServlet.doPost: " + e.getMessage(), e);
}
if (((avail * 100) / total) < 5) {
elr.setResult(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
eventlogger.info(elr.toString());
LogfileLoader.getLoader(); // This starts the logfile loader "task"
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("PROV0138 InternalServlet.doPost: " + ioe.getMessage(), ioe);
}
return;
}
LogRecord.printLogRecords(resp.getOutputStream(), bs);
eventlogger.info(elr.toString());
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("PROV0139 InternalServlet.doPost: " + ioe.getMessage(), ioe);
}
return;
}
}\r
out.print("]");\r
} catch (IOException ioe) {\r
- eventlogger.error("IOException: " + ioe.getMessage());\r
+ eventlogger.error("PROV0141 LogServlet.doGet: " + ioe.getMessage(), ioe);\r
}\r
} finally {\r
eelfLogger.info(EelfMsgs.EXIT);\r
try {
in = getClass().getClassLoader().getResourceAsStream("drProvCadi.properties");
} catch (Exception e) {
- intlogger.error("Exception in Main.getCadiProps() method ", e.getMessage());
+ intlogger.error("Exception in Main.getCadiProps(): " + e.getMessage(), e);
}
return in;
}
Inner obj = new Main().new Inner();
InputStream in = obj.getCadiProps();
cadiProperties.load(in);
- } catch (IOException e1) {
- intlogger.error("PROV0001 Exception loading CADI properties", e1.getMessage());
+ } catch (IOException ioe) {
+ intlogger.error("PROV0001 Exception loading CADI properties: " + ioe.getMessage(), ioe);
}
cadiProperties.setProperty("aaf_locate_url", provProperties.getProperty("org.onap.dmaap.datarouter.provserver.cadi.aaf.url", "https://aaf-onap-test.osaaf.org:8095"));
intlogger.info("PROV0001 aaf_url set to - " + cadiProperties.getProperty("aaf_url"));
server.start();
intlogger.info("Prov Server started-" + server.getState());
} catch (Exception e) {
- intlogger.info("Jetty failed to start. Reporting will we unavailable", e.getMessage());
+ intlogger.info("Jetty failed to start. Reporting will we unavailable: " + e.getMessage(), e);
}
server.join();
intlogger.info("PROV0001 **** AT&T Data Router Provisioning Server halted.");
Thread.sleep(5000L);
System.exit(0);
} catch (Exception e) {
- intlogger.error("Exception in Main.shutdown() method " + e.getMessage());
+ intlogger.error("Exception in Main.shutdown(): " + e.getMessage(), e);
}
});
}
thisPod = InetAddress.getLocalHost().getHostName();\r
} catch (UnknownHostException e) {\r
thisPod = "*UNKNOWN*"; // not a major problem\r
- logger.info("UnknownHostException: Setting thisPod to \"*UNKNOWN*\"");\r
+ logger.info("UnknownHostException: Setting thisPod to \"*UNKNOWN*\"", e);\r
}\r
provString = buildProvisioningString();\r
\r
} catch (MalformedURLException e) {\r
logger.warn(\r
"PROV0013 MalformedURLException Error poking node at " + nodeUrl + " : " + e\r
- .getMessage());\r
+ .getMessage(), e);\r
} catch (IOException e) {\r
logger.warn("PROV0013 IOException Error poking node at " + nodeUrl + " : " + e\r
- .getMessage());\r
+ .getMessage(), e);\r
}\r
};\r
r.run();\r
sch = new Scheme("https", 443, socketFactory);
inited = true;
} catch (Exception e) {
- intlogger.error("ProxyServlet: " + e.getMessage());
+ intlogger.error("ProxyServlet.init: " + e.getMessage(), e);
}
intlogger.info("ProxyServlet: inited = " + inited);
}
try (FileInputStream instream = new FileInputStream(new File(store))) {
ks.load(instream, pass.toCharArray());
} catch (FileNotFoundException fileNotFoundException) {
- intlogger.error("ProxyServlet: " + fileNotFoundException.getMessage());
+ intlogger.error("ProxyServlet.readStore: " + fileNotFoundException.getMessage(), fileNotFoundException);
} catch (Exception x) {
intlogger.error("READING TRUSTSTORE: " + x);
}
rv = true;
} catch (IOException e) {
- intlogger.error("ProxyServlet: " + e.getMessage());
+ intlogger.error("ProxyServlet.doGetWithFallback: " + e.getMessage(), e);
} finally {
proxy.releaseConnection();
httpclient.getConnectionManager().shutdown();
copyResponseHeaders(pxyResponse, resp);
copyEntityContent(pxyResponse, resp);
} catch (IOException e) {
- intlogger.warn("ProxyServlet: " + e.getMessage());
+ intlogger.warn("ProxyServlet.doProxy: " + e.getMessage(), e);
sendResponseError(resp, HttpServletResponse.SC_SERVICE_UNAVAILABLE, "", intlogger);
} finally {
proxy.releaseConnection();
try (InputStream in = entity.getContent()) {
IOUtils.copy(in, resp.getOutputStream());
} catch (Exception e) {
- intlogger.error("Exception: " + e.getMessage());
+ intlogger.error("ProxyServlet.copyEntityContent: " + e.getMessage(), e);
}
}
}
}\r
}\r
} catch (IOException ioe) {\r
- intlogger.error("IOException" + ioe.getMessage());\r
+ intlogger.error("PROV0151 PublishServlet.redirect: " + ioe.getMessage(), ioe);\r
}\r
}\r
\r
}\r
return -1;\r
} catch (NumberFormatException | JSONException e) {\r
+ intlogger.debug("PROV0152 PublishServlet.checkPath: " + e.getMessage(), e);\r
return -1;\r
}\r
}\r
);\r
d = new Deleteable[] { nr };\r
} catch (IllegalArgumentException e) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "The specified network route does not exist.", eventlogger);\r
+ String message = "The specified network route does not exist.";\r
+ eventlogger.error(message, e);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
return;\r
}\r
} else {\r
try {\r
sb.append("\"").append(jx.getString(key)).append("\"");\r
} catch (JSONException je) {\r
- eventlogger.error("JSONException" + je.getMessage());\r
+ eventlogger.error("PROV0161 RouteServlet.doGet: " + je.getMessage(), je);\r
}\r
pfx = ",\n";\r
}\r
try {\r
resp.getOutputStream().print(sb.toString());\r
} catch (IOException ioe) {\r
- eventlogger.error("IOException" + ioe.getMessage());\r
+ eventlogger.error("PROV0162 RouteServlet.doGet: " + ioe.getMessage(), ioe);\r
}\r
}\r
/**\r
int seq = (t != null) ? Integer.parseInt(t) : (IngressRoute.getMaxSequence() + 100);\r
ins = new Insertable[] { new IngressRoute(seq, feedid, user, subnet, NodeClass.lookupNodeNames(nodepatt)) };\r
} catch (Exception e) {\r
- intlogger.info(e.toString());\r
+ intlogger.info(e.toString(), e);\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add ingress' command.", intlogger);\r
return;\r
}\r
String node = NodeClass.normalizeNodename(req.getParameter("node"));\r
ins = new Insertable[] { new EgressRoute(subid, node) };\r
} catch (Exception e) {\r
- intlogger.info(e.toString());\r
+ intlogger.info(e.toString(), e);\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add egress' command.", intlogger);\r
return;\r
}\r
}\r
ins = new Insertable[] { nr };\r
} catch (IllegalArgumentException e) {\r
- intlogger.info(e.toString());\r
+ intlogger.info(e.toString(), e);\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add network' command.", intlogger);\r
return;\r
}\r
try {\r
resp.getOutputStream().print("Invalid request, Feedid or Group ID is required.");\r
} catch (IOException ioe) {\r
- eventlogger.error("IOException: " + ioe.getMessage());\r
+ eventlogger.error("PROV0171 StatisticsServlet.doGet: " + ioe.getMessage(), ioe);\r
}\r
}\r
\r
StringBuffer groupid1 = new StringBuffer();\r
\r
try {\r
- System.out.println("feeedidsssssssss");\r
groupid1 = this.getFeedIdsByGroupId(Integer.parseInt(req.getParameter("groupid")));\r
- System.out.println("feeedids" + req.getParameter("groupid"));\r
-\r
map.put("feedids", groupid1.toString());\r
- System.out.println("groupid1" + groupid1.toString());\r
-\r
-\r
} catch (NumberFormatException | SQLException e) {\r
- eventlogger.error(e.getMessage());\r
+ eventlogger.error("PROV0172 StatisticsServlet.doGet: " + e.getMessage(), e);\r
}\r
}\r
if (req.getParameter("groupid") != null && req.getParameter("feedid") != null) {\r
StringBuffer groupid1 = new StringBuffer();\r
\r
try {\r
- System.out.println("both r not null");\r
groupid1 = this.getFeedIdsByGroupId(Integer.parseInt(req.getParameter("groupid")));\r
- System.out.println("feeedids" + req.getParameter("groupid"));\r
groupid1.append(",");\r
groupid1.append(req.getParameter("feedid").replace("|", ",").toString());\r
-\r
map.put("feedids", groupid1.toString());\r
-\r
- System.out.println("groupid1" + groupid1.toString());\r
-\r
-\r
} catch (NumberFormatException | SQLException e) {\r
- eventlogger.error(e.getMessage());\r
+ eventlogger.error("PROV0173 StatisticsServlet.doGet: " + e.getMessage(), e);\r
}\r
}\r
\r
try {\r
this.getRecordsForSQL(map, outputType, resp.getOutputStream(), resp);\r
} catch (IOException ioe) {\r
- eventlogger.error("IOException: " + ioe.getMessage());\r
+ eventlogger.error("PROV0174 StatisticsServlet.doGet: " + ioe.getMessage(), ioe);\r
}\r
\r
}\r
System.out.println("feedIds" + feedIds.toString());\r
}\r
} catch (SQLException e) {\r
- eventlogger.error(e.getMessage());\r
+ eventlogger.error("PROV0175 StatisticsServlet.getFeedIdsByGroupId: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (resultSet != null) {\r
db.release(conn);\r
}\r
} catch (Exception e) {\r
- eventlogger.error(e.getMessage());\r
+ eventlogger.error("PROV0176 StatisticsServlet.getFeedIdsByGroupId: " + e.getMessage(), e);\r
}\r
}\r
return feedIds;\r
try {
resp.getOutputStream().print(t);
} catch (IOException ioe) {
- eventlogger.error("IOException: " + ioe.getMessage());
+ eventlogger.error("PROV0181 SubscribeServlet.doGet: " + ioe.getMessage(), ioe);
}
} finally {
eelfLogger.info(EelfMsgs.EXIT);
message = e.getMessage();
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- eventlogger.error(elr.toString());
+ eventlogger.error(elr.toString(), e);
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
try {
resp.getOutputStream().print(sub.asLimitedJSONObject().toString());
} catch (IOException ioe) {
- eventlogger.error("IOException: " + ioe.getMessage());
+ eventlogger.error("PROV0182 SubscribeServlet.doPost: " + ioe.getMessage(), ioe);
}
provisioningDataChanged();
try {\r
resp.getOutputStream().print(sub.asJSONObject(true).toString());\r
} catch (IOException ioe) {\r
- eventlogger.error("IOException: " + ioe.getMessage());\r
+ eventlogger.error("PROV0191 SubscriptionServlet.doGet: " + ioe.getMessage(), ioe);\r
}\r
} finally {\r
eelfLogger.info(EelfMsgs.EXIT);\r
message = e.getMessage();\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.error(elr.toString());\r
+ eventlogger.error(elr.toString(), e);\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
try {\r
resp.getOutputStream().print(sub.asLimitedJSONObject().toString());\r
} catch (IOException ioe) {\r
- eventlogger.error("IOException: " + ioe.getMessage());\r
+ eventlogger.error("PROV0192 SubscriptionServlet.doPut: " + ioe.getMessage(), ioe);\r
}\r
\r
/**Change Owner ship of Subscriber Adding for group feature:Rally US708115*/\r
sub.changeOwnerShip();\r
}\r
} catch (JSONException je) {\r
- eventlogger.error("JSONException: " + je.getMessage());\r
+ eventlogger.error("PROV0193 SubscriptionServlet.doPut: " + je.getMessage(), je);\r
}\r
}\r
/***End of change ownership*/\r
message = "Badly formed JSON";\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.error(elr.toString());\r
+ eventlogger.error(elr.toString(), e);\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
}\r
} finally {\r
conn.getContentLength(); // Force the GET through\r
conn.disconnect();\r
} catch (IOException e) {\r
- intlogger.info("IOException Error accessing URL: " + u + ": " + e.getMessage());\r
+ intlogger.info("PROV0194 Error accessing URL: " + u + ": " + e.getMessage(), e);\r
}\r
}\r
} catch (Exception e) {\r
- intlogger.warn("Caught exception in SubscriberNotifyThread: " + e.getMessage());\r
+ intlogger.warn("PROV0195 Caught exception in SubscriberNotifyThread: " + e.getMessage(), e);\r
}\r
}\r
}\r
logger.warn("PROV5003: My name (" + thisPod + ") is missing from the list of provisioning servers.");
}
} catch (UnknownHostException e) {
- logger.warn("PROV5002: Cannot determine the name of this provisioning server.");
+ logger.warn("PROV5002: Cannot determine the name of this provisioning server.", e);
}
if (newstate != state) {
Feed f = new Feed(ja.getJSONObject(n));
coll.add(f);
} catch (Exception e) {
- logger.warn("PROV5004: Invalid object in feed: " + ja.optJSONObject(n));
+ logger.warn("PROV5004: Invalid object in feed: " + ja.optJSONObject(n), e);
}
}
if (sync(coll, Feed.getAllFeeds())) {
Subscription s = new Subscription(j);
coll.add(s);
} catch (Exception e) {
- logger.warn("PROV5004: Invalid object in subscription: " + ja.optJSONObject(n));
+ logger.warn("PROV5004: Invalid object in subscription: " + ja.optJSONObject(n), e);
}
}
if (sync(coll, Subscription.getAllSubscriptions())) {
Group g = new Group(ja.getJSONObject(n));
coll.add(g);
} catch (Exception e) {
- logger.warn("PROV5004: Invalid object in subscription: " + ja.optJSONObject(n));
+ logger.warn("PROV5004: Invalid object in group: " + ja.optJSONObject(n), e);
}
}
if (sync(coll, Group.getAllgroups())) {
try {
v = jo.getString(k);
} catch (JSONException e) {
+ logger.warn("PROV5004: Invalid object in parameters: " + jo.optJSONObject(k), e);
try {
v = "" + jo.getInt(k);
} catch (JSONException e1) {
+ logger.warn("PROV5004: Invalid object in parameters: " + jo.optInt(k), e);
JSONArray ja = jo.getJSONArray(k);
for (int i = 0; i < ja.length(); i++) {
if (i > 0) {
EgressRoute er = new EgressRoute(sub, node);
coll.add(er);
} catch (NumberFormatException e) {
- logger.warn("PROV5004: Invalid subid in egress routes: " + key);
+ logger.warn("PROV5004: Invalid subid in egress routes: " + key, e);
} catch (IllegalArgumentException e) {
- logger.warn("PROV5004: Invalid node name in egress routes: " + key);
+ logger.warn("PROV5004: Invalid node name in egress routes: " + key, e);
}
}
if (sync(coll, EgressRoute.getAllEgressRoutes())) {
public class EgressRoute extends NodeClass implements Comparable<EgressRoute> {\r
\r
private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
+ private static final String SQLEXCEPTION = "SQLException: ";\r
private final int subid;\r
private final int nodeid;\r
\r
* @return the sorted set\r
*/\r
public static SortedSet<EgressRoute> getAllEgressRoutes() {\r
- SortedSet<EgressRoute> set = new TreeSet<EgressRoute>();\r
+ SortedSet<EgressRoute> set = new TreeSet<>();\r
try {\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0008 EgressRoute.getAllEgressRoutes: " + e.getMessage(), e);\r
}\r
return set;\r
}\r
ps.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0009 EgressRoute.getEgressRoute: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return v;\r
}\r
\r
- public EgressRoute(int subid, int nodeid) throws IllegalArgumentException {\r
+ public EgressRoute(int subid, int nodeid) {\r
this.subid = subid;\r
this.nodeid = nodeid;\r
// Note: unlike for Feeds, it subscriptions can be removed from the tables, so it is\r
// throw new IllegalArgumentException("No such subscription: "+subid);\r
}\r
\r
- public EgressRoute(int subid, String node) throws IllegalArgumentException {\r
+ public EgressRoute(int subid, String node) {\r
this(subid, lookupNodeName(node));\r
}\r
\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0007 doDelete: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.close();\r
rv = true;\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());\r
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.executeUpdate();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
public class Feed extends Syncable {\r
private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
private static int next_feedid = getMaxFeedID() + 1;\r
+ private static final String SQLEXCEPTION = "SQLException: ";\r
\r
private int feedid;\r
private int groupid; //New field is added - Groups feature Rally:US708115 - 1610\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0024 Feed.isFeedValid: ", e.getMessage());\r
+ intlogger.warn("PROV0024 Feed.isFeedValid: " + e.getMessage(), e);\r
}\r
return count != 0;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0025 Feed.countActiveFeeds: ", e.getMessage());\r
+ intlogger.warn("PROV0025 Feed.countActiveFeeds: " + e.getMessage(), e);\r
}\r
return count;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0026 Feed.getMaxFeedID: ", e.getMessage());\r
+ intlogger.warn("PROV0026 Feed.getMaxFeedID: " + e.getMessage(), e);\r
}\r
return max;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0027 Feed.getAllFeeds: ", e.getMessage());\r
+ intlogger.warn("PROV0027 Feed.getAllFeeds: " + e.getMessage(), e);\r
}\r
return map.values();\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0028 Feed.getFilteredFeedUrlList: ", e.getMessage());\r
+ intlogger.warn("PROV0028 Feed.getFilteredFeedUrlList: " + e.getMessage(), e);\r
}\r
return list;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0029 Feed.getFeedBySQL: ", e.getMessage());\r
+ intlogger.warn("PROV0029 Feed.getFeedBySQL: " + e.getMessage(), e);\r
}\r
return feed;\r
}\r
try {\r
this.version = jo.getString("version");\r
} catch (JSONException e) {\r
+ intlogger.warn("PROV0023 Feed.Feed: " + e.getMessage(), e);\r
this.version = null;\r
}\r
if(version != null && version.length() > 20)\r
JSONObject jol = jo.optJSONObject("links");\r
this.links = (jol == null) ? (new FeedLinks()) : (new FeedLinks(jol));\r
} catch (InvalidObjectException e) {\r
- intlogger.warn("PROV0030 Feed.Feed: ", e.getMessage());\r
throw e;\r
} catch (Exception e) {\r
- intlogger.error("PROV0031 Feed.Feed: invalid JSON: "+e);\r
- throw new InvalidObjectException("invalid JSON: " + e.getMessage());\r
+ intlogger.warn("Invalid JSON: " + e.getMessage(), e);\r
+ throw new InvalidObjectException("Invalid JSON: " + e.getMessage());\r
}\r
}\r
\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0007 doDelete: " + e.getMessage(), e);\r
} finally {\r
try {\r
if(ps!=null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
}\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0005 doInsert: " + e.getMessage(), e);\r
}\r
return rv;\r
}\r
ps.close();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null)\r
ps.close();\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.close();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
+ intlogger.warn("PROV0008 changeOwnerShip: " + e.getMessage(), e);\r
} finally {\r
try {\r
if(ps!=null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
\r
private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
private static int next_groupid = getMaxGroupID() + 1;\r
+ private static final String SQLEXCEPTION = "SQLException: ";\r
\r
private int groupid;\r
private String authid;\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0009 getGroupsForSQL: " + e.getMessage(), e);\r
}\r
return list;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.info("getMaxSubID: " + e.getMessage());\r
+ intlogger.info("PROV0001 getMaxSubID: " + e.getMessage(), e);\r
}\r
return max;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0002 getGroupsByClassfication: " + e.getMessage(), e);\r
}\r
return list;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0008 countActiveSubscriptions: " + e.getMessage());\r
+ intlogger.warn("PROV0008 countActiveSubscriptions: " + e.getMessage(), e);\r
}\r
return count;\r
}\r
} catch (InvalidObjectException e) {\r
throw e;\r
} catch (Exception e) {\r
- throw new InvalidObjectException("invalid JSON: " + e.getMessage());\r
+ intlogger.warn("Invalid JSON: " + e.getMessage(), e);\r
+ throw new InvalidObjectException("Invalid JSON: " + e.getMessage());\r
}\r
}\r
\r
ps.close();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());\r
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.executeUpdate();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());\r
+ intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
public class IngressRoute extends NodeClass implements Comparable<IngressRoute> {\r
\r
private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
+ private static final String SQLEXCEPTION = "SQLException: ";\r
private final int seq;\r
private final int feedid;\r
private final String userid;\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0001 getAllIngressRoutesForSQL: " + e.getMessage(), e);\r
}\r
return set;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0002 getMax: " + e.getMessage(), e);\r
}\r
return rv;\r
}\r
ps.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0003 getIngressRoute: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return v;\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error("PROV0004 getIngressRoute: " + e.getMessage(), e);\r
}\r
return rv;\r
}\r
SubnetMatcher sm = new SubnetMatcher(subnet);\r
return sm.matches(inet.getAddress());\r
} catch (UnknownHostException e) {\r
+ intlogger.error("PROV0008 matches: " + e.getMessage(), e);\r
return false;\r
}\r
}\r
len = sn.length;\r
valid = true;\r
} catch (UnknownHostException e) {\r
+ intlogger.error("PROV0008 SubnetMatcher: " + e.getMessage(), e);\r
len = 0;\r
valid = false;\r
}\r
sn = InetAddress.getByName(subnet.substring(0, i)).getAddress();\r
valid = true;\r
} catch (UnknownHostException e) {\r
+ intlogger.error("PROV0008 SubnetMatcher: " + e.getMessage(), e);\r
valid = false;\r
}\r
len = n / 8;\r
}\r
\r
private Collection<String> readNodes() {\r
- Collection<String> set = new TreeSet<String>();\r
+ Collection<String> set = new TreeSet<>();\r
try {\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
return set;\r
}\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());\r
+ intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.close();\r
rv = true;\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());\r
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
\r
@Override\r
public boolean equals(Object obj) {\r
- try {\r
- if (!(obj instanceof IngressRoute)) {\r
- return false;\r
- }\r
- return this.compareTo((IngressRoute) obj) == 0;\r
- } catch (NullPointerException e) {\r
+ if (!(obj instanceof IngressRoute)) {\r
return false;\r
}\r
+ return this.compareTo((IngressRoute) obj) == 0;\r
}\r
\r
@Override\r
}\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException: " + e.getMessage());\r
+ intlogger.error("PROV0001 printLogRecords: " + e.getMessage(), e);\r
}\r
}\r
\r
public class NetworkRoute extends NodeClass implements Comparable<NetworkRoute> {\r
\r
private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
+ private static final String SQLEXCEPTION = "SQLException: ";\r
private final int fromnode;\r
private final int tonode;\r
private final int vianode;\r
* @return the sorted set\r
*/\r
public static SortedSet<NetworkRoute> getAllNetworkRoutes() {\r
- SortedSet<NetworkRoute> set = new TreeSet<NetworkRoute>();\r
+ SortedSet<NetworkRoute> set = new TreeSet<>();\r
try {\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
return set;\r
}\r
\r
- public NetworkRoute(String fromnode, String tonode) throws IllegalArgumentException {\r
+ public NetworkRoute(String fromnode, String tonode) {\r
this.fromnode = lookupNodeName(fromnode);\r
this.tonode = lookupNodeName(tonode);\r
this.vianode = -1;\r
}\r
\r
- public NetworkRoute(String fromnode, String tonode, String vianode) throws IllegalArgumentException {\r
+ public NetworkRoute(String fromnode, String tonode, String vianode) {\r
this.fromnode = lookupNodeName(fromnode);\r
this.tonode = lookupNodeName(tonode);\r
this.vianode = lookupNodeName(vianode);\r
}\r
\r
- public NetworkRoute(JSONObject jo) throws IllegalArgumentException {\r
+ public NetworkRoute(JSONObject jo) {\r
this.fromnode = lookupNodeName(jo.getString("from"));\r
this.tonode = lookupNodeName(jo.getString("to"));\r
this.vianode = lookupNodeName(jo.getString("via"));\r
}\r
\r
- public NetworkRoute(int fromnode, int tonode, int vianode) throws IllegalArgumentException {\r
+ public NetworkRoute(int fromnode, int tonode, int vianode) {\r
this.fromnode = fromnode;\r
this.tonode = tonode;\r
this.vianode = vianode;\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());\r
+ intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.close();\r
rv = true;\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());\r
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
}\r
ps.executeUpdate();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
public static final String STATIC_ROUTING_NODES = "STATIC_ROUTING_NODES"; //Adding new param for static Routing - Rally:US664862-1610\r
\r
private static EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
+ private static final String SQLEXCEPTION = "SQLException: ";\r
\r
private String keyname;\r
private String value;\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage());\r
}\r
return coll;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage());\r
}\r
return v;\r
}\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());\r
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage());\r
}\r
}\r
return rv;\r
ps.executeUpdate();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(),e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());\r
+ intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("SQLException " + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error(e.toString());\r
+ intlogger.error("PROV0001 getSubscriptionsForSQL: " + e.toString(), e);\r
}\r
return list;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.info("getMaxSubID: " + e.getMessage());\r
+ intlogger.info("getMaxSubID: " + e.getMessage(), e);\r
}\r
return max;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.error(SQLEXCEPTION + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
return list;\r
}\r
}\r
db.release(conn);\r
} catch (SQLException e) {\r
- intlogger.warn("PROV0008 countActiveSubscriptions: " + e.getMessage());\r
+ intlogger.warn("PROV0008 countActiveSubscriptions: " + e.getMessage(), e);\r
}\r
return count;\r
}\r
} catch (InvalidObjectException e) {\r
throw e;\r
} catch (Exception e) {\r
- throw new InvalidObjectException("invalid JSON: " + e.getMessage());\r
+ intlogger.warn("Invalid JSON: " + e.getMessage(), e);\r
+ throw new InvalidObjectException("Invalid JSON: " + e.getMessage());\r
}\r
}\r
\r
ps.close();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0005 doInsert: " + e.getMessage());\r
+ intlogger.warn("PROV0005 doInsert: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error(SQLEXCEPTION + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.executeUpdate();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error(SQLEXCEPTION + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.close();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0006 doUpdate: " + e.getMessage());\r
+ intlogger.warn("PROV0006 doUpdate: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error(SQLEXCEPTION + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
ps.execute();\r
} catch (SQLException e) {\r
rv = false;\r
- intlogger.warn("PROV0007 doDelete: " + e.getMessage());\r
+ intlogger.warn("PROV0007 doDelete: " + e.getMessage(), e);\r
} finally {\r
try {\r
if (ps != null) {\r
ps.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error(SQLEXCEPTION + e.getMessage());\r
+ intlogger.error(SQLEXCEPTION + e.getMessage(), e);\r
}\r
}\r
return rv;\r
HTTP_PORT = (String) props.get("org.onap.dmaap.datarouter.provserver.http.port");\r
Class.forName(DB_DRIVER);\r
} catch (IOException e) {\r
- intlogger.error("PROV9003 Opening properties: " + e.getMessage());\r
+ intlogger.error("PROV9003 Opening properties: " + e.getMessage(), e);\r
System.exit(1);\r
} catch (ClassNotFoundException e) {\r
intlogger.error("PROV9004 cannot find the DB driver: " + e);\r
try {\r
connection = queue.remove();\r
} catch (NoSuchElementException nseEx) {\r
+ intlogger.error("PROV9006 No connection on queue: " + nseEx.getMessage(), nseEx);\r
int n = 0;\r
do {\r
// Try up to 3 times to get a connection\r
runInitScript(connection, 1);\r
}\r
} catch (SQLException e) {\r
- intlogger\r
- .error("PROV9000: The database credentials are not working: " + e.getMessage());\r
+ intlogger.error("PROV9000: The database credentials are not working: " + e.getMessage(), e);\r
return false;\r
} finally {\r
if (connection != null) {\r
rs.close();\r
}\r
} catch (SQLException e) {\r
- intlogger.error("PROV9010: Failed to get TABLE data from DB: " + e.getMessage());\r
+ intlogger.error("PROV9010: Failed to get TABLE data from DB: " + e.getMessage(), e);\r
}\r
return tables;\r
}\r
lineReader.close();\r
strBuilder.setLength(0);\r
} catch (Exception e) {\r
- intlogger.error("PROV9002 Error when initializing table: " + e.getMessage());\r
+ intlogger.error("PROV9002 Error when initializing table: " + e.getMessage(), e);\r
System.exit(1);\r
}\r
}\r
}
} catch (Exception e) {
- intlogger.error("PROV0073 DRProvCadiFilter.isAAFFeed: ", e.getMessage());
+ intlogger.error("PROV0073 DRProvCadiFilter.isAAFFeed: " + e.getMessage(), e);
return false;
}
return false;
intlogger.debug(message);
}
} catch (Exception e) {
- intlogger.error("PROV0073 DRProvCadiFilter.isAAFSubscriber: ", e.getMessage());
+ intlogger.error("PROV0073 DRProvCadiFilter.isAAFSubscriber: " + e.getMessage(), e);
return false;
}
return false;
\r
package org.onap.dmaap.datarouter.provisioning.utils;\r
\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import java.io.File;\r
import java.io.FileInputStream;\r
import java.io.IOException;\r
public static final String ENV_VAR = "PROVSRVR";\r
public static final String PROMPT = "dr-route> ";\r
public static final String DEFAULT_TRUSTSTORE_PATH = /* $JAVA_HOME + */ "/jre/lib/security/cacerts";\r
+ private static final EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
\r
private final String server;\r
private int width = 120; // screen width (for list)\r
try {\r
trustStore.load(instream, truststore_pw.toCharArray());\r
} catch (Exception x) {\r
- System.err.println("Problem reading truststore: " + x);\r
+ intlogger.error("Problem reading truststore: " + x.getMessage(), x);\r
throw x;\r
} finally {\r
try {\r
instream.close();\r
} catch (Exception ignore) {\r
+ intlogger.error("Ignore error closing input stream: " + ignore.getMessage(), ignore);\r
}\r
}\r
}\r
printErrorText(entity);\r
}\r
} catch (Exception e) {\r
+ intlogger.error("PROV0006 doDelete: " + e.getMessage(), e);\r
} finally {\r
meth.releaseConnection();\r
}\r
printErrorText(entity);\r
}\r
} catch (Exception e) {\r
- System.err.println(e);\r
+ intlogger.error("PROV0005 doGet: " + e.getMessage(), e);\r
} finally {\r
meth.releaseConnection();\r
}\r
printErrorText(entity);\r
}\r
} catch (Exception e) {\r
+ intlogger.error("PROV0009 doPost: " + e.getMessage(), e);\r
} finally {\r
meth.releaseConnection();\r
}\r
try {
response.sendError(errorCode, message);
} catch (IOException ioe) {
- intlogger.error("IOException" + ioe.getMessage());
+ intlogger.error("IOException" + ioe.getMessage(), ioe);
}
}
}
\r
package org.onap.dmaap.datarouter.provisioning.utils;\r
\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import java.net.InetAddress;\r
import java.net.UnknownHostException;\r
import java.util.Collection;\r
* @version $Id: JSONUtilities.java,v 1.1 2013/04/26 21:00:26 eby Exp $\r
*/\r
public class JSONUtilities {\r
+\r
+ private static final EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");\r
/**\r
* Does the String <i>v</i> represent a valid Internet address (with or without a\r
* mask length appended).\r
}\r
return true;\r
} catch (UnknownHostException e) {\r
+ intlogger.error("PROV0001: " + e.getMessage(), e);\r
return false;\r
}\r
}\r
* *
******************************************************************************/
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
*/
private static Map<String, Object> keyPool = new LinkedHashMap<String, Object>(keyPoolSize);
+ private static final EELFLogger intlogger = EELFManager.getInstance().getLogger("InternalLog");
+
/**
* JSONObject.NULL is equivalent to the value that JavaScript calls null,
* whilst Java's null is equivalent to the value that JavaScript calls
* Construct an empty JSONObject.
*/
public LOGJSONObject() {
- this.map = new LinkedHashMap<String, Object>();
+ this.map = new LinkedHashMap<>();
}
*
* @param jo A JSONObject.
* @param names An array of strings.
- * @throws JSONException
- * @throws JSONException If a value is a non-finite number or if a name is duplicated.
*/
public LOGJSONObject(LOGJSONObject jo, String[] names) {
this();
try {
this.putOnce(names[i], jo.opt(names[i]));
} catch (Exception ignore) {
+ intlogger.error("PROV0001 LOGJSONObject: " + ignore.getMessage(), ignore);
}
}
}
* @throws JSONException If there is a syntax error in the source string
* or a duplicated key.
*/
- public LOGJSONObject(JSONTokener x) throws JSONException {
+ public LOGJSONObject(JSONTokener x) {
this();
char c;
String key;
* @throws JSONException if the key is not found or
* if the value is not a Number object and cannot be converted to a number.
*/
- public double getDouble(String key) throws JSONException {
+ public double getDouble(String key) {
Object object = this.get(key);
try {
return object instanceof Number
? ((Number) object).doubleValue()
: Double.parseDouble((String) object);
} catch (Exception e) {
- throw new JSONException("JSONObject[" + quote(key) +
- "] is not a number.");
+ intlogger.error("JSONObject[" + quote(key) + "] is not a number.", e);
+ throw new JSONException("JSONObject[" + quote(key) + "] is not a number.");
}
}
* @throws JSONException if the key is not found or if the value cannot
* be converted to an integer.
*/
- public int getInt(String key) throws JSONException {
+ public int getInt(String key) {
Object object = this.get(key);
try {
return object instanceof Number
? ((Number) object).intValue()
: Integer.parseInt((String) object);
} catch (Exception e) {
- throw new JSONException("JSONObject[" + quote(key) +
- "] is not an int.");
+ intlogger.error("JSONObject[" + quote(key) + "] is not an int.", e);
+ throw new JSONException("JSONObject[" + quote(key) + "] is not an int.");
}
}
? ((Number) object).longValue()
: Long.parseLong((String) object);
} catch (Exception e) {
- throw new JSONException("JSONObject[" + quote(key) +
- "] is not a long.");
+ intlogger.error("JSONObject[" + quote(key) + "] is not a long.", e);
+ throw new JSONException("JSONObject[" + quote(key) + "] is not a long.");
}
}
* @return A string which is the value.
* @throws JSONException if there is no string value for the key.
*/
- public String getString(String key) throws JSONException {
+ public String getString(String key) {
Object object = this.get(key);
if (object instanceof String) {
return (String) object;
* @throws JSONException If there is already a property with this name
* that is not an Integer, Long, Double, or Float.
*/
- public LOGJSONObject increment(String key) throws JSONException {
+ public LOGJSONObject increment(String key) {
Object value = this.opt(key);
if (value == null) {
this.put(key, 1);
try {
return this.getBoolean(key);
} catch (Exception e) {
+ intlogger.trace("Using defaultValue: " + defaultValue, e);
return defaultValue;
}
}
try {
return this.getDouble(key);
} catch (Exception e) {
+ intlogger.trace("Using defaultValue: " + defaultValue, e);
return defaultValue;
}
}
try {
return this.getInt(key);
} catch (Exception e) {
+ intlogger.trace("Using defaultValue: " + defaultValue, e);
return defaultValue;
}
}
}
}
} catch (Exception ignore) {
+ intlogger.trace("populateMap: " + ignore.getMessage(), ignore);
}
}
}
synchronized (sw.getBuffer()) {
try {
return quote(string, sw).toString();
- } catch (IOException ignored) {
- // will never happen - we are writing to a string writer
+ } catch (IOException e) {
+ intlogger.trace("Ignore Exception message: ", e);
return "";
}
}
return myLong;
}
}
- } catch (Exception ignore) {
+ } catch (Exception e) {
+ intlogger.trace("Ignore Exception message: ", e);
}
}
return string;
* @param o The object to test.
* @throws JSONException If o is a non-finite number.
*/
- public static void testValidity(Object o) throws JSONException {
+ public static void testValidity(Object o) {
if (o != null) {
if (o instanceof Double) {
if (((Double) o).isInfinite() || ((Double) o).isNaN()) {
try {
return this.toString(0);
} catch (Exception e) {
+ intlogger.trace("Exception: ", e);
return "";
}
}
}
return new LOGJSONObject(object);
} catch (Exception exception) {
+ intlogger.trace("Exception: ", exception);
return null;
}
}
}\r
} catch (SQLException e) {\r
logger.warn("PROV8003 Invalid value in record: " + line);\r
- logger.debug(e.toString());\r
+ logger.debug(e.toString(), e);\r
} catch (NumberFormatException e) {\r
logger.warn("PROV8004 Invalid number in record: " + line);\r
logger.debug(e.toString());\r
logger.debug(e.toString());\r
} catch (Exception e) {\r
logger.warn("PROV8006 Invalid pattern in record: " + line);\r
- logger.debug(e.toString());\r
+ logger.debug(e.toString(), e);\r
}\r
total++;\r
}\r
logdir = p.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir");\r
String s = p.getProperty("org.onap.dmaap.datarouter.provserver.logretention", "30");\r
\r
- this.utilsLogger = EELFManager.getInstance().getLogger("UtilsLog");;\r
+ this.utilsLogger = EELFManager.getInstance().getLogger("UtilsLog");\r
\r
long n = 30;\r
try {\r
}\r
}\r
} catch (Exception e) {\r
- utilsLogger.error("Exception: " + e.getMessage());\r
+ utilsLogger.error("Exception: " + e.getMessage(), e);\r
}\r
}\r
}\r
}\r
}\r
} catch (ClassNotFoundException e) {\r
- logger.warn("Class " + JETTY_REQUEST + " is not available; this filter requires Jetty.");\r
+ logger.warn("Class " + JETTY_REQUEST + " is not available; this filter requires Jetty.", e);\r
}\r
}\r
logger.info("ThrottleFilter is DISABLED for /publish requests.");\r
t = times.get(0);\r
}\r
} catch (IndexOutOfBoundsException e) {\r
- // ignore\r
+ logger.trace("Exception: " + e.getMessage(), e);\r
}\r
return times.size();\r
}\r
\r
package org.onap.dmaap.datarouter.provisioning.utils;\r
\r
+import com.att.eelf.configuration.EELFLogger;\r
+import com.att.eelf.configuration.EELFManager;\r
import java.net.InetAddress;\r
import java.net.UnknownHostException;\r
import java.util.Arrays;\r
* @version $Id: URLUtilities.java,v 1.2 2014/03/12 19:45:41 eby Exp $\r
*/\r
public class URLUtilities {\r
-\r
+ private static final EELFLogger utilsLogger = EELFManager.getInstance().getLogger("UtilsLog");\r
/**\r
* Generate the URL used to access a feed.\r
*\r
this_pod = InetAddress.getLocalHost().getHostName();\r
System.out.println("this_pod: " + this_pod);\r
} catch (UnknownHostException e) {\r
+ utilsLogger.trace("UnkownHostException: " + e.getMessage(), e);\r
this_pod = "";\r
}\r
System.out.println("ALL PODS: " + Arrays.asList(BaseServlet.getPods()));\r
<version>1.2.17</version>
<scope>compile</scope>
</dependency>
- <dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
- </dependency>
</dependencies>
<profiles>
<profile>
try {
Files.createDirectory(Paths.get(outputDirectory));
} catch (IOException e) {
- logger.info("SubServlet: Failed to create delivery dir: " + e.getMessage());
+ logger.info("SubServlet: Failed to create delivery dir: " + e.getMessage(), e);
}
basicAuth = "Basic " + Base64.encodeBase64String((login + ":" + password).getBytes());
}
try {
instance = new SubscriberProps(propsPath);
} catch (IOException ioe) {
- subLogger.error("IO Exception: " + ioe.getMessage());
+ subLogger.error("IO Exception: " + ioe.getMessage(), ioe);
}
}
return instance;
Release-notes
==============
-Version: 2.0.1 (Dublin)
+Version: 2.1.0 (Dublin)
---------------------------
-:Release Date: 2019-02-28
+:Release Date: 2019-05-30
The DataRouter(DR) provisioning API is a HTTPS-based, REST-like API for creating and managing DR feeds and
subscriptions.
New Features:
-+--------------+------------------------------------------------------------------+
-| JIRA ID | Description |
-+==============+==================================================================+
-| DMAAP-988 | Update to new oparent |
-+--------------+------------------------------------------------------------------+
++--------------+-------------------------------------------------------------------------------+
+| JIRA ID | Description |
++==============+===============================================================================+
+| DMAAP-978 | [DR] Query of publication history (new API) for use by Data File Collector) |
++--------------+-------------------------------------------------------------------------------+
+| DMAAP-980 | [DR] Optional consumer compression feed handling |
++--------------+-------------------------------------------------------------------------------+
+| DMAAP-1016 | DR provisioning AAF integration |
++--------------+-------------------------------------------------------------------------------+
Bug Fixes:
+----------------+--------------------------------------------------------------------------------------------------+
| JIRA ID | Description |
+================+==================================================================================================+
-| DMAAP-964 | DMAAP deployment failures starting 20190115 on casablanca branch |
+| DMAAP-964 | [DMAAP] DMAAP deployment failures starting 20190115 on casablanca branch |
++----------------+--------------------------------------------------------------------------------------------------+
+| DMAAP-1010 | [DR] DMaaP Data Router fails healthcheck |
+----------------+--------------------------------------------------------------------------------------------------+
-| DMAAP-1047 | Data Router docker version missing explicit version number |
+| DMAAP-1047 | [DR] Data Router docker version missing explicit version number |
+----------------+--------------------------------------------------------------------------------------------------+
| DMAAP-1048 | [DR] AAF certs expired on dmaap-dr-prov and dmaap-dr-node |
+----------------+--------------------------------------------------------------------------------------------------+
-| DMAAP-1064 | [DR] Update datarouter POM version following AAF cert updates |
+| DMAAP-1161 | [DR] filebeat container on DR-Node and DR-Prov are unable to publish to kibana |
+----------------+--------------------------------------------------------------------------------------------------+
Known Issues
<sl4j-api.version>1.7.25</sl4j-api.version>
<hamcrest-lib.version>1.3</hamcrest-lib.version>
<annotations.version>12.0</annotations.version>
- <xstream.version>1.4.10</xstream.version>
</properties>
<modules>
<module>datarouter-prov</module>
<groupId>org.databene</groupId>
<artifactId>contiperf</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
<artifactId>json</artifactId>
<version>${json.version}</version>
</dependency>
- <dependency>
- <groupId>com.thoughtworks.xstream</groupId>
- <artifactId>xstream</artifactId>
- <version>${xstream.version}</version>
- </dependency>
</dependencies>
</dependencyManagement>
<build>