<parent>
<groupId>org.onap.dmaap.datarouter</groupId>
<artifactId>parent</artifactId>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.0.2-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>datarouter-node</artifactId>
}
private static class Redirection {
- public SubnetMatcher snm;
- public String user;
- public String[] nodes;
+ SubnetMatcher snm;
+ String user;
+ String[] nodes;
}
private static class Feed {
- public String loginfo;
- public String status;
- public SubnetMatcher[] subnets;
- public Hashtable<String, String> authusers = new Hashtable<String, String>();
- public Redirection[] redirections;
- public Target[] targets;
+ String loginfo;
+ String status;
+ SubnetMatcher[] subnets;
+ Hashtable<String, String> authusers = new Hashtable<String, String>();
+ Redirection[] redirections;
+ Target[] targets;
}
private Hashtable<String, String> params = new Hashtable<String, String>();
}
}
} catch (Exception e) {
- e.printStackTrace();
NodeUtils.setIpAndFqdnForEelf("fetchconfigs");
eelflogger.error(EelfMsgs.MESSAGE_CONF_FAILED, e.toString());
logger.error("NODE0306 Configuration failed " + e.toString() + " - try again later", e);
public class PathFinder {
private static class Hop {
- public boolean mark;
- public boolean bad;
- public NodeConfig.ProvHop basis;
+ boolean mark;
+ boolean bad;
+ NodeConfig.ProvHop basis;
}
private Vector<String> errors = new Vector<String>();
<parent>\r
<groupId>org.onap.dmaap.datarouter</groupId>\r
<artifactId>parent</artifactId>\r
- <version>1.0.1-SNAPSHOT</version>\r
+ <version>1.0.2-SNAPSHOT</version>\r
<relativePath>../pom.xml</relativePath>\r
</parent>\r
<artifactId>datarouter-prov</artifactId>\r
<datarouter.prov.image.name>onap/dmaap/datarouter-prov</datarouter.prov.image.name>\r
</properties>\r
<dependencies>\r
+ <dependency>\r
+ <groupId>xml-apis</groupId>\r
+ <artifactId>xml-apis</artifactId>\r
+ <version>${xml-apis.version}</version>\r
+ </dependency>\r
<dependency>\r
<groupId>dom4j</groupId>\r
<artifactId>dom4j</artifactId>\r
private boolean allowFeedsCollectionAccess(AuthzResource resource, String method, String subject, String subjectgroup) {
// Allow GET or POST unconditionally
- return method != null && (method.equalsIgnoreCase("GET") || method.equalsIgnoreCase("POST"));
+ return method != null && ("GET".equalsIgnoreCase(method) || "POST".equalsIgnoreCase(method));
}
private boolean allowSubsCollectionAccess(AuthzResource resource, String method, String subject, String subjectgroup) {
// Allow GET or POST unconditionally
- return method != null && (method.equalsIgnoreCase("GET") || method.equalsIgnoreCase("POST"));
+ return method != null && ("GET".equalsIgnoreCase(method) || "POST".equalsIgnoreCase(method));
}
private boolean allowFeedAccess(AuthzResource resource, String method, String subject, String subjectgroup) {
boolean decision = false;
// Allow GET, PUT, or DELETE if requester (subject) is the owner (publisher) of the feed
- if ( method != null && (method.equalsIgnoreCase("GET") || method.equalsIgnoreCase("PUT") ||
- method.equalsIgnoreCase("DELETE"))) {
+ if ( method != null && ("GET".equalsIgnoreCase(method) || "PUT".equalsIgnoreCase(method) ||
+ "DELETE".equalsIgnoreCase(method))) {
String owner = provData.getFeedOwner(resource.getId());
decision = (owner != null) && owner.equals(subject);
boolean decision = false;
// Allow GET, PUT, or DELETE if requester (subject) is the owner of the subscription (subscriber)
- if (method != null && (method.equalsIgnoreCase("GET") || method.equalsIgnoreCase("PUT") ||
- method.equalsIgnoreCase("DELETE") || method.equalsIgnoreCase("POST"))) {
+ if (method != null && ("GET".equalsIgnoreCase(method) || "PUT".equalsIgnoreCase(method) ||
+ "DELETE".equalsIgnoreCase(method) || "POST".equalsIgnoreCase(method))) {
String owner = provData.getSubscriptionOwner(resource.getId());
decision = (owner != null) && owner.equals(subject);
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
+
/**
* This servlet handles provisioning for the <drFeedsURL> which is the URL on the provisioning server used to
* create new feeds. It supports POST to create new feeds, and GET to support the Feeds Collection Query function.
* DELETE on the <drFeedsURL> -- not supported.
*/
@Override
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doDelete");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
String message = "DELETE not allowed for the drFeedsURL.";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
}
/**
* Queries</i> section in the <b>Provisioning API</b> document for details on how this method should be invoked.
*/
@Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doGet(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doGet");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doGet(req, resp);
+ try {
+ super.doGet(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
String path = req
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
// Check with the Authorizer
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
} else {
// send response
elr.setResult(HttpServletResponse.SC_OK);
eventlogger.info(elr);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(FEEDFULL_CONTENT_TYPE);
- resp.getOutputStream().print(feed.asJSONObject(true).toString());
+ try {
+ resp.getOutputStream().print(feed.asJSONObject(true).toString());
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
}
} else {
// Display a list of URLs
eventlogger.info(elr);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(FEEDLIST_CONTENT_TYPE);
- resp.getOutputStream().print(t);
+ try {
+ resp.getOutputStream().print(t);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
}
}
* PUT on the <drFeedsURL> -- not supported.
*/
@Override
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPut(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doPut");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
String message = "PUT not allowed for the drFeedsURL.";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
}
/**
* <b>Provisioning API</b> document for details on how this method should be invoked.
*/
@Override
- public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPost(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doPost");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER));
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doPost(req, resp);
+ try {
+ super.doPost(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
String path = req
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
// check content type is FEED_CONTENT_TYPE, version 1.0
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);
+ sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);
return;
}
// Check with the Authorizer
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
JSONObject jo = getJSONfromInput(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
if (intlogger.isDebugEnabled()) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_CONFLICT);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_CONFLICT, message);
+ sendResponseError(resp, HttpServletResponse.SC_CONFLICT, message, eventlogger);
return;
}
Feed feed = null;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
feed.setPublisher(bhdr); // set from X-ATT-DR-ON-BEHALF-OF header
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
resp.setStatus(HttpServletResponse.SC_CREATED);
resp.setContentType(FEEDFULL_CONTENT_TYPE);
resp.setHeader("Location", feed.getLinks().getSelf());
- resp.getOutputStream().print(feed.asLimitedJSONObject().toString());
+ try {
+ resp.getOutputStream().print(feed.asLimitedJSONObject().toString());
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
provisioningDataChanged();
} else {
// Something went wrong with the INSERT
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
}
}
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.json.JSONException;
import org.json.JSONObject;
import org.onap.dmaap.datarouter.authz.AuthorizationResponse;
import org.onap.dmaap.datarouter.provisioning.beans.EventLogRecord;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
+
/**
* This servlet handles provisioning for the <feedURL> which is generated by the provisioning
* server to handle a particular feed. It supports DELETE to mark the feed as deleted,
* document for details on how this method should be invoked.
*/
@Override
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doDelete");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER),getIdFromPath(req)+"");
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doDelete(req, resp);
+ try {
+ super.doDelete(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
int feedid = getIdFromPath(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
Feed feed = Feed.getFeedById(feedid);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
// Check with the Authorizer
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
// Something went wrong with the UPDATE
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
}
/**
* document for details on how this method should be invoked.
*/
@Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doGet(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doGet");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER),getIdFromPath(req)+"");
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doGet(req, resp);
+ try {
+ super.doGet(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
int feedid = getIdFromPath(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
Feed feed = Feed.getFeedById(feedid);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
// Check with the Authorizer
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
eventlogger.info(elr);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(FEEDFULL_CONTENT_TYPE);
- resp.getOutputStream().print(feed.asJSONObject(true).toString());
+ try {
+ resp.getOutputStream().print(feed.asJSONObject(true).toString());
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
}
/**
* PUT on the <feedURL> for a feed.
* document for details on how this method should be invoked.
*/
@Override
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPut(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doPut");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER),getIdFromPath(req)+"");
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doPut(req, resp);
+ try {
+ super.doPut(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
int feedid = getIdFromPath(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
Feed oldFeed = Feed.getFeedById(feedid);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
// check content type is FEED_CONTENT_TYPE, version 1.0
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);
+ sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);
return;
}
JSONObject jo = getJSONfromInput(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
if (intlogger.isDebugEnabled())
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
feed.setFeedid(feedid);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
if (!oldFeed.getName().equals(feed.getName())) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
if (!oldFeed.getVersion().equals(feed.getVersion())) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
// Check with the Authorizer
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
eventlogger.info(elr);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(FEEDFULL_CONTENT_TYPE);
- resp.getOutputStream().print(feed.asLimitedJSONObject().toString());
+ try {
+ resp.getOutputStream().print(feed.asLimitedJSONObject().toString());
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
/**Change Owner ship of Feed //Adding for group feature:Rally US708115*/
if (jo.has("changeowner") && subjectgroup != null) {
- Boolean changeowner = (Boolean) jo.get("changeowner");
- if (changeowner != null && changeowner.equals(true)) {
- feed.setPublisher(req.getHeader(BEHALF_HEADER));
- feed.changeOwnerShip();
+ try {
+ Boolean changeowner = (Boolean) jo.get("changeowner");
+ if (changeowner != null && changeowner.equals(true)) {
+ feed.setPublisher(req.getHeader(BEHALF_HEADER));
+ feed.changeOwnerShip();
+ }
+ } catch (JSONException je) {
+ eventlogger.error("JSONException" + je.getMessage());
}
}
/***End of change ownership*/
// Something went wrong with the UPDATE
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
}
/**
* POST on the <feedURL> -- not supported.
*/
@Override
- public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPost(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doPost");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER));
String message = "POST not allowed for the feedURL.";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
}
}
import java.io.IOException;
import java.io.InvalidObjectException;
-import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONObject;
-import org.onap.dmaap.datarouter.authz.AuthorizationResponse;
-import org.onap.dmaap.datarouter.provisioning.BaseServlet.ContentHeader;
import org.onap.dmaap.datarouter.provisioning.beans.EventLogRecord;
import org.onap.dmaap.datarouter.provisioning.beans.Group;
-import org.onap.dmaap.datarouter.provisioning.beans.Subscription;
-import org.onap.dmaap.datarouter.provisioning.utils.JSONUtilities;
+
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
/**
* This servlet handles provisioning for the <groups> which is generated by the provisioning
* DELETE on the <GRUPS> -- not supported.
*/
@Override
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
String message = "DELETE not allowed for the GROUPS.";
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
}
/**
* GET on the the list of groups to a feed/sub.
* document for details on how this method should be invoked.
*/
@Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doGet(HttpServletRequest req, HttpServletResponse resp) {
EventLogRecord elr = new EventLogRecord(req);
String message = isAuthorizedForProvisioning(req);
if (message != null) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doGet(req, resp);
+ try {
+ super.doGet(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
eventlogger.info(elr);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(GROUPFULL_CONTENT_TYPE);
- resp.getOutputStream().print(gup.asJSONObject().toString());
+ try {
+ resp.getOutputStream().print(gup.asJSONObject().toString());
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
// Display a list of Groups
/*Collection<Group> list = Group.getGroupById(groupid);
* PUT on the <GROUPS> -- not supported.
*/
@Override
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPut(HttpServletRequest req, HttpServletResponse resp) {
EventLogRecord elr = new EventLogRecord(req);
String message = isAuthorizedForProvisioning(req);
if (message != null) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doPut(req, resp);
+ try {
+ super.doPut(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
int groupid = getIdFromPath(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
Group oldgup = Group.getGroupById(groupid);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
// Check with the Authorizer
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);
+ sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);
return;
}
JSONObject jo = getJSONfromInput(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
if (intlogger.isDebugEnabled())
intlogger.debug(jo.toString());
- Group gup = null;
+ Group gup;
try {
gup = new Group(jo);
} catch (InvalidObjectException e) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
gup.setGroupid(oldgup.getGroupid());
-
-
Group gb2 = Group.getGroupMatching(gup, oldgup.getGroupid());
if (gb2 != null) {
eventlogger.warn("PROV0011 Creating a duplicate Group: "+gup.getName());
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName());
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName(), eventlogger);
return;
}
eventlogger.info(elr);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(GROUPFULL_CONTENT_TYPE);
- resp.getOutputStream().print(gup.asJSONObject().toString());
+ try {
+ resp.getOutputStream().print(gup.asJSONObject().toString());
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
provisioningDataChanged();
} else {
// Something went wrong with the UPDATE
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
}
/**
* document for details on how this method should be invoked.
*/
@Override
- public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPost(HttpServletRequest req, HttpServletResponse resp) {
EventLogRecord elr = new EventLogRecord(req);
String message = isAuthorizedForProvisioning(req);
if (message != null) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doPost(req, resp);
+ try {
+ super.doPost(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
/*int feedid = getIdFromPath(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);
+ sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);
return;
}
JSONObject jo = getJSONfromInput(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
if (intlogger.isDebugEnabled())
intlogger.debug(jo.toString());
- Group gup = null;
+ Group gup;
try {
gup = new Group(jo);
} catch (InvalidObjectException e) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
//gup.setFeedid(feedid);
if (gb2 != null) {
eventlogger.warn("PROV0011 Creating a duplicate Group: "+gup.getName());
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName());
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Duplicate Group:"+gup.getName(), eventlogger);
return;
}
eventlogger.info(elr);
resp.setStatus(HttpServletResponse.SC_CREATED);
resp.setContentType(GROUPFULL_CONTENT_TYPE);
- resp.getOutputStream().print(gup.asJSONObject().toString());
+ try {
+ resp.getOutputStream().print(gup.asJSONObject().toString());
+ } catch (IOException ioe) {
+ eventlogger.error("IOException" + ioe.getMessage());
+ }
provisioningDataChanged();
} else {
// Something went wrong with the INSERT
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
}
}
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
+
/**
* <p>
* This servlet handles requests to URLs under /internal on the provisioning server. These include:
* details on how this method should be invoked.
*/
@Override
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doDelete");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage("Unauthorized.");
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Unauthorized.");
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);
return;
}
String path = req.getPathInfo();
if (path.startsWith("/api/")) {
if (isProxyOK(req) && isProxyServer()) {
- super.doDelete(req, resp);
+ try {
+ super.doDelete(req, resp);
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String key = path.substring(5);
// Something went wrong with the DELETE
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
return;
}
}
}
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Bad URL.");
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);
}
/**
* document for details on how this method should be invoked.
*/
@Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doGet(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doGet");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
String path = req.getPathInfo();
+ Properties props = (new DB()).getProperties();
if (path.equals("/halt") && !req.isSecure()) {
// request to halt the server - can ONLY come from localhost
String remote = req.getRemoteAddr();
- if (remote.equals("127.0.0.1")) {
+ if (remote.equals(props.getProperty("org.onap.dmaap.datarouter.provserver.localhost"))) {
intlogger.info("PROV0009 Request to HALT received.");
resp.setStatus(HttpServletResponse.SC_OK);
Main.shutdown();
elr.setMessage("Unauthorized.");
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Unauthorized.");
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);
return;
}
if (path.equals("/fetchProv") && !req.isSecure()) {
}
if (path.equals("/prov")) {
if (isProxyOK(req) && isProxyServer()) {
- if (super.doGetWithFallback(req, resp)) {
- return;
+ try {
+ if (super.doGetWithFallback(req, resp)) {
+ return;
+ }
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
}
// fall back to returning the local data if the remote is unreachable
intlogger.info("Active server unavailable; falling back to local copy.");
Poker p = Poker.getPoker();
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(PROVFULL_CONTENT_TYPE2);
- resp.getOutputStream().print(p.getProvisioningString());
+ try {
+ resp.getOutputStream().print(p.getProvisioningString());
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
if (path.equals("/logs") || path.equals("/logs/")) {
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("application/json");
- resp.getOutputStream().print(generateLogfileList().toString());
+ try {
+ resp.getOutputStream().print(generateLogfileList().toString());
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
if (path.startsWith("/logs/")) {
- Properties p = (new DB()).getProperties();
- String logdir = p.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir");
+ String logdir = props.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir");
String logfile = path.substring(6);
if (logdir != null && logfile != null && logfile.indexOf('/') < 0) {
File log = new File(logdir + "/" + logfile);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("text/plain");
Path logpath = Paths.get(log.getAbsolutePath());
- Files.copy(logpath, resp.getOutputStream());
+ try {
+ Files.copy(logpath, resp.getOutputStream());
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
}
- resp.sendError(HttpServletResponse.SC_NO_CONTENT, "No file.");
+ sendResponseError(resp, HttpServletResponse.SC_NO_CONTENT, "No file.", eventlogger);
return;
}
if (path.startsWith("/api/")) {
if (isProxyOK(req) && isProxyServer()) {
- super.doGet(req, resp);
+ try {
+ super.doGet(req, resp);
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String key = path.substring(5);
if (param != null) {
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("text/plain");
- resp.getOutputStream().print(param.getValue() + "\n");
+ try {
+ resp.getOutputStream().print(param.getValue() + "\n");
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
}
LogfileLoader lfl = LogfileLoader.getLoader();
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("text/plain");
- resp.getOutputStream().print(lfl.getBitSet().toString());
+ try {
+ resp.getOutputStream().print(lfl.getBitSet().toString());
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Bad URL.");
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);
}
/**
* details on how this method should be invoked.
*/
@Override
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPut(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doPut");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage("Unauthorized.");
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Unauthorized.");
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);
return;
}
String path = req.getPathInfo();
if (path.startsWith("/api/")) {
if (isProxyOK(req) && isProxyServer()) {
- super.doPut(req, resp);
+ try {
+ super.doPut(req, resp);
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String key = path.substring(5);
// Something went wrong with the UPDATE
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
return;
}
}
}
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Bad URL.");
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);
}
/**
*/
@SuppressWarnings("resource")
@Override
- public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPost(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doPost");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER));
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage("Unauthorized.");
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Unauthorized.");
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);
return;
}
String path = req.getPathInfo();
if (path.startsWith("/api/")) {
if (isProxyOK(req) && isProxyServer()) {
- super.doPost(req, resp);
+ try {
+ super.doPost(req, resp);
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
String key = path.substring(5);
// Something went wrong with the INSERT
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
return;
}
long total = 0;
long avail = 0;
for (FileStore store : fs.getFileStores()) {
- total += store.getTotalSpace();
- avail += store.getUsableSpace();
+ try {
+ total += store.getTotalSpace();
+ avail += store.getUsableSpace();
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
}
try {
fs.close();
}
Path tmppath = Paths.get(spooldir, spoolname);
Path donepath = Paths.get(spooldir, "IN." + spoolname);
- Files.copy(req.getInputStream(), Paths.get(spooldir, spoolname), StandardCopyOption.REPLACE_EXISTING);
- Files.move(tmppath, donepath, StandardCopyOption.REPLACE_EXISTING);
- elr.setResult(HttpServletResponse.SC_CREATED);
- resp.setStatus(HttpServletResponse.SC_CREATED);
- eventlogger.info(elr);
- LogfileLoader.getLoader(); // This starts the logfile loader "task"
+ try {
+ Files.copy(req.getInputStream(), Paths.get(spooldir, spoolname), StandardCopyOption.REPLACE_EXISTING);
+ Files.move(tmppath, donepath, StandardCopyOption.REPLACE_EXISTING);
+ elr.setResult(HttpServletResponse.SC_CREATED);
+ resp.setStatus(HttpServletResponse.SC_CREATED);
+ eventlogger.info(elr);
+ LogfileLoader.getLoader(); // This starts the logfile loader "task"
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
return;
}
eventlogger.info(elr);
return;
}
- InputStream is = req.getInputStream();
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- int ch = 0;
- while ((ch = is.read()) >= 0) {
- bos.write(ch);
+ try {
+ InputStream is = req.getInputStream();
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ int ch;
+ while ((ch = is.read()) >= 0) {
+ bos.write(ch);
+ }
+ RLEBitSet bs = new RLEBitSet(bos.toString()); // The set of records to retrieve
+ elr.setResult(HttpServletResponse.SC_OK);
+ resp.setStatus(HttpServletResponse.SC_OK);
+ resp.setContentType("text/plain");
+ LogRecord.printLogRecords(resp.getOutputStream(), bs);
+ eventlogger.info(elr);
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
}
- RLEBitSet bs = new RLEBitSet(bos.toString()); // The set of records to retrieve
- elr.setResult(HttpServletResponse.SC_OK);
- resp.setStatus(HttpServletResponse.SC_OK);
- resp.setContentType("text/plain");
- LogRecord.printLogRecords(resp.getOutputStream(), bs);
- eventlogger.info(elr);
return;
}
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Bad URL.");
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);
eventlogger.info(elr);
}
try (FileInputStream instream = new FileInputStream(new File(store))) {
ks.load(instream, pass.toCharArray());
} catch (FileNotFoundException fileNotFoundException) {
- System.err.println("ProxyServlet: " + fileNotFoundException);
- fileNotFoundException.printStackTrace();
+ intlogger.error("ProxyServlet: " + fileNotFoundException.getMessage());
} catch (Exception x) {
System.err.println("READING TRUSTSTORE: " + x);
}
import javax.servlet.http.HttpServletRequest;\r
import javax.servlet.http.HttpServletResponse;\r
\r
+import org.json.JSONException;\r
import org.json.JSONObject;\r
import org.onap.dmaap.datarouter.provisioning.beans.Deleteable;\r
import org.onap.dmaap.datarouter.provisioning.beans.EgressRoute;\r
import org.onap.dmaap.datarouter.provisioning.beans.NetworkRoute;\r
import org.onap.dmaap.datarouter.provisioning.beans.NodeClass;\r
\r
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
/**\r
* <p>\r
* This servlet handles requests to URLs under /internal/route/ on the provisioning server.\r
* DELETE route table entries by deleting part of the route table tree.\r
*/\r
@Override\r
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {\r
EventLogRecord elr = new EventLogRecord(req);\r
if (!isAuthorizedForInternal(req)) {\r
elr.setMessage("Unauthorized.");\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Unauthorized.");\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);\r
return;\r
}\r
if (isProxyOK(req) && isProxyServer()) {\r
- super.doDelete(req, resp);\r
+ try {\r
+ super.doDelete(req, resp);\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException" + ioe.getMessage());\r
+ }\r
return;\r
}\r
\r
int feedid = Integer.parseInt(parts[1]);\r
IngressRoute er = IngressRoute.getIngressRoute(feedid, parts[2], parts[3].replaceAll("!", "/"));\r
if (er == null) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "The specified ingress route does not exist.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "The specified ingress route does not exist.", eventlogger);\r
return;\r
}\r
d = new Deleteable[] { er };\r
} catch (NumberFormatException e) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid feed ID in 'delete ingress' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid feed ID in 'delete ingress' command.", eventlogger);\r
return;\r
}\r
} else if (parts.length == 2) {\r
Set<IngressRoute> set = IngressRoute.getIngressRoutesForSeq(seq);\r
d = set.toArray(new Deleteable[0]);\r
} catch (NumberFormatException e) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid sequence number in 'delete ingress' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid sequence number in 'delete ingress' command.", eventlogger);\r
return;\r
}\r
} else {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete ingress' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete ingress' command.", eventlogger);\r
return;\r
}\r
} else if (parts[0].equals("egress")) {\r
int subid = Integer.parseInt(parts[1]);\r
EgressRoute er = EgressRoute.getEgressRoute(subid);\r
if (er == null) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "The specified egress route does not exist.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "The specified egress route does not exist.", eventlogger);\r
return;\r
}\r
d = new Deleteable[] { er };\r
} catch (NumberFormatException e) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid sub ID in 'delete egress' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid sub ID in 'delete egress' command.", eventlogger);\r
return;\r
}\r
} else {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete egress' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete egress' command.", eventlogger);\r
return;\r
}\r
} else if (parts[0].equals("network")) {\r
);\r
d = new Deleteable[] { nr };\r
} catch (IllegalArgumentException e) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "The specified network route does not exist.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "The specified network route does not exist.", eventlogger);\r
return;\r
}\r
} else {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete network' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete network' command.", eventlogger);\r
return;\r
}\r
}\r
if (d == null) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Bad URL.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);\r
return;\r
}\r
boolean rv = true;\r
// Something went wrong with the DELETE\r
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);\r
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);\r
}\r
}\r
/**\r
* GET route table entries from the route table tree specified by the URL path.\r
*/\r
@Override\r
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doGet(HttpServletRequest req, HttpServletResponse resp) {\r
EventLogRecord elr = new EventLogRecord(req);\r
if (!isAuthorizedForInternal(req)) {\r
elr.setMessage("Unauthorized.");\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Unauthorized.");\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);\r
return;\r
}\r
if (isProxyOK(req) && isProxyServer()) {\r
- super.doGet(req, resp);\r
+ try {\r
+ super.doGet(req, resp);\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException" + ioe.getMessage());\r
+ }\r
return;\r
}\r
\r
if (!path.endsWith("/"))\r
path += "/";\r
if (!path.equals("/") && !path.equals("/ingress/") && !path.equals("/egress/") && !path.equals("/network/")) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Bad URL.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);\r
return;\r
}\r
\r
for (String key : jx.keySet()) {\r
sb.append(pfx);\r
sb.append(" \"").append(key).append("\": ");\r
- sb.append("\"").append(jx.getString(key)).append("\"");\r
+ try {\r
+ sb.append("\"").append(jx.getString(key)).append("\"");\r
+ } catch (JSONException je) {\r
+ eventlogger.error("JSONException" + je.getMessage());\r
+ }\r
pfx = ",\n";\r
}\r
}\r
sb.append("}\n");\r
resp.setStatus(HttpServletResponse.SC_OK);\r
resp.setContentType("application/json");\r
- resp.getOutputStream().print(sb.toString());\r
+ try {\r
+ resp.getOutputStream().print(sb.toString());\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException" + ioe.getMessage());\r
+ }\r
}\r
/**\r
* PUT on </internal/route/*> -- not supported.\r
*/\r
@Override\r
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doPut(HttpServletRequest req, HttpServletResponse resp) {\r
EventLogRecord elr = new EventLogRecord(req);\r
if (!isAuthorizedForInternal(req)) {\r
elr.setMessage("Unauthorized.");\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Unauthorized.");\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);\r
return;\r
}\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Bad URL.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);\r
}\r
/**\r
* POST - modify existing route table entries in the route table tree specified by the URL path.\r
*/\r
@Override\r
- public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doPost(HttpServletRequest req, HttpServletResponse resp) {\r
EventLogRecord elr = new EventLogRecord(req);\r
if (!isAuthorizedForInternal(req)) {\r
elr.setMessage("Unauthorized.");\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, "Unauthorized.");\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);\r
return;\r
}\r
if (isProxyOK(req) && isProxyServer()) {\r
- super.doPost(req, resp);\r
+ try {\r
+ super.doPost(req, resp);\r
+ } catch (IOException ioe) {\r
+ intlogger.error("IOException" + ioe.getMessage());\r
+ }\r
return;\r
}\r
String path = req.getPathInfo();\r
ins = new Insertable[] { new IngressRoute(seq, feedid, user, subnet, NodeClass.lookupNodeNames(nodepatt)) };\r
} catch (Exception e) {\r
intlogger.info(e);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add ingress' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add ingress' command.", intlogger);\r
return;\r
}\r
} else if (path.startsWith("/egress/")) {\r
int subid = Integer.parseInt(req.getParameter("sub"));\r
EgressRoute er = EgressRoute.getEgressRoute(subid);\r
if (er != null) {\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "An egress route already exists for that subscriber.");\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "An egress route already exists for that subscriber.", 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);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add egress' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add egress' command.", intlogger);\r
return;\r
}\r
} else if (path.startsWith("/network/")) {\r
String nto = req.getParameter("to");\r
String nvia = req.getParameter("via");\r
if (nfrom == null || nto == null || nvia == null) {\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing arguments in 'add network' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Missing arguments in 'add network' command.", intlogger);\r
return;\r
}\r
nfrom = NodeClass.normalizeNodename(nfrom);\r
NetworkRoute nr = new NetworkRoute(nfrom, nto, nvia);\r
for (NetworkRoute route : NetworkRoute.getAllNetworkRoutes()) {\r
if (route.getFromnode() == nr.getFromnode() && route.getTonode() == nr.getTonode()) {\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Network route table already contains a route for "+nfrom+" and "+nto);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Network route table already contains a route for " + nfrom + " and " + nto, intlogger);\r
return;\r
}\r
}\r
ins = new Insertable[] { nr };\r
} catch (IllegalArgumentException e) {\r
intlogger.info(e);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add network' command.");\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add network' command.", intlogger);\r
return;\r
}\r
}\r
if (ins == null) {\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, "Bad URL.");\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", intlogger);\r
return;\r
}\r
boolean rv = true;\r
// Something went wrong with the INSERT\r
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);\r
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, intlogger);\r
}\r
}\r
}\r
import java.sql.PreparedStatement;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
-import java.sql.Statement;\r
import java.text.ParseException;\r
import java.text.SimpleDateFormat;\r
import java.util.Calendar;\r
import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
import org.onap.dmaap.datarouter.provisioning.utils.LOGJSONObject;\r
\r
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
/**\r
* This Servlet handles requests to the <Statistics API> and <Statistics consilidated\r
* resultset>,\r
* DELETE a logging URL -- not supported.\r
*/\r
@Override\r
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {\r
String message = "DELETE not allowed for the logURL.";\r
EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);\r
}\r
\r
/**\r
* <b>Statistics API</b> document for details on how this method should be invoked.\r
*/\r
@Override\r
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doGet(HttpServletRequest req, HttpServletResponse resp) {\r
\r
Map<String, String> map = buildMapFromRequest(req);\r
if (map.get("err") != null) {\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments: " + map.get("err"));\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments: " + map.get("err"), eventlogger);\r
return;\r
}\r
// check Accept: header??\r
\r
resp.setStatus(HttpServletResponse.SC_OK);\r
resp.setContentType(LOGLIST_CONTENT_TYPE);\r
- ServletOutputStream out = resp.getOutputStream();\r
\r
String outputType = "json";\r
String feedids = null;\r
\r
if (req.getParameter("feedid") == null && req.getParameter("groupid") == null) {\r
- out.print("Invalid request, Feedid or Group ID is required.");\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
+ }\r
}\r
\r
if (req.getParameter("feedid") != null && req.getParameter("groupid") == null) {\r
System.out.println("groupid1" + groupid1.toString());\r
\r
\r
- } catch (NumberFormatException e) {\r
- e.printStackTrace();\r
- } catch (SQLException e) {\r
- e.printStackTrace();\r
+ } catch (NumberFormatException | SQLException e) {\r
+ eventlogger.error(e.getMessage());\r
}\r
}\r
if (req.getParameter("groupid") != null && req.getParameter("feedid") != null) {\r
System.out.println("groupid1" + groupid1.toString());\r
\r
\r
- } catch (NumberFormatException e) {\r
- e.printStackTrace();\r
- } catch (SQLException e) {\r
- e.printStackTrace();\r
+ } catch (NumberFormatException | SQLException e) {\r
+ eventlogger.error(e.getMessage());\r
}\r
}\r
\r
if (req.getParameter("output_type") != null) {\r
outputType = req.getParameter("output_type");\r
}\r
-\r
- this.getRecordsForSQL(map, outputType, out, resp);\r
+ try {\r
+ this.getRecordsForSQL(map, outputType, resp.getOutputStream(), resp);\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException: " + ioe.getMessage());\r
+ }\r
\r
}\r
\r
System.out.println("feedIds" + feedIds.toString());\r
}\r
} catch (SQLException e) {\r
- e.printStackTrace();\r
+ eventlogger.error(e.getMessage());\r
} finally {\r
try {\r
if (resultSet != null) {\r
db.release(conn);\r
}\r
} catch (Exception e) {\r
- e.printStackTrace();\r
+ eventlogger.error(e.getMessage());\r
}\r
}\r
return feedIds;\r
* PUT a Statistics URL -- not supported.\r
*/\r
@Override\r
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doPut(HttpServletRequest req, HttpServletResponse resp) {\r
String message = "PUT not allowed for the StatisticsURL.";\r
EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);\r
}\r
\r
/**\r
* POST a Statistics URL -- not supported.\r
*/\r
@Override\r
- public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doPost(HttpServletRequest req, HttpServletResponse resp) {\r
String message = "POST not allowed for the StatisticsURL.";\r
EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);\r
}\r
\r
private Map<String, String> buildMapFromRequest(HttpServletRequest req) {\r
}\r
}\r
} catch (SQLException e) {\r
- e.printStackTrace();\r
+ eventlogger.error("SQLException:" + e);\r
}\r
intlogger.debug("Time: " + (System.currentTimeMillis() - start) + " ms");\r
} catch (IOException e) {\r
eventlogger.error("IOException - Generating JSON/CSV:" + e);\r
- e.printStackTrace();\r
} catch (JSONException e) {\r
eventlogger.error("JSONException - executing SQL query:" + e);\r
- e.printStackTrace();\r
} catch (ParseException e) {\r
eventlogger.error("ParseException - executing SQL query:" + e);\r
- e.printStackTrace();\r
}\r
}\r
}\r
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;
+
/**
* This servlet handles provisioning for the <subscribeURL> which is generated by the provisioning server to
* handle the creation and inspection of subscriptions to a specific feed.
* DELETE on the <subscribeUrl> -- not supported.
*/
@Override
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doDelete");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
String message = "DELETE not allowed for the subscribeURL.";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
}
/**
* Query</i> section in the <b>Provisioning API</b> document for details on how this method should be invoked.
*/
@Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doGet(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doGet");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
EventLogRecord elr = new EventLogRecord(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doGet(req, resp);
+ try {
+ super.doGet(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException: " + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
int feedid = getIdFromPath(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
Feed feed = Feed.getFeedById(feedid);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
// Check with the Authorizer
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
eventlogger.info(elr);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType(SUBLIST_CONTENT_TYPE);
- resp.getOutputStream().print(t);
+ try {
+ resp.getOutputStream().print(t);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException: " + ioe.getMessage());
+ }
}
/**
* PUT on the <subscribeUrl> -- not supported.
*/
@Override
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+ public void doPut(HttpServletRequest req, HttpServletResponse resp) {
setIpAndFqdnForEelf("doPut");
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
String message = "PUT not allowed for the subscribeURL.";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);
+ sendResponseError(resp, HttpServletResponse.SC_METHOD_NOT_ALLOWED, message, eventlogger);
}
/**
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
if (isProxyServer()) {
- super.doPost(req, resp);
+ try {
+ super.doPost(req, resp);
+ } catch (IOException ioe) {
+ eventlogger.error("IOException: " + ioe.getMessage());
+ }
return;
}
String bhdr = req.getHeader(BEHALF_HEADER);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
int feedid = getIdFromPath(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
Feed feed = Feed.getFeedById(feedid);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
// Check with the Authorizer
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);
return;
}
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);
+ sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);
return;
}
JSONObject jo = getJSONfromInput(req);
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
if (intlogger.isDebugEnabled()) {
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_CONFLICT);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_CONFLICT, message);
+ sendResponseError(resp, HttpServletResponse.SC_CONFLICT, message, eventlogger);
return;
}
Subscription sub = null;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
sub.setFeedid(feedid);
resp.setStatus(HttpServletResponse.SC_CREATED);
resp.setContentType(SUBFULL_CONTENT_TYPE);
resp.setHeader("Location", sub.getLinks().getSelf());
- resp.getOutputStream().print(sub.asLimitedJSONObject().toString());
+ try {
+ resp.getOutputStream().print(sub.asLimitedJSONObject().toString());
+ } catch (IOException ioe) {
+ eventlogger.error("IOException: " + ioe.getMessage());
+ }
provisioningDataChanged();
} else {
activeSubs--;
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
eventlogger.info(elr);
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, eventlogger);
}
}
}
import com.att.eelf.configuration.EELFLogger;\r
import com.att.eelf.configuration.EELFManager;\r
\r
+import static org.onap.dmaap.datarouter.provisioning.utils.HttpServletUtils.sendResponseError;\r
+\r
/**\r
* This servlet handles provisioning for the <subscriptionURL> which is generated by the provisioning server to\r
* handle the inspection, modification, and deletion of a particular subscription to a feed. It supports DELETE to\r
* the <b>Provisioning API</b> document for details on how this method should be invoked.\r
*/\r
@Override\r
- public void doDelete(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {\r
setIpAndFqdnForEelf("doDelete");\r
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
if (isProxyServer()) {\r
- super.doDelete(req, resp);\r
+ try {\r
+ super.doDelete(req, resp);\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException: " + ioe.getMessage());\r
+ }\r
return;\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
int subid = getIdFromPath(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
Subscription sub = Subscription.getSubscriptionById(subid);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
return;\r
}\r
// Check with the Authorizer\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
\r
// Something went wrong with the DELETE\r
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);\r
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, intlogger);\r
}\r
}\r
\r
* invoked.\r
*/\r
@Override\r
- public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doGet(HttpServletRequest req, HttpServletResponse resp) {\r
setIpAndFqdnForEelf("doGet");\r
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
if (isProxyServer()) {\r
- super.doGet(req, resp);\r
+ try {\r
+ super.doGet(req, resp);\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException: " + ioe.getMessage());\r
+ }\r
return;\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
int subid = getIdFromPath(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
Subscription sub = Subscription.getSubscriptionById(subid);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
return;\r
}\r
// Check with the Authorizer\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
\r
eventlogger.info(elr);\r
resp.setStatus(HttpServletResponse.SC_OK);\r
resp.setContentType(SUBFULL_CONTENT_TYPE);\r
- resp.getOutputStream().print(sub.asJSONObject(true).toString());\r
+ try {\r
+ resp.getOutputStream().print(sub.asJSONObject(true).toString());\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException: " + ioe.getMessage());\r
+ }\r
}\r
\r
/**\r
* the <b>Provisioning API</b> document for details on how this method should be invoked.\r
*/\r
@Override\r
- public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doPut(HttpServletRequest req, HttpServletResponse resp) {\r
setIpAndFqdnForEelf("doPut");\r
eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
if (isProxyServer()) {\r
- super.doPut(req, resp);\r
+ try {\r
+ super.doPut(req, resp);\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException: " + ioe.getMessage());\r
+ }\r
return;\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
int subid = getIdFromPath(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
Subscription oldsub = Subscription.getSubscriptionById(subid);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
return;\r
}\r
// Check with the Authorizer\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
// check content type is SUB_CONTENT_TYPE, version 1.0\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);\r
return;\r
}\r
JSONObject jo = getJSONfromInput(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
if (intlogger.isDebugEnabled()) {\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
sub.setSubid(oldsub.getSubid());\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
\r
eventlogger.info(elr);\r
resp.setStatus(HttpServletResponse.SC_OK);\r
resp.setContentType(SUBFULL_CONTENT_TYPE);\r
- resp.getOutputStream().print(sub.asLimitedJSONObject().toString());\r
+ try {\r
+ resp.getOutputStream().print(sub.asLimitedJSONObject().toString());\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException: " + ioe.getMessage());\r
+ }\r
\r
/**Change Owner ship of Subscriber Adding for group feature:Rally US708115*/\r
if (jo.has("changeowner") && subjectgroup != null) {\r
- Boolean changeowner = (Boolean) jo.get("changeowner");\r
- if (changeowner != null && changeowner.equals(true)) {\r
- sub.setSubscriber(req.getHeader(BEHALF_HEADER));\r
- sub.changeOwnerShip();\r
+ try {\r
+ Boolean changeowner = (Boolean) jo.get("changeowner");\r
+ if (changeowner != null && changeowner.equals(true)) {\r
+ sub.setSubscriber(req.getHeader(BEHALF_HEADER));\r
+ sub.changeOwnerShip();\r
+ }\r
+ } catch (JSONException je) {\r
+ eventlogger.error("JSONException: " + je.getMessage());\r
}\r
}\r
/***End of change ownership*/\r
// Something went wrong with the UPDATE\r
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG);\r
+ sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, intlogger);\r
}\r
}\r
\r
* Schedule</i> section in the <b>Provisioning API</b> document for details on how this method should be invoked.\r
*/\r
@Override\r
- public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {\r
+ public void doPost(HttpServletRequest req, HttpServletResponse resp) {\r
// OLD pre-3.0 code\r
// String message = "POST not allowed for the subscriptionURL.";\r
// EventLogRecord elr = new EventLogRecord(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
if (isProxyServer()) {\r
- super.doPost(req, resp);\r
+ try {\r
+ super.doPost(req, resp);\r
+ } catch (IOException ioe) {\r
+ eventlogger.error("IOException: " + ioe.getMessage());\r
+ }\r
return;\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
final int subid = getIdFromPath(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
// check content type is SUBCNTRL_CONTENT_TYPE, version 1.0\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);\r
return;\r
}\r
// Check with the Authorizer\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
JSONObject jo = getJSONfromInput(req);\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
try {\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.info(elr);\r
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);\r
+ sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
}\r
}\r
\r
}\r
} catch (Exception e) {\r
intlogger.warn("Caught exception in SubscriberNotifyThread: " + e);\r
- e.printStackTrace();\r
}\r
}\r
}\r
try {\r
DB db = new DB();\r
Connection conn = db.getConnection();\r
- try(Statement stmt = conn.createStatement()) {\r
- try(ResultSet rs = stmt.executeQuery("select COUNT(*) from FEEDS where FEEDID = " + id)) {\r
+ try(PreparedStatement stmt = conn.prepareStatement("select COUNT(*) from FEEDS where FEEDID = ?")) {\r
+ stmt.setInt(1, id);\r
+ try(ResultSet rs = stmt.executeQuery()) {\r
if (rs.next()) {\r
count = rs.getInt(1);\r
}\r
}\r
\r
public static Collection<String> getGroupsByClassfication(String classfication) {\r
- List<String> list = new ArrayList<String>();\r
- String sql = "select * from GROUPS where classification = '" + classfication + "'";\r
+ List<String> list = new ArrayList<>();\r
+ String sql = "select * from GROUPS where classification = ?";\r
try {\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- try(Statement stmt = conn.createStatement()) {\r
- try(ResultSet rs = stmt.executeQuery(sql)) {\r
+ try(PreparedStatement stmt = conn.prepareStatement(sql)) {\r
+ stmt.setString(1, classfication);\r
+ try(ResultSet rs = stmt.executeQuery()) {\r
while (rs.next()) {\r
int groupid = rs.getInt("groupid");\r
\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- try(Statement stmt = conn.createStatement()) {\r
- String sql = "select KEYNAME, VALUE from PARAMETERS where KEYNAME = '" + k + "'";\r
- try(ResultSet rs = stmt.executeQuery(sql)) {\r
+ try(PreparedStatement stmt = conn.prepareStatement("select KEYNAME, VALUE from PARAMETERS where KEYNAME = ?")) {\r
+ stmt.setString(1, k);\r
+ try(ResultSet rs = stmt.executeQuery()) {\r
if (rs.next()) {\r
v = new Parameters(rs);\r
}\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
import java.sql.Statement;\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.Date;\r
-import java.util.List;\r
+import java.util.*;\r
\r
import org.apache.log4j.Logger;\r
import org.json.JSONObject;\r
import org.onap.dmaap.datarouter.provisioning.utils.DB;\r
import org.onap.dmaap.datarouter.provisioning.utils.URLUtilities;\r
\r
-import java.util.Properties;\r
-\r
/**\r
* The representation of a Subscription. Subscriptions can be retrieved from the DB, or stored/updated in the DB.\r
*\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery(sql);\r
- while (rs.next()) {\r
- Subscription sub = new Subscription(rs);\r
- list.add(sub);\r
+ try(Statement stmt = conn.createStatement()) {\r
+ try(ResultSet rs = stmt.executeQuery(sql)) {\r
+ while (rs.next()) {\r
+ Subscription sub = new Subscription(rs);\r
+ list.add(sub);\r
+ }\r
+ }\r
}\r
- rs.close();\r
- stmt.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
e.printStackTrace();\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery("select MAX(subid) from SUBSCRIPTIONS");\r
- if (rs.next()) {\r
- max = rs.getInt(1);\r
+ try(Statement stmt = conn.createStatement()) {\r
+ try(ResultSet rs = stmt.executeQuery("select MAX(subid) from SUBSCRIPTIONS")) {\r
+ if (rs.next()) {\r
+ max = rs.getInt(1);\r
+ }\r
+ }\r
}\r
- rs.close();\r
- stmt.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
intlogger.info("getMaxSubID: " + e.getMessage());\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery(sql);\r
- while (rs.next()) {\r
- int subid = rs.getInt("SUBID");\r
- list.add(URLUtilities.generateSubscriptionURL(subid));\r
+ try(Statement stmt = conn.createStatement()) {\r
+ try(ResultSet rs = stmt.executeQuery(sql)) {\r
+ while (rs.next()) {\r
+ int subid = rs.getInt("SUBID");\r
+ list.add(URLUtilities.generateSubscriptionURL(subid));\r
+ }\r
+ }\r
}\r
- rs.close();\r
- stmt.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
e.printStackTrace();\r
DB db = new DB();\r
@SuppressWarnings("resource")\r
Connection conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- ResultSet rs = stmt.executeQuery("select count(*) from SUBSCRIPTIONS");\r
- if (rs.next()) {\r
- count = rs.getInt(1);\r
+ try(Statement stmt = conn.createStatement()) {\r
+ try(ResultSet rs = stmt.executeQuery("select count(*) from SUBSCRIPTIONS")) {\r
+ if (rs.next()) {\r
+ count = rs.getInt(1);\r
+ }\r
+ }\r
}\r
- rs.close();\r
- stmt.close();\r
db.release(conn);\r
} catch (SQLException e) {\r
intlogger.warn("PROV0008 countActiveSubscriptions: " + e.getMessage());\r
ps.setInt(10, groupid); //New field is added - Groups feature Rally:US708115 - 1610\r
ps.execute();\r
ps.close();\r
-// ResultSet rs = ps.getGeneratedKeys();\r
-// rs.first();\r
-// setSubid(rs.getInt(1)); // side effect - sets the link URLs\r
-// ps.close();\r
-\r
// Update the row to set the URLs\r
sql = "update SUBSCRIPTIONS set SELF_LINK = ?, LOG_LINK = ? where SUBID = ?";\r
ps = c.prepareStatement(sql);\r
e.printStackTrace();\r
} finally {\r
try {\r
- ps.close();\r
+ if(ps!=null) {\r
+ ps.close();\r
+ }\r
} catch (SQLException e) {\r
e.printStackTrace();\r
}\r
e.printStackTrace();\r
} finally {\r
try {\r
- ps.close();\r
+ if(ps!=null) {\r
+ ps.close();\r
+ }\r
} catch (SQLException e) {\r
e.printStackTrace();\r
}\r
e.printStackTrace();\r
} finally {\r
try {\r
- ps.close();\r
+ if(ps!=null) {\r
+ ps.close();\r
+ }\r
} catch (SQLException e) {\r
e.printStackTrace();\r
}\r
e.printStackTrace();\r
} finally {\r
try {\r
- ps.close();\r
+ if(ps!=null) {\r
+ ps.close();\r
+ }\r
} catch (SQLException e) {\r
e.printStackTrace();\r
}\r
return true;\r
}\r
\r
+ @Override\r
+ public int hashCode() {\r
+ return Objects.hash(subid, feedid, groupid, delivery, metadataOnly, subscriber, links, suspended, last_mod, created_date);\r
+ }\r
+\r
@Override\r
public String toString() {\r
return "SUB: subid=" + subid + ", feedid=" + feedid;\r
sb.append("Egress Routing Table\n");\r
sb.append(String.format("%s Node\n", ext("SubID", cw1)));\r
for (int i = 0; i < subs.length; i++) {\r
- String node = ert.getString(subs[i]);\r
- sb.append(String.format("%s %s\n", ext(subs[i], cw1), node));\r
+ if(ert!=null&&ert.length()!=0) {\r
+ String node = ert.getString(subs[i]);\r
+ sb.append(String.format("%s %s\n", ext(subs[i], cw1), node));\r
+ }\r
+\r
}\r
}\r
if (tbl.startsWith("al") || tbl.startsWith("ne")) {\r
--- /dev/null
+/*******************************************************************************
+ * ============LICENSE_START==================================================
+ * * org.onap.dmaap
+ * * ===========================================================================
+ * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * * ===========================================================================
+ * * Licensed under the Apache License, Version 2.0 (the "License");
+ * * you may not use this file except in compliance with the License.
+ * * You may obtain a copy of the License at
+ * *
+ * * http://www.apache.org/licenses/LICENSE-2.0
+ * *
+ * * Unless required by applicable law or agreed to in writing, software
+ * * distributed under the License is distributed on an "AS IS" BASIS,
+ * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * * See the License for the specific language governing permissions and
+ * * limitations under the License.
+ * * ============LICENSE_END====================================================
+ * *
+ * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * *
+ ******************************************************************************/
+package org.onap.dmaap.datarouter.provisioning.utils;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+import org.apache.log4j.Logger;
+
+public class HttpServletUtils {
+ public static void sendResponseError(HttpServletResponse response, int errorCode, String message, Logger intlogger) {
+ try {
+ response.sendError(errorCode, message);
+ } catch (IOException ioe) {
+ intlogger.error("IOException" + ioe.getMessage());
+ }
+ }
+}
try {\r
Thread.sleep(1000L);\r
} catch (InterruptedException e) {\r
+ Thread.currentThread().interrupt();\r
}\r
idle = false;\r
} else {\r
Connection conn = null;\r
try {\r
conn = db.getConnection();\r
- Statement stmt = conn.createStatement();\r
- // Build a bitset of all records in the LOG_RECORDS table\r
- // We need to run this SELECT in stages, because otherwise we run out of memory!\r
RLEBitSet nbs = new RLEBitSet();\r
- final long stepsize = 6000000L;\r
- boolean go_again = true;\r
- for (long i = 0; go_again; i += stepsize) {\r
- String sql = String.format("select RECORD_ID from LOG_RECORDS LIMIT %d,%d", i, stepsize);\r
- try(ResultSet rs = stmt.executeQuery(sql)) {\r
- go_again = false;\r
- while (rs.next()) {\r
- long n = rs.getLong("RECORD_ID");\r
- nbs.set(n);\r
- go_again = true;\r
+ try(Statement stmt = conn.createStatement()) {\r
+ // Build a bitset of all records in the LOG_RECORDS table\r
+ // We need to run this SELECT in stages, because otherwise we run out of memory!\r
+ final long stepsize = 6000000L;\r
+ boolean go_again = true;\r
+ for (long i = 0; go_again; i += stepsize) {\r
+ String sql = String.format("select RECORD_ID from LOG_RECORDS LIMIT %d,%d", i, stepsize);\r
+ try (ResultSet rs = stmt.executeQuery(sql)) {\r
+ go_again = false;\r
+ while (rs.next()) {\r
+ long n = rs.getLong("RECORD_ID");\r
+ nbs.set(n);\r
+ go_again = true;\r
+ }\r
}\r
}\r
}\r
- stmt.close();\r
seq_set = nbs;\r
-\r
// Compare with the range for this server\r
// Determine the next ID for this set of record IDs\r
RLEBitSet tbs = (RLEBitSet) nbs.clone();\r
public static String generatePeerLogsURL() {\r
//Fixes for Itrack ticket - DATARTR-4#Fixing if only one Prov is configured, not to give exception to fill logs.\r
String peerPodUrl = getPeerPodName();\r
- if (peerPodUrl.equals("") || peerPodUrl.equals(null)) {\r
+ if (peerPodUrl.equals("") || peerPodUrl==null) {\r
return "";\r
}\r
\r
# relaxation to accommodate OOM kubernetes deploy
org.onap.dmaap.datarouter.provserver.isaddressauthenabled = false
+#Localhost address config
+org.onap.dmaap.datarouter.provserver.localhost = 127.0.0.1
+
# Database access
org.onap.dmaap.datarouter.db.driver = org.mariadb.jdbc.Driver
org.onap.dmaap.datarouter.db.url = jdbc:mariadb://172.100.0.2:3306/datarouter
org.onap.dmaap.datarouter.provserver.isaddressauthenabled = true
org.onap.dmaap.datarouter.provserver.https.relaxation = false
org.onap.dmaap.datarouter.provserver.accesslog.dir = unit-test-logs
-org.onap.dmaap.datarouter.provserver.spooldir = unit-test-logs/spool
\ No newline at end of file
+org.onap.dmaap.datarouter.provserver.spooldir = unit-test-logs/spool
+org.onap.dmaap.datarouter.provserver.localhost = 127.0.0.1
\ No newline at end of file
<parent>
<groupId>org.onap.dmaap.datarouter</groupId>
<artifactId>parent</artifactId>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.0.2-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>datarouter-subscriber</artifactId>
import java.io.IOException;
import java.util.Properties;
+import org.apache.log4j.Logger;
+
public class SubscriberProps {
private static SubscriberProps instance = null;
+ private static Logger subLogger = Logger.getLogger("org.onap.dmaap.datarouter.subscriber.internal");
private Properties properties;
private SubscriberProps(String propsPath) throws IOException{
try {
instance = new SubscriberProps(propsPath);
} catch (IOException ioe) {
- ioe.printStackTrace();
+ subLogger.error("IO Exception: " + ioe.getMessage());
}
}
return instance;
--- /dev/null
+===========================
+Data Router (DR) User Guide
+===========================
+
+Standalone Mode
+---------------
+
+Installation
+============
+
+1. Find the datarouter project on the gerrit website: https://gerrit.onap.org/r/#/admin/projects/dmaap/datarouter
+
+2. Clone the repo onto your server using the clone command found on the datarouter page on gerrit.
+
+3. cd into the docker-compose directory and run docker-compose up.
+
+Configurations
+==============
+
+Using the Data Router
+---------------------
+
+For information on how to use the Data Router refer to the Data Router API guide at:
+
+ :ref:`data_router_api_guide`
\ No newline at end of file
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Administration
+==============
+
+
+Processes
+---------
+NA
+
+Actions
+-------
+NA
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Architecture
+============
+
+
+Capabilities
+------------
+Data Router is a RESTful web service used for the transfer of data across networks any larger than a Message Router message (> 1Mb).
+
+Usage Scenarios
+---------------
+ Data Router endpoints are used to create/view/delete Feeds, Subscribers and Published files. Clients can use the Data Router endpoints
+ to publish a file to a feed and subscribe to this feed to receive the file.
+
+Interactions
+------------
+Data Router REST service uses the Data Router API to allow users to publish to and subscribe to a feed, in order to send and receive files.
+
+
+
+ |image0|
+
+ .. |image0| image:: dr_arch.png
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Configuration
+=============
+
+NA
\ No newline at end of file
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Consumed APIs
+=============
+
+Data Router does not consume any API
+.. _data_router_api_guide:\r
+\r
==========================\r
Data Router (DR) API Guide\r
==========================\r
Introduction\r
------------\r
\r
-The DataRouter(DR) provisioning API is an HTTPS-based, REST-like API for creating and managing DR feeds and subscriptions. The Data Routing System project is intended to provide a common framework by which data producers can make data available to data consumers and a way for potential consumers to find feeds with the data they require.\r
+The DataRouter(DR) provisioning API is an HTTPS-based, REST-like API for creating and managing DR feeds\r
+and subscriptions. The Data Routing System project is intended to provide a common framework by which\r
+data producers can make data available to data consumers and a way for potential consumers to find feeds\r
+with the data they require.\r
\r
\r
HTTP Service APIs\r
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Delivery
+==============
+
+Data Router is comprised of a datarouter-provisioning container, a datarouter-node container and a mariadb container.
+
+.. blockdiag::
+
+
+ blockdiag layers {
+ orientation = portrait
+ MARIADB -> DR-PROV;
+ DR-PROV -> DR-NODE;
+ group l1 {
+ color = blue;
+ label = "dr-prov Container";
+ DR-PROV;
+ }
+ group l2 {
+ color = yellow;
+ label = "dr-node Container";
+ DR-NODE;
+ }
+ group l3 {
+ color = orange;
+ label = "MariaDb Container";
+ MARIADB;
+ }
+
+ }
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Human Interfaces
+================
+
+Data Router does not have human interfaces
+
+
+
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Logging
+=======
+
+
+Where to Access Information
+---------------------------
+Data Router uses logback framework to generate logs.
+
+Error / Warning Messages
+------------------------
+Currently Data Router does not have any unique error codes. However the following are the common HTTP error codes that
+could possibly occur in Data Router:
+
+ OK = 200 : The normal response from a successful update or get of a feed or subscription
+ CREATED = 201 : the normal response from successfully creating or subscribing to a feed.
+ NO_CONTENT = 204 : the normal response from a successful publish attempt and on successfully deleting a feed or subscription
+ MOVED_PERMANENTLY = 301 :the normal redirect response from prov to a publisher
+ BAD_REQUEST = 400: Usually indicates that either Json object in request body is incorrect in some way, or an Invalid parameter value was included in query string.
+ UNAUTHORIZED = 401 : Usually indicated either request was missing Authorization header, or indicates incorrect Username/password credentials
+ FORBIDDEN = 403 : Usually indicates the request originated from an unauthorized IP address, or that a client certificate was not a part of authorized list.
+ NOT_FOUND = 404 : Usually indicates an incorrect URI
+ METHOD_NOT_ALLOWED = 405 : Indicates an HTTP method is not accepted for given URI
\ No newline at end of file
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Release-notes
+==============
+
+Version: 1.0.1
+--------------
+
+:Release Date: 2018-09-20
+
+
+New Features:
+
+ - Implements a RESTful HTTPS API for creating feeds to publish files to and subscribe to,
+ as well as perform CRUD operations on these feeds.
+ - Implements a RESTful HTTPS API for subscribing to feeds and perform CRUD operations on these subscriptions.
+ - Implements a RESTful HTTPS API for publishing to feeds and perform CRUD operations on these published files.
+
+
+
+Bug Fixes
+NA
+
+Known Issues
+NA
+
+Other
+NA
\ No newline at end of file
HTTP Service APIs\r
------------------\r
\r
-DMaaP Message Router utilizes an HTTP REST API to service all transactions. HTTP and REST standards are followed so\r
-clients as varied as CURL, Java applications and even Web Browsers will\r
-work to interact with the Data Router.\r
+DMaaP Data Router utilizes an HTTPS REST API to service all transactions. HTTPS and REST standards are followed so\r
+clients as varied as CURL, Java applications and even Web Browsers will work to interact with the Data Router.\r
\r
\r
\r
.. toctree::\r
- :maxdepth: 3\r
+ :maxdepth: 1\r
\r
- data-router/data-router\r
+ data-router/data-router.rst\r
+ data-router/administration.rst\r
+ data-router/architecture.rst\r
+ data-router/configuration.rst\r
+ data-router/consumedapis.rst\r
+ data-router/DataRouterUserGuide.rst\r
+ data-router/delivery.rst\r
+ data-router/humaninterfaces.rst\r
+ data-router/logging.rst\r
+ data-router/release-notes.rst\r
+\r
\r
\r
<groupId>org.onap.dmaap.datarouter</groupId>
<artifactId>parent</artifactId>
<name>dmaap-datarouter</name>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<url>https://github.com/att/DMAAP_DATAROUTER</url>
<parent>
<jetty.websocket.version>8.2.0.v20160908</jetty.websocket.version>
<javax.mail-api.version>1.5.5</javax.mail-api.version>
<dom4j.version>1.6</dom4j.version>
+ <xml-apis.version>1.4.01</xml-apis.version>
<thoughtworks.version>1.4.10</thoughtworks.version>
<google.guava.version>26.0-jre</google.guava.version>
<qos.logback.version>1.2.3</qos.logback.version>
\r
major=1\r
minor=0\r
-patch=1\r
+patch=2\r
\r
base_version=${major}.${minor}.${patch}\r
\r