diff options
author | j180240 <jiaxiangli@huawei.com> | 2016-09-14 15:00:54 +0800 |
---|---|---|
committer | j180240 <jiaxiangli@huawei.com> | 2016-09-14 15:00:54 +0800 |
commit | d089cf2631c2d647b97977bff905a2bdbff93986 (patch) | |
tree | 50bc400d59665099b1c137c009ac6a77c3e88b13 /servicegateway/service/src/main/java/org | |
parent | fd3c0d4674628bdb922984838803dbac5161e400 (diff) |
upload the servicegateway code .
Change-Id: I3fa83416412e9ef282bd03f45e011133965367c5
Signed-off-by: jiaxiangli <jiaxiangli@huawei.com>
Diffstat (limited to 'servicegateway/service/src/main/java/org')
11 files changed, 1089 insertions, 0 deletions
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/activator/Activator.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/activator/Activator.java new file mode 100644 index 00000000..befe9328 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/activator/Activator.java @@ -0,0 +1,83 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.activator;
+
+import java.io.File;
+
+import org.apache.commons.lang3.StringUtils;
+import org.openo.baseservice.util.impl.SystemEnvVariablesFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Service Start <br/>
+ *
+ * @author
+ * @since GSO 0.5, 2016-8-10
+ */
+public class Activator {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(Activator.class);
+
+ /**
+ * start operation by spring <br/>
+ *
+ * @param context
+ * service context
+ * @author
+ * @since GSO 0.5, 2016-8-10
+ */
+ public void start() {
+ // register restful to M-Bus when starting service
+ registerService();
+ }
+
+ /**
+ * register the service to M-Bus<br/>
+ *
+ * @author
+ * @since GSO 0.5, 2016-8-10
+ */
+ private void registerService() {
+ // get the jsonString form the service file
+ String root = SystemEnvVariablesFactory.getInstance().getAppRoot();
+// String serviceFilePath = root + File.separator + Constant.FILE_PATH_ETC + File.separator
+// + Constant.FILE_PATH_REGISTER + File.separator + Constant.FILE_PATH_JSON;
+// String jsonInfo = RegisterUtil.readFile(serviceFilePath);
+//
+// // check the jsonInfo
+// if(StringUtils.isEmpty(jsonInfo)) {
+// LOGGER.error("GSO ReadFile fail: jsonInfo is null. the serviceFilePath=" + serviceFilePath);
+// return;
+// }
+
+ // register service by the jsonInfo
+// RegisterUtil.registerService(jsonInfo);
+ }
+
+ /**
+ * stop operation by spring <br/>
+ *
+ * @param context
+ * service context
+ * @author
+ * @since GSO 0.5, 2016-8-10
+ */
+ public void stop() {
+ // no operation
+ }
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/constant/Constant.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/constant/Constant.java new file mode 100644 index 00000000..c5283fac --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/constant/Constant.java @@ -0,0 +1,139 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.constant;
+
+/**
+ * Constant definition.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/8/22
+ */
+public class Constant {
+
+ /**
+ * Service instance name.
+ */
+ public static final String SERVICE_NAME = "name";
+
+ /**
+ * Service instance description.
+ */
+ public static final String SERVICE_DESCRIPTION = "description";
+
+ /**
+ * Service instance ID.
+ */
+ public static final String SERVICE_INSTANCE_ID = "serviceId";
+
+ /**
+ * Service package ID.
+ */
+ public static final String SERVICE_DEF_ID = "serviceDefId";
+
+ /**
+ * Service template ID.
+ */
+ public static final String SERVICE_TEMPLATE_ID = "templateId";
+
+ /**
+ * Service template name.
+ */
+ public static final String SERVICE_TEMPLATE_NAME = "templateName";
+
+ /**
+ * service parameters
+ */
+ public static final String SERVICE_PARAMETERS = "parameters";
+
+ /**
+ * Create workflow name.
+ */
+ public static final String WORK_FLOW_PLAN_CREATE = "create";
+
+ /**
+ * Delete workflow name.
+ */
+ public static final String WORK_FLOW_PLAN_DELETE = "delete";
+
+ /**
+ * filed in wso2 body.
+ */
+ public static final String WSO_PROCESSID = "processId";
+
+ /**
+ * filed in wso2 body.
+ */
+ public static final String WSO_PARAMS = "params";
+
+ /**
+ * Response result;
+ */
+ public static final String RESPONSE_RESULT = "result";
+
+ /**
+ * Response status.
+ */
+ public static final String RESPONSE_STATUS = "status";
+
+ /**
+ * Response status description.
+ */
+ public static final String RESPONSE_STATUS_DESCRIPTION = "statusDescription";
+
+ /**
+ * Error code of response.
+ */
+ public static final String RESPONSE_ERRORCODE = "errorCode";
+
+ /**
+ * Operations success.
+ */
+ public static final String RESPONSE_STATUS_SUCCESS = "success";
+
+ /**
+ * Operation failed.
+ */
+ public static final String RESPONSE_STATUS_FAIL = "fail";
+
+ /**
+ * Identify of csar.
+ */
+ public static final String CSAR_ID = "csarId";
+
+ /**
+ * service identify.
+ */
+ public static final String SERVICE_INDENTIFY = "service";
+
+ /**
+ * Predefine parameter for service design
+ */
+ public static final String PREDEFINE_GSO_ID = "predefine_gsoId";
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since GSO 0.5
+ */
+ private Constant() {
+
+ }
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/exception/ErrorCode.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/exception/ErrorCode.java new file mode 100644 index 00000000..759344e1 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/exception/ErrorCode.java @@ -0,0 +1,60 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.exception;
+
+/**
+ * Constant Class.<br/>
+ * <p>
+ * Define constant for recording error.
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/8/4
+ */
+public class ErrorCode {
+
+ /**
+ * Fail to operate database.
+ */
+ public static final String SVCMGR_OPER_MYSQL_DB_ERROR = "servicemgr.mysql.oper_mysql_db_error";
+
+ /**
+ * Parameter is wrong.
+ */
+ public static final String SVCMGR_SERVICEMGR_BAD_PARAM = "servicemgr.bad_param";
+
+ /**
+ * Operation is failure.
+ */
+ public static final String SVCMGR_SERVICEMGR_FAIL_OPERATION = "servicemgr.fail.operation";
+
+ /**
+ * Package is being deleted.
+ */
+ public static final String SVCMGR_PACKAGE_BEING_DELETED = "servicemgr.package.beingDelete";
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since GSO 0.5
+ */
+ private ErrorCode() {
+
+ }
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/exception/HttpCode.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/exception/HttpCode.java new file mode 100644 index 00000000..05f5220f --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/exception/HttpCode.java @@ -0,0 +1,86 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.exception;
+
+/**
+ * Constant Class.<br/>
+ * <p>
+ * Define constant for http operation.
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/8/4
+ */
+public class HttpCode {
+
+ /**
+ * Fail to request.
+ */
+ public static final int BAD_REQUEST = 400;
+
+ /**
+ * Inner error
+ */
+ public static final int INTERNAL_SERVER_ERROR = 500;
+
+ /**
+ * Not accept request.
+ */
+ public static final int NOT_ACCEPTABLE = 406;
+
+ /**
+ * Not found service.
+ */
+ public static final int NOT_FOUND = 404;
+
+ /**
+ * Accept request.
+ */
+ public static final int RESPOND_ACCEPTED = 202;
+
+ /**
+ * Http response is ok.
+ */
+ public static final int RESPOND_OK = 200;
+
+ /**
+ * Conflict
+ */
+ public static final int RESPOND_CONFLICT = 409;
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since GSO 0.5
+ */
+ private HttpCode() {
+
+ }
+
+ /**
+ * Whether request is successful.<br/>
+ *
+ * @param httpCode response code
+ * @return true or false
+ * @since GSO 0.5
+ */
+ public static boolean isSucess(int httpCode) {
+ return httpCode / 100 == 2;
+ }
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/roa/impl/ServiceGatewayRoaModuleImpl.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/roa/impl/ServiceGatewayRoaModuleImpl.java new file mode 100644 index 00000000..9b7796f9 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/roa/impl/ServiceGatewayRoaModuleImpl.java @@ -0,0 +1,93 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.roa.impl;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.core.Response;
+
+import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.openo.gso.gui.servicegateway.roa.inf.IServiceGatewayRoaModule;
+import org.openo.gso.gui.servicegateway.service.inf.IServiceGateway;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Implement class for restful interface.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/8/4
+ */
+public class ServiceGatewayRoaModuleImpl implements IServiceGatewayRoaModule {
+
+ /**
+ * Log server.
+ */
+ private static final Logger LOGGER = LoggerFactory.getLogger(ServiceGatewayRoaModuleImpl.class);
+
+ /**
+ * Service manager.
+ */
+ private IServiceGateway serviceManager;
+
+ /**
+ * @return Returns the serviceManager.
+ */
+ public IServiceGateway getServiceGateway() {
+ return serviceManager;
+ }
+
+ /**
+ * @param serviceManager The serviceManager to set.
+ */
+ public void setServicemanager(IServiceGateway serviceManager) {
+ this.serviceManager = serviceManager;
+ }
+
+ /**
+ * Create service instance.<br/>
+ *
+ * @param servletReq http request
+ * @return response
+ * @throws ServiceException when operate database or parameter is wrong.
+ * @since GSO 0.5
+ */
+ @Override
+ public Response createService(HttpServletRequest servletReq) {
+ Map<String, Object> result = null;
+
+ return Response.accepted().entity(result).build();
+ }
+
+ /**
+ * Delete service instance.<br/>
+ *
+ * @param serviceId service instance id
+ * @param servletReq http request
+ * @return response
+ * @throws ServiceException when operate database or parameter is wrong.
+ * @since GSO 0.5
+ */
+ @Override
+ public Response deleteService(String serviceId, HttpServletRequest servletReq) {
+
+ return null;
+ }
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/roa/inf/IServiceGatewayRoaModule.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/roa/inf/IServiceGatewayRoaModule.java new file mode 100644 index 00000000..929af508 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/roa/inf/IServiceGatewayRoaModule.java @@ -0,0 +1,73 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.roa.inf;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+
+import org.openo.baseservice.remoteservice.exception.ServiceException;
+
+/**
+ * API for restful interface.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/8/4
+ */
+@Path("/servicegateway/v1/services")
+@Consumes({"application/json"})
+@Produces({"application/json"})
+public interface IServiceGatewayRoaModule {
+
+ /**
+ * Create service instance.<br/>
+ *
+ * @param servletReq http request
+ * @return response
+ * @throws ServiceException when operate database or parameter is wrong.
+ * @since GSO 0.5
+ */
+ @POST
+ @Produces({"application/json"})
+ @Consumes({"application/json"})
+ Response createService(@Context HttpServletRequest servletReq) throws ServiceException;
+
+ /**
+ * Delete service instance.<br/>
+ *
+ * @param serviceId service instance id
+ * @param servletReq http request
+ * @return response
+ * @throws ServiceException when operate database or parameter is wrong.
+ * @since GSO 0.5
+ */
+ @DELETE
+ @Produces({"application/json"})
+ @Consumes({"application/json"})
+ @Path("/{serviceId}")
+ Response deleteService(@PathParam("serviceId") String serviceId, @Context HttpServletRequest servletReq)
+ throws ServiceException;
+
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/service/impl/ServiceGatewayImpl.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/service/impl/ServiceGatewayImpl.java new file mode 100644 index 00000000..3f2a48a7 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/service/impl/ServiceGatewayImpl.java @@ -0,0 +1,71 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.service.impl;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.openo.gso.gui.servicegateway.service.inf.IServiceGateway;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * ServiceGateway service class.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/8/4
+ */
+public class ServiceGatewayImpl implements IServiceGateway {
+
+ /**
+ * Log service.
+ */
+ private static final Logger LOGGER = LoggerFactory.getLogger(ServiceGatewayImpl.class);
+
+
+ /**
+ * Create service instance.<br/>
+ *
+ * @param reqContent content of request
+ * @param httpRequest http request
+ * @throws ServiceException when operate DB or parameter is wrong.
+ * @since GSO 0.5
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public Object createService(String reqContent, HttpServletRequest httpRequest) throws ServiceException {
+
+
+ return null;
+ }
+
+ /**
+ * Delete service instances.<br/>
+ *
+ * @param serviceId service instance ID
+ * @param httpRequest http request
+ * @throws ServiceException operate DB or parameter is wrong.
+ * @since GSO 0.5
+ */
+ @Override
+ public void deleteService(String serviceId, HttpServletRequest httpRequest) throws ServiceException {
+
+ }
+
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/service/inf/IServiceGateway.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/service/inf/IServiceGateway.java new file mode 100644 index 00000000..77b27bd7 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/service/inf/IServiceGateway.java @@ -0,0 +1,55 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.service.inf;
+
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.openo.baseservice.remoteservice.exception.ServiceException;
+
+/**
+ * Interface to operate service.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/8/4
+ */
+public interface IServiceGateway {
+
+ /**
+ * Create service instance.<br/>
+ *
+ * @param reqContent content of request
+ * @param httpRequest http request
+ * @return service instance
+ * @throws ServiceException when operate DB or parameter is wrong.
+ * @since GSO 0.5
+ */
+ Object createService(String reqContent, HttpServletRequest httpRequest) throws ServiceException;
+
+ /**
+ * Delete service instances.<br/>
+ *
+ * @param serviceId service instance ID
+ * @param httpRequest http request
+ * @throws ServiceException operate DB or parameter is wrong.
+ * @since GSO 0.5
+ */
+ void deleteService(String serviceId, HttpServletRequest httpRequest) throws ServiceException;
+
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/http/HttpUtil.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/http/HttpUtil.java new file mode 100644 index 00000000..81546493 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/http/HttpUtil.java @@ -0,0 +1,138 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.util.http;
+
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.openo.baseservice.roa.util.restclient.RestfulFactory;
+import org.openo.baseservice.roa.util.restclient.RestfulParametes;
+import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.openo.gso.gui.servicegateway.util.json.JsonUtil;
+
+/**
+ * Method class that provides interface to do http request.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/9/1
+ */
+public class HttpUtil {
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since GSO 0.5
+ */
+ private HttpUtil() {
+
+ }
+
+ /**
+ * Get operation.<br/>
+ *
+ * @param url request location
+ * @param httpHeaders request headers
+ * @param httpRequest http request
+ * @return response
+ * @throws ServiceException when request is failure.
+ * @since GSO 0.5
+ */
+ public static RestfulResponse get(final String url, final Map<String, String> httpHeaders,
+ HttpServletRequest httpRequest) throws ServiceException {
+ final RestfulParametes restfulParametes = getRestfulParametes(httpRequest);
+ for(Map.Entry<String, String> entry : httpHeaders.entrySet()) {
+ restfulParametes.putHttpContextHeader(entry.getKey(), entry.getValue());
+ }
+
+ return RestfulFactory.getRestInstance(RestfulFactory.PROTO_HTTP).get(url, restfulParametes);
+ }
+
+ /**
+ * Post operation.<br/>
+ *
+ * @param url request location
+ * @param sendObj request body
+ * @param httpRequest http request
+ * @return response
+ * @throws ServiceException when request is failure.
+ * @since GSO 0.5
+ */
+ public static RestfulResponse post(final String url, Object sendObj, HttpServletRequest httpRequest)
+ throws ServiceException {
+
+ final RestfulParametes restfulParametes = getRestfulParametes(httpRequest);
+ if(sendObj != null) {
+ String strJsonReq = JsonUtil.marshal(sendObj);
+ restfulParametes.setRawData(strJsonReq);
+ }
+
+ return RestfulFactory.getRestInstance(RestfulFactory.PROTO_HTTP).post(url, restfulParametes);
+ }
+
+ /**
+ * Delete operation.<br/>
+ *
+ * @param url request location
+ * @param httpRequest http request
+ * @return response
+ * @throws ServiceException when request is failure.
+ * @since GSO 0.5
+ */
+ public static RestfulResponse delete(final String url, HttpServletRequest httpRequest) throws ServiceException {
+ final RestfulParametes restfulParametes = getRestfulParametes(httpRequest);
+ return RestfulFactory.getRestInstance(RestfulFactory.PROTO_HTTP).delete(url, restfulParametes);
+ }
+
+ /**
+ * Put operation.<br/>
+ *
+ * @param url request location
+ * @param httpHeaders request headers
+ * @param httpRequest http request
+ * @return response
+ * @throws ServiceException when request is failure.
+ * @since GSO 0.5
+ */
+ public static RestfulResponse put(final String url, final Map<String, String> httpHeaders,
+ HttpServletRequest httpRequest) throws ServiceException {
+ final RestfulParametes restfulParametes = getRestfulParametes(httpRequest);
+ for(Map.Entry<String, String> entry : httpHeaders.entrySet()) {
+ restfulParametes.putHttpContextHeader(entry.getKey(), entry.getValue());
+ }
+
+ return RestfulFactory.getRestInstance(RestfulFactory.PROTO_HTTP).put(url, restfulParametes);
+ }
+
+ /**
+ * Fill in request parameters.<br/>
+ *
+ * @param httpRequest http request
+ * @return rest parameters
+ * @since GSO 0.5
+ */
+ public static RestfulParametes getRestfulParametes(HttpServletRequest httpRequest) {
+ final RestfulParametes restfulParametes = new RestfulParametes();
+ restfulParametes.putHttpContextHeader("Content-Type", "application/json;charset=UTF-8");
+ return restfulParametes;
+ }
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/http/ResponseUtils.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/http/ResponseUtils.java new file mode 100644 index 00000000..d0df0781 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/http/ResponseUtils.java @@ -0,0 +1,158 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.util.http;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.codehaus.jackson.type.TypeReference;
+import org.openo.baseservice.remoteservice.exception.ExceptionArgs;
+import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.openo.gso.gui.servicegateway.constant.Constant;
+import org.openo.gso.gui.servicegateway.exception.ErrorCode;
+import org.openo.gso.gui.servicegateway.exception.HttpCode;
+import org.openo.gso.gui.servicegateway.util.json.JsonUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Interface to deal response result.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/9/1
+ */
+public class ResponseUtils {
+
+ /**
+ * Log server
+ */
+ private static final Logger LOGGER = LoggerFactory.getLogger(ResponseUtils.class);
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since GSO 0.5
+ */
+ private ResponseUtils() {
+ }
+
+ /**
+ * Check whether there is exception.<br/>
+ * <p>
+ * If fail, throw the exception.
+ * </p>
+ *
+ * @param response rest response
+ * @param function function name
+ * @throws ServiceException when the result of rest request is failure.
+ * @since GSO 0.5
+ */
+ public static void checkResonseAndThrowException(RestfulResponse response, String function)
+ throws ServiceException {
+ if(!HttpCode.isSucess(response.getStatus())) {
+ ServiceException roaExceptionInfo = null;
+ try {
+ roaExceptionInfo = JsonUtil.unMarshal(response.getResponseContent(), ServiceException.class);
+ } catch(ServiceException e) {
+ LOGGER.error("transfer the response json string has some error: {}", e);
+
+ ExceptionArgs args = new ExceptionArgs();
+ args.setDescArgs(new String[] {"Fail to " + function});
+
+ throw new ServiceException(ServiceException.DEFAULT_ID, response.getStatus(), args);
+ }
+
+ throw roaExceptionInfo;
+ }
+ }
+
+ /**
+ * Parse data to assigned type model.<br/>
+ *
+ * @param request restful request
+ * @param key key
+ * @param type type
+ * @return model data
+ * @throws ServiceException when transfer failed
+ * @since SDNO 0.5
+ */
+ @SuppressWarnings("unchecked")
+ public static <T> List<T> getDataModelFromRsp(String request, String key, Class<T> type) throws ServiceException {
+ //ValidateUtil.assertStringNotNull(request);
+ Map<String, Object> requestMap = JsonUtil.unMarshal(request, Map.class);
+ Object data = requestMap.get(key);
+ List<T> dataModelList = new LinkedList<T>();
+ if(data instanceof List) {
+ for(Object model : (List<T>)data) {
+ if(!(model instanceof Map)) {
+ LOGGER.error("The format of response content is wrong! Not Map.");
+ throw new ServiceException(ErrorCode.SVCMGR_SERVICEMGR_BAD_PARAM,
+ "The format of response content is wrong.");
+ }
+
+ dataModelList.add(JsonUtil.unMarshal(JsonUtil.marshal(model), type));
+ }
+ }
+
+ return dataModelList;
+ }
+
+ /**
+ * Parse data to assigned type model.<br/>
+ *
+ * @param request restful request
+ * @param type type
+ * @return model data
+ * @throws ServiceException when transfer failed
+ * @since SDNO 0.5
+ */
+ public static <T> T getDataModelFromRspList(String request, TypeReference<T> type) throws ServiceException {
+ //ValidateUtil.assertStringNotNull(request);
+ return JsonUtil.unMarshal(request, type);
+ }
+
+ /**
+ * Set operation result.<br/>
+ *
+ * @param status status fail or success
+ * @param exception operation exception information
+ * @param errorCode error code
+ * @return result in form of map
+ * @since GSO 0.5
+ */
+ public static Map<String, Object> setOperateStatus(String status, ServiceException exception, String errorCode) {
+ Map<String, Object> result = new HashMap<String, Object>();
+ result.put(Constant.RESPONSE_STATUS, status);
+ if(null == exception) {
+ result.put(Constant.RESPONSE_STATUS_DESCRIPTION, status);
+ } else {
+ if((null != exception.getExceptionArgs()) && (null != exception.getExceptionArgs().getDescArgs())) {
+ result.put(Constant.RESPONSE_STATUS_DESCRIPTION, exception.getExceptionArgs().getDescArgs().toString());
+ }
+ }
+ result.put(Constant.RESPONSE_ERRORCODE, errorCode);
+
+ return result;
+ }
+}
diff --git a/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/json/JsonUtil.java b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/json/JsonUtil.java new file mode 100644 index 00000000..afb3c238 --- /dev/null +++ b/servicegateway/service/src/main/java/org/openo/gso/gui/servicegateway/util/json/JsonUtil.java @@ -0,0 +1,133 @@ +/*
+ * Copyright (c) 2016, Huawei Technologies Co., Ltd.
+ *
+ * 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.
+ */
+
+package org.openo.gso.gui.servicegateway.util.json;
+
+import java.io.IOException;
+
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
+import org.codehaus.jackson.type.TypeReference;
+import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.openo.gso.gui.servicegateway.exception.ErrorCode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import net.sf.json.JSON;
+
+/**
+ * Interface for json analyzing.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version GSO 0.5 2016/9/1
+ */
+public class JsonUtil {
+
+ /**
+ * Log service
+ */
+ private static final Logger LOGGER = LoggerFactory.getLogger(JsonUtil.class);
+
+ /**
+ * Mapper.
+ */
+ private static final ObjectMapper MAPPER = new ObjectMapper();
+
+ static {
+ MAPPER.setDeserializationConfig(MAPPER.getDeserializationConfig()
+ .without(org.codehaus.jackson.map.DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES));
+ MAPPER.setSerializationInclusion(Inclusion.NON_NULL);
+ }
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since GSO 0.5
+ */
+ private JsonUtil() {
+
+ }
+
+ /**
+ * Parse the string in form of json.<br/>
+ *
+ * @param jsonstr json string.
+ * @param type that convert json string to
+ * @return
+ * @throws ServiceException
+ * @since GSO 0.5
+ */
+ public static <T> T unMarshal(String jsonstr, Class<T> type) throws ServiceException {
+ try {
+ return MAPPER.readValue(jsonstr, type);
+ } catch(IOException e) {
+ LOGGER.error("jsonstr unMarshal failed!", e);
+ throw new ServiceException(ErrorCode.SVCMGR_SERVICEMGR_BAD_PARAM, "jsonstr unMarshal failed!");
+ }
+ }
+
+ /**
+ * Parse the string in form of json.<br/>
+ *
+ * @param jsonstr json string.
+ * @param type that convert json string to
+ * @return
+ * @throws ServiceException
+ * @since GSO 0.5
+ */
+ public static <T> T unMarshal(String jsonstr, TypeReference<T> type) throws ServiceException {
+ try {
+ return MAPPER.readValue(jsonstr, type);
+ } catch(IOException e) {
+ LOGGER.error("jsonstr unMarshal failed!", e);
+ throw new ServiceException(ErrorCode.SVCMGR_SERVICEMGR_BAD_PARAM, "jsonstr unMarshal failed!");
+ }
+ }
+
+ /**
+ * Convert object to json string.<br/>
+ *
+ * @param srcObj data object
+ * @return json string
+ * @throws ServiceException when fail to convert.
+ * @since GSO 0.5
+ */
+ public static String marshal(Object srcObj) throws ServiceException {
+ if(srcObj instanceof JSON) {
+ return srcObj.toString();
+ }
+ try {
+ return MAPPER.writeValueAsString(srcObj);
+ } catch(IOException e) {
+ LOGGER.error("srcObj marshal failed!", e);
+ throw new ServiceException(ErrorCode.SVCMGR_SERVICEMGR_BAD_PARAM, "srcObj marshal failed!");
+ }
+ }
+
+ /**
+ * Get mapper.<br/>
+ *
+ * @return mapper
+ * @since GSO 0.5
+ */
+ public static ObjectMapper getMapper() {
+ return MAPPER;
+ }
+}
|