Resolve the compile problem 57/11957/1
authorluxin <luxin7@huawei.com>
Tue, 12 Sep 2017 13:29:50 +0000 (21:29 +0800)
committerluxin <luxin7@huawei.com>
Tue, 12 Sep 2017 13:29:50 +0000 (21:29 +0800)
Resolve the compile problem for juju

Change-Id: I5680b23a159b5d8dc943e1d733747d0f780c143b
Issue-Id:VFC-327
Signed-off-by: luxin <luxin7@huawei.com>
60 files changed:
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/pom.xml
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/integration-test/java/org/openo/nfvo/jujuvnfmadapter/service/rest/ITConfigRoaTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/integration-test/java/org/openo/nfvo/jujuvnfmadapter/service/rest/ITJujuClientRoaTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/integration-test/java/org/openo/nfvo/jujuvnfmadapter/service/rest/ITVnfRoaTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/AsyncCallback.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/VnfmUtil.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/DefaultAsyncCallback.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ExceptionArgs.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/HttpBaseRest.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/HttpRest.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ReaderHelper.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestHttpContentExchange.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/Restful.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulAsyncCallback.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulClientConst.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulConfigure.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulFactory.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulOptions.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulParametes.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulResponse.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ServiceException.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariables.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariablesDefImpl.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariablesFactory.java [new file with mode: 0644]
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/HttpRestHelp.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/HttpRestfulHelp.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/JujuVnfmRestfulUtil.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/VNFRestfulUtil.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/VnfmRestfulUtil.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/adapter/impl/AdapterResourceManager.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/adapter/impl/JujuAdapter2DriverManager.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/adapter/impl/JujuAdapter2MSBManager.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/adapter/impl/JujuClientManager.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/api/internalsvc/impl/JujuAdapter2DriverMgrService.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/api/internalsvc/impl/JujuAdapterMgrService.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/process/VnfMgr.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/ConfigRoa.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/JujuClientRoa.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/VnfRoa.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/exceptionmapper/ServiceExceptionMapper.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/AsyncCallbackTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/VnfmUtilTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/YamlUtilTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/HttpRestHelpTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/HttpRestfulHelpTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/JujuVnfmRestfulUtilTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/VNFRestfulUtilTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/servicetoken/VnfmRestfulUtilTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/adapter/impl/AdapterResourceManagerTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/adapter/impl/JujuAdapter2MSBManagerTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/process/VnfMgrTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/process/VnfResourceMgrTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/ConfigRoaTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/JujuClientRoaTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/VnfResourceRoaTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/VnfRoaTest.java
juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/test/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/service/rest/exceptionmapper/ServiceExceptionMapperTest.java
juju/juju-vnfmadapter/pom.xml
juju/pom.xml [new file with mode: 0644]
pom.xml

index 9a8933c..8016318 100644 (file)
     <artifactId>juju-vnfmadapter-service</artifactId>
     <name>nfvo/drivers/vnfm/gvnfm/juju/juju-vnfmadapter/Juju-vnfmadapterService/service</name>
     <packaging>war</packaging>
-    
-    <repositories>
-        <repository>
-            <id>open-o</id>
-            <name>OPEN-O repository</name>
-            <url>https://nexus.open-o.org/content/repositories/public/</url>
-        </repository>
-    </repositories>
 
     <dependencies>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.4</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>com.springsource.org.apache.commons.lang</artifactId>
+            <version>2.5.0</version>
+        </dependency>
+        <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-lang3</artifactId>
+                <version>3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>com.springsource.org.apache.commons.logging</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>com.springsource.org.apache.commons.codec</artifactId>
+            <version>1.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>net.sf.json-lib</groupId>
+            <artifactId>json-lib</artifactId>
+            <version>2.4</version>
+            <classifier>jdk15</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>1.6.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty.orbit</groupId>
+            <artifactId>javax.servlet</artifactId>
+            <version>3.0.0.v201112011016</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.jetty.aggregate</groupId>
+            <artifactId>jetty-all</artifactId>
+            <version>8.1.16.v20140903</version>
+        </dependency>
         <dependency>
             <groupId>org.apache.cxf</groupId>
             <artifactId>cxf-rt-frontend-jaxrs</artifactId>
             <version>2.1_3</version>
             <scope>test</scope>
         </dependency>
-
-        <dependency>
-            <groupId>org.openo.common-services.common-utilities</groupId>
-            <artifactId>commonlib-cbb</artifactId>
-            <version>2.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.openo.common-services.common-utilities</groupId>
-            <artifactId>commonlib-restclient</artifactId>
-            <version>2.0.0</version>
-        </dependency>
-
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
index 1495ad9..35308fa 100644 (file)
@@ -20,7 +20,7 @@ import java.io.File;
 
 import org.junit.Assert;
 import org.junit.Test;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.openo.sdno.testframework.checker.IChecker;
 import org.openo.sdno.testframework.http.model.HttpResponse;
 import org.openo.sdno.testframework.testmanager.TestManager;
index 363e85e..3aae275 100644 (file)
@@ -20,7 +20,7 @@ import java.io.File;
 
 import org.junit.Assert;
 import org.junit.Test;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.openo.nfvo.jujuvnfmadapter.common.EntityUtils;
 import org.openo.sdno.testframework.checker.IChecker;
 import org.openo.sdno.testframework.http.model.HttpResponse;
index bb5ff7d..456b607 100644 (file)
@@ -20,7 +20,7 @@ import java.io.File;
 
 import org.junit.Assert;
 import org.junit.Test;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.openo.sdno.testframework.checker.IChecker;
 import org.openo.sdno.testframework.http.model.HttpResponse;
 import org.openo.sdno.testframework.testmanager.TestManager;
index 66db11d..6fa4dbf 100644 (file)
@@ -16,8 +16,8 @@
 
 package org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common;
 
-import org.openo.baseservice.roa.util.restclient.RestfulAsyncCallback;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulAsyncCallback;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index b98571f..2914c8c 100644 (file)
@@ -20,7 +20,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.JujuVnfm
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.VnfmRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.UrlConstant;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/DefaultAsyncCallback.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/DefaultAsyncCallback.java
new file mode 100644 (file)
index 0000000..36b53a7
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+/**
+ * Restful Asynchronous call back implentation.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class DefaultAsyncCallback implements RestfulAsyncCallback {
+
+    @Override
+    public void callback(final RestfulResponse response) {
+        // default implementation.
+    }
+
+    @Override
+    public void handleExcepion(final Throwable e) {
+        // default implementation
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ExceptionArgs.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ExceptionArgs.java
new file mode 100644 (file)
index 0000000..403f89b
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+/**
+ * ROA exception handling parameters.
+ * <br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class ExceptionArgs {
+
+    /**
+     * Exception descriptions.
+     */
+    private String[] descArgs = null;
+
+    /**
+     * Exception reasons.
+     */
+    private String[] reasonArgs = null;
+
+    /**
+     * Exception detals.
+     */
+    private String[] detailArgs = null;
+
+    /**
+     * Exception advices.
+     */
+    private String[] adviceArgs = null;
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     */
+    public ExceptionArgs() {
+        // default constructor.
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param descArgs: descriptions.
+     * @param reasonArgs: reasons.
+     * @param detailArgs: details.
+     * @param adviceArgs: advices.
+     */
+    public ExceptionArgs(final String[] descArgs, final String[] reasonArgs, final String[] detailArgs,
+            final String[] adviceArgs) {
+        this.descArgs = descArgs;
+        this.reasonArgs = reasonArgs;
+        this.detailArgs = detailArgs;
+        this.adviceArgs = adviceArgs;
+    }
+
+    public String[] getDescArgs() {
+        return descArgs;
+    }
+
+    public void setDescArgs(final String[] descArgs) {
+        this.descArgs = descArgs;
+    }
+
+    public String[] getReasonArgs() {
+        return reasonArgs;
+    }
+
+    public void setReasonArgs(final String[] reasonArgs) {
+        this.reasonArgs = reasonArgs;
+    }
+
+    public String[] getDetailArgs() {
+        return detailArgs;
+    }
+
+    public void setDetailArgs(final String[] detailArgs) {
+        this.detailArgs = detailArgs;
+    }
+
+    public String[] getAdviceArgs() {
+        return adviceArgs;
+    }
+
+    public void setAdviceArgs(final String[] adviceArgs) {
+        this.adviceArgs = adviceArgs;
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/HttpBaseRest.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/HttpBaseRest.java
new file mode 100644 (file)
index 0000000..c0b616b
--- /dev/null
@@ -0,0 +1,272 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.eclipse.jetty.client.Address;
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.HttpExchange;
+import org.eclipse.jetty.http.HttpMethods;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version Aug 9, 2016
+ */
+public abstract class HttpBaseRest implements Restful {
+
+    private static final Logger LOG = LoggerFactory.getLogger(HttpRest.class);
+
+    final AtomicInteger requestId = new AtomicInteger(0);
+
+    protected HttpClient client = null;
+
+    private static final String LOCAL_HOST = "127.0.0.1";
+
+    static final String HTTP_PATCH = "PATCH";
+
+    String defaultIP = LOCAL_HOST;
+
+    int defaultPort = -10000;
+
+    int defaultTimeout = 30000;
+
+    final String procenameRouteID = "RouteID-" + System.currentTimeMillis() + "-";
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     */
+    public HttpBaseRest() {
+        super();
+    }
+
+    protected void createHttpClient() {
+        client = new HttpClient();
+    }
+
+    protected RestHttpContentExchange createRestHttpContentExchange(final RestfulAsyncCallback callback) {
+        final RestHttpContentExchange exchange = new RestHttpContentExchange(true, callback);
+        exchange.setScheme("http");
+        return exchange;
+    }
+
+    private String encodeParams(final RestfulParametes restParametes) throws ServiceException {
+        final Map<String, String> parm = restParametes.getParamMap();
+        String value = null;
+        boolean bHasParma = false;
+        final StringBuilder builder = new StringBuilder();
+        try {
+            for(final String key : parm.keySet()) {
+                value = parm.get(key);
+                if(value == null) {
+                    value = "";
+                }
+                String str;
+                if(bHasParma) {
+                    str = String.format("&%s=%s", URLEncoder.encode(key, RestfulClientConst.ENCODING),
+                            URLEncoder.encode(value, RestfulClientConst.ENCODING));
+                } else {
+                    bHasParma = true;
+                    str = String.format("%s=%s", URLEncoder.encode(key, RestfulClientConst.ENCODING),
+                            URLEncoder.encode(value, RestfulClientConst.ENCODING));
+                }
+                builder.append(str);
+            }
+        } catch(final UnsupportedEncodingException ex) {
+            LOG.error("unsupported encoding: ", ex);
+            throw new ServiceException("Broken VM does not support UTF-8");
+        }
+        return builder.toString();
+    }
+
+    private void processHeader(final RestHttpContentExchange contentExchange, final Map<String, String> headerMap) {
+        for(final String key : headerMap.keySet()) {
+            final String value = headerMap.get(key);
+            contentExchange.addRequestHeader(key, value);
+        }
+
+    }
+
+    private void setContentExchangeParams(final RestHttpContentExchange contentExchange) {
+        final String contentType = contentExchange.getRequestFields().getStringField("Content-Type");
+        if(null == contentType || contentType.isEmpty()) {
+            // application/json;charset=utf-8
+            contentExchange.setRequestContentType(RestfulClientConst.APPLICATION_FORM_URLENCODED);
+        }
+        final String encoding = contentExchange.getRequestFields().getStringField("Accept-Encoding");
+        if(null == encoding || encoding.isEmpty()) {
+            // compress,gzip
+            contentExchange.setRequestHeader("Accept-Encoding", "*/*");
+        }
+        contentExchange.setVersion(11);
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param method
+     * @param servicePath
+     * @param restParametes
+     * @param options
+     * @param callback
+     * @return
+     * @throws ServiceException
+     * @since
+     */
+    protected RestfulResponse sendHttpRequest(final String method, final String servicePath,
+            final RestfulParametes restParametes, final RestfulOptions options, final RestfulAsyncCallback callback)
+            throws ServiceException {
+        final RestHttpContentExchange contentExchange = createRestHttpContentExchange(callback);
+        if(null == restParametes) {
+            return new RestfulResponse();
+        }
+        final String requestTrace = this.getReuqestIdString();
+        restParametes.putHttpContextHeader(RestfulClientConst.REQUEST_ID, requestTrace);
+
+        RestfulResponse rsp = null;
+        try {
+            contentExchange.setMethod(method);
+            final String str = encodeParams(restParametes);
+            final StringBuilder builder = new StringBuilder();
+            builder.append(servicePath);
+            if(str.length() > 0 && (method.equals(HttpMethods.GET) || method.equals(HttpMethods.DELETE)
+                    || method.equals(HttpMethods.HEAD))) {
+                builder.append('?');
+                builder.append(str);
+            }
+            setDefaultUrl(contentExchange, options, builder);
+            processHeader(contentExchange, restParametes.getHeaderMap());
+            setContentExchangeParams(contentExchange);
+
+            setPostPutParam(method, restParametes, contentExchange, str);
+            setTimeout(options, contentExchange);
+
+            client.send(contentExchange);
+            rsp = callbackExecute(callback, contentExchange);
+        } catch(final Exception e) {
+            LOG.error("request reply message have exception:status is "
+                    + RestHttpContentExchange.toState(contentExchange.getStatus()));
+            throw new ServiceException(e);
+        }
+        return rsp;
+    }
+
+    private void setDefaultUrl(final RestHttpContentExchange contentExchange, final RestfulOptions options,
+            final StringBuilder url) {
+        // server
+        if(url.toString().startsWith("http")) {
+            contentExchange.setURL(url.toString());
+        } else {
+            String host = defaultIP;
+            int iPort = defaultPort;
+            if(options != null) {
+                host = options.getHost();
+                if(host.isEmpty()) {
+                    host = defaultIP;
+                }
+                iPort = options.getPort();
+                if(iPort == 0) {
+                    iPort = defaultPort;
+                }
+            }
+            // Integer.getInteger(".http.client.maxThread",30)
+            contentExchange.setAddress(new Address(host, iPort));
+            contentExchange.setRequestURI(url.toString());
+        }
+    }
+
+    private String getReuqestIdString() {
+        if(this.requestId.get() == 0x7FFFFFFF) {
+            this.requestId.set(1);
+        }
+        final int reqId = this.requestId.getAndIncrement();
+        final StringBuilder builder = new StringBuilder(this.procenameRouteID);
+        // time
+        final SimpleDateFormat dateFormate = new SimpleDateFormat("yyMMdd");
+        final SimpleDateFormat timeFormate = new SimpleDateFormat("HHmmss");
+        final Date date = Calendar.getInstance().getTime();
+        builder.append(dateFormate.format(date) + timeFormate.format(date));
+        builder.append('-');
+        builder.append(reqId);
+        return builder.toString();
+    }
+
+    private void setPostPutParam(final String method, final RestfulParametes restParametes,
+            final RestHttpContentExchange contentExchange, final String str) throws UnsupportedEncodingException {
+        if(HttpMethods.POST.equals(method) || HttpMethods.PUT.equals(method) || HTTP_PATCH.equals(method)) {
+            ByteArrayInputStream buff;
+            final String tmpRaw = restParametes.getRawData();
+            if(tmpRaw == null) {
+                buff = new ByteArrayInputStream(str.getBytes(RestfulClientConst.ENCODING));
+            } else {
+                buff = new ByteArrayInputStream(tmpRaw.getBytes(RestfulClientConst.ENCODING));
+            }
+            final int len = buff.available();
+            contentExchange.setRequestContentSource(buff);
+            contentExchange.setRequestHeader("content-length", String.valueOf(len));
+        }
+    }
+
+    private void setTimeout(final RestfulOptions options, final RestHttpContentExchange contentExchange) {
+        if(options != null) {
+            final long timeout = options.getRestTimeout();
+            if(timeout != 0) {
+                contentExchange.setTimeout(timeout);
+            } else {
+                contentExchange.setTimeout(defaultTimeout);
+            }
+        } else {
+            contentExchange.setTimeout(defaultTimeout);
+        }
+    }
+
+    private RestfulResponse callbackExecute(final RestfulAsyncCallback callback,
+            final RestHttpContentExchange contentExchange) throws InterruptedException, IOException, ServiceException {
+        if(callback == null) {
+            final int exchangeState = contentExchange.waitForDone();
+            if(exchangeState == HttpExchange.STATUS_COMPLETED) {
+                return contentExchange.getResponse();
+            } else if(exchangeState == HttpExchange.STATUS_EXCEPTED) {
+                throw new ServiceException(
+                        "request is exception: " + RestHttpContentExchange.toState(HttpExchange.STATUS_EXCEPTED));
+            } else if(exchangeState == HttpExchange.STATUS_EXPIRED) {
+                throw new ServiceException(
+                        "request is expierd: " + RestHttpContentExchange.toState(HttpExchange.STATUS_EXPIRED));
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/HttpRest.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/HttpRest.java
new file mode 100644 (file)
index 0000000..fe4c77f
--- /dev/null
@@ -0,0 +1,253 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.http.HttpMethods;
+import org.eclipse.jetty.util.thread.QueuedThreadPool;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version Aug 9, 2016
+ */
+public class HttpRest extends HttpBaseRest {
+
+    private static final Logger LOG = LoggerFactory.getLogger(HttpRest.class);
+
+    /**
+     * Initializing Rest options.<br/>
+     * 
+     * @param options: rest options.
+     * @throws ServiceException
+     * @since
+     */
+    public void initHttpRest(final RestfulOptions option) throws ServiceException {
+        if(option == null) {
+            client = null;
+            throw new ServiceException("option is null.");
+        }
+        createHttpClient();
+        try {
+            int iValue;
+            iValue = option.getIntOption(RestfulClientConst.MAX_CONN_PER_ADDR_KEY_NAME);
+            // max 200 concurrent,connections to every address
+            client.setMaxConnectionsPerAddress(iValue);
+
+            iValue = option.getIntOption(RestfulClientConst.THREAD_KEY_NAME);
+            // max threads
+            client.setThreadPool(new QueuedThreadPool(iValue));
+            iValue = option.getIntOption(RestfulClientConst.CONN_TIMEOUT_KEY_NAME);
+            client.setConnectTimeout(iValue);
+            iValue = option.getRestTimeout();
+            defaultTimeout = iValue;
+            client.setTimeout(iValue);
+
+            iValue = option.getIntOption(RestfulClientConst.IDLE_TIMEOUT_KEY_NAME);
+            client.setIdleTimeout(iValue);
+            iValue = option.getIntOption(RestfulClientConst.MAX_RESPONSE_HEADER_SIZE);
+            client.setResponseHeaderSize(iValue);
+            iValue = option.getIntOption(RestfulClientConst.MAX_REQUEST_HEADER_SIZE);
+            client.setRequestHeaderSize(iValue);
+            // HttpClient.CONNECTOR_SOCKET
+            client.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
+            client.start();
+            defaultIP = option.getStringOption(RestfulClientConst.HOST_KEY_NAME);
+            defaultPort = option.getIntOption(RestfulClientConst.PORT_KEY_NAME);
+        } catch(final Exception e) {
+            LOG.error("start httpclient error", e);
+            client = null;
+            throw new ServiceException("http client init failed.");
+        }
+    }
+
+    @Override
+    public RestfulResponse get(final String servicePath, final RestfulParametes restParametes) throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, null, null);
+    }
+
+    @Override
+    public RestfulResponse get(final String servicePath, final RestfulParametes restParametes,
+            final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, option, null);
+    }
+
+    @Override
+    public RestfulResponse head(final String servicePath, final RestfulParametes restParametes)
+            throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.HEAD, servicePath, restParametes, null, null);
+    }
+
+    @Override
+    public RestfulResponse head(final String servicePath, final RestfulParametes restParametes,
+            final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.HEAD, servicePath, restParametes, option, null);
+    }
+
+    @Override
+    public void asyncGet(final String servicePath, final RestfulParametes restParametes,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, null, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, null, callback);
+        }
+    }
+
+    @Override
+    public void asyncGet(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, option, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HttpMethods.GET, servicePath, restParametes, option, callback);
+        }
+    }
+
+    @Override
+    public RestfulResponse put(final String servicePath, final RestfulParametes restParametes) throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, null, null);
+    }
+
+    @Override
+    public RestfulResponse put(final String servicePath, final RestfulParametes restParametes,
+            final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, option, null);
+    }
+
+    @Override
+    public void asyncPut(final String servicePath, final RestfulParametes restParametes,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, null, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, null, callback);
+        }
+    }
+
+    @Override
+    public void asyncPut(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, option, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HttpMethods.PUT, servicePath, restParametes, option, callback);
+        }
+    }
+
+    @Override
+    public RestfulResponse post(final String servicePath, final RestfulParametes restParametes)
+            throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, null, null);
+    }
+
+    @Override
+    public RestfulResponse post(final String servicePath, final RestfulParametes restParametes,
+            final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, option, null);
+    }
+
+    @Override
+    public void asyncPost(final String servicePath, final RestfulParametes restParametes,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, null, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, null, callback);
+        }
+    }
+
+    @Override
+    public void asyncPost(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, option, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HttpMethods.POST, servicePath, restParametes, option, callback);
+        }
+    }
+
+    @Override
+    public RestfulResponse delete(final String servicePath, final RestfulParametes restParametes)
+            throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, null, null);
+    }
+
+    @Override
+    public RestfulResponse delete(final String servicePath, final RestfulParametes restParametes,
+            final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, option, null);
+    }
+
+    @Override
+    public void asyncDelete(final String servicePath, final RestfulParametes restParametes,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, null, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, null, callback);
+        }
+    }
+
+    @Override
+    public void asyncDelete(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, option, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HttpMethods.DELETE, servicePath, restParametes, option, callback);
+        }
+    }
+
+    @Override
+    public RestfulResponse patch(final String servicePath, final RestfulParametes restParametes)
+            throws ServiceException {
+        return this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, null, null);
+    }
+
+    @Override
+    public RestfulResponse patch(final String servicePath, final RestfulParametes restParametes,
+            final RestfulOptions option) throws ServiceException {
+        return this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, option, null);
+    }
+
+    @Override
+    public void asyncPatch(final String servicePath, final RestfulParametes restParametes,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, null, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, null, callback);
+        }
+    }
+
+    @Override
+    public void asyncPatch(final String servicePath, final RestfulParametes restParametes, final RestfulOptions option,
+            final RestfulAsyncCallback callback) throws ServiceException {
+        if(callback == null) {
+            this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, option, new DefaultAsyncCallback());
+        } else {
+            this.sendHttpRequest(HTTP_PATCH, servicePath, restParametes, option, callback);
+        }
+    }
+
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ReaderHelper.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ReaderHelper.java
new file mode 100644 (file)
index 0000000..7d1ad32
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.io.Reader;
+
+import org.apache.commons.io.LineIterator;
+
+/**
+ * Helper for read line.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 31-May-2016
+ */
+public class ReaderHelper {
+
+    private LineIterator ite = null;
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param reader
+     */
+    public ReaderHelper(final Reader reader) {
+        if(reader != null) {
+            ite = new LineIterator(reader);
+        }
+
+    }
+
+    /**
+     * Gets the next line.<br/>
+     * 
+     * @return line if present else null.
+     * @since
+     */
+    public String getLine() {
+        if(ite != null && ite.hasNext()) {
+            return ite.nextLine();
+        }
+        return null;
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestHttpContentExchange.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestHttpContentExchange.java
new file mode 100644 (file)
index 0000000..fa0344c
--- /dev/null
@@ -0,0 +1,233 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.zip.GZIPInputStream;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.jetty.client.ContentExchange;
+import org.eclipse.jetty.client.HttpDestination;
+import org.eclipse.jetty.http.HttpFields;
+import org.eclipse.jetty.http.HttpHeaders;
+import org.eclipse.jetty.io.Buffer;
+import org.eclipse.jetty.util.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * ContentExchange implementation classe to provide access to response.
+ * <br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class RestHttpContentExchange extends ContentExchange {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(RestHttpContentExchange.class);
+
+    private boolean gzip = false;
+
+    private RestfulAsyncCallback callback = null;
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param cacheFields whether to cache response header.
+     * @param asyncCallback callback method.
+     */
+    RestHttpContentExchange(final boolean cacheFields, final RestfulAsyncCallback asyncCallback) {
+        super(cacheFields);
+        this.callback = asyncCallback;
+    }
+
+    /**
+     * Extract message.
+     * <br/>
+     * 
+     * @param data GZipped data.
+     * @return Uncompressed data.
+     * @throws IOException
+     * @since
+     */
+    public String decompressGzipToStr(final byte[] data) throws IOException {
+        if(data == null) {
+            return "";
+        }
+        ByteArrayInputStream input = null;
+        GZIPInputStream gzis = null;
+        InputStreamReader reader = null;
+        final StringBuilder out = new StringBuilder();
+        try {
+            input = new ByteArrayInputStream(data);
+            gzis = new GZIPInputStream(input);
+            reader = new InputStreamReader(gzis, Charset.forName(RestfulClientConst.ENCODING));
+            final char[] buff = new char[1024];
+            for(int n; (n = reader.read(buff)) != -1;) {
+                out.append(new String(buff, 0, n));
+            }
+        } finally {
+            if(reader != null) {
+                try {
+                    reader.close();
+                } catch(final IOException e) {
+                    LOGGER.error("decompress Gzip reader exception:", e);
+                }
+            }
+            if(gzis != null) {
+                try {
+                    gzis.close();
+                } catch(final IOException e) {
+                    LOGGER.error("decompress Gzip exception:", e);
+                }
+            }
+            if(input != null) {
+                try {
+                    input.close();
+                } catch(final IOException e) {
+                    LOGGER.error("decompress Gzip input exception:", e);
+                }
+            }
+        }
+        return out.toString();
+
+    }
+
+    /**
+     * View response headers Content-Encoding values if you need to extract data.<br/>
+     * 
+     * @param name buffer
+     * @param value value
+     * @throws IOException
+     * @since
+     */
+    @Override
+    protected synchronized void onResponseHeader(final Buffer name, final Buffer value) throws IOException {
+        super.onResponseHeader(name, value);
+        final int header = HttpHeaders.CACHE.getOrdinal(name);
+        if(header == HttpHeaders.CONTENT_ENCODING_ORDINAL) {
+            final String encoding = StringUtil.asciiToLowerCase(value.toString());
+            gzip = encoding != null && StringUtils.contains(encoding, "gzip");
+        }
+
+    }
+
+    @Override
+    protected void onResponseComplete() throws IOException {
+        if(LOGGER.isInfoEnabled()) {
+            LOGGER.info("Response has Complete:" + "path:" + this.getRequestURI().replace("\n", "0x0A"));
+        }
+        super.onResponseComplete();
+        if(callback != null) {
+            final RestfulResponse rsp = getResponse();
+            callback.callback(rsp);
+        }
+    }
+
+    @Override
+    protected void onRequestCommitted() throws IOException {
+        if(LOGGER.isInfoEnabled()) {
+            LOGGER.info("Request Header has been send:" + "path:" + this.getRequestURI().replace("\n", "0x0A"));
+        }
+        super.onRequestCommitted();
+    }
+
+    @Override
+    protected void onRequestComplete() throws IOException {
+        if(LOGGER.isInfoEnabled()) {
+            LOGGER.info("Request has bend send complete:" + "path:" + this.getRequestURI().replace("\n", "0x0A"));
+        }
+        super.onRequestComplete();
+    }
+
+    @Override
+    protected void onException(final Throwable x) {
+        LOGGER.warn("onException:", x);
+        super.onException(x);
+        if(callback != null) {
+            callback.handleExcepion(x);
+        }
+    }
+
+    @Override
+    protected void onConnectionFailed(final Throwable x) {
+        LOGGER.warn("onConnectionFailed:", x);
+        super.onConnectionFailed(x);
+        if(callback != null) {
+            callback.handleExcepion(x);
+        }
+
+    }
+
+    @Override
+    protected void expire(final HttpDestination destination) {
+        super.expire(destination);
+        if(callback != null) {
+            callback.handleExcepion(new ServiceException("request is expired, status:" + toState(getStatus())));
+        }
+    }
+
+    public boolean isGzip() {
+        return gzip;
+    }
+
+    /**
+     * Get the response as RestfulResponse.
+     * <br/>
+     * 
+     * @return response object.
+     * @throws IOException
+     * @since
+     */
+    public RestfulResponse getResponse() throws IOException {
+        final RestfulResponse rsp = new RestfulResponse();
+        rsp.setStatus(this.getResponseStatus());
+        if(isGzip()) {
+            final String responseString = decompressGzipToStr(getResponseContentBytes());
+            rsp.setResponseJson(responseString);
+        } else {
+            rsp.setResponseJson(this.getResponseContent());
+        }
+
+        final HttpFields field = this.getResponseFields();
+        if(field != null) {
+            final Map<String, String> header = new HashMap<>();
+
+            final Enumeration<String> names = field.getFieldNames();
+            for(final Enumeration<String> e = names; e.hasMoreElements();) {
+                final String fieldName = e.nextElement();
+                final String fieldValue = field.getStringField(fieldName);
+                header.put(fieldName, fieldValue);
+            }
+
+            rsp.setRespHeaderMap(header);
+        }
+        return rsp;
+    }
+
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/Restful.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/Restful.java
new file mode 100644 (file)
index 0000000..5b0a46c
--- /dev/null
@@ -0,0 +1,297 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+/**
+ * ReSTful method interface.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public interface Restful {
+
+    /**
+     * Http GET method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: query parameters.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse get(String servicePath, RestfulParametes restParametes) throws ServiceException;
+
+    /**
+     * Http HEAD method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse head(String servicePath, RestfulParametes restParametes, RestfulOptions options)
+            throws ServiceException;
+
+    /**
+     * Http HEAD method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse head(String servicePath, RestfulParametes restParametes) throws ServiceException;
+
+    /**
+     * Http GET method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse get(String servicePath, RestfulParametes restParametes, RestfulOptions options)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse GET request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncGet(String servicePath, RestfulParametes restParametes, RestfulAsyncCallback callback)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse GET request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncGet(String servicePath, RestfulParametes restParametes, RestfulOptions options,
+            RestfulAsyncCallback callback) throws ServiceException;
+
+    /**
+     * Http PUT method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse put(String servicePath, RestfulParametes restParametes) throws ServiceException;
+
+    /**
+     * Http PUT method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse put(String servicePath, RestfulParametes restParametes, RestfulOptions options)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse PUT request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncPut(String servicePath, RestfulParametes restParametes, RestfulAsyncCallback callback)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse PUT request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncPut(String servicePath, RestfulParametes restParametes, RestfulOptions options,
+            RestfulAsyncCallback callback) throws ServiceException;
+
+    /**
+     * Http POST method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse post(String servicePath, RestfulParametes restParametes) throws ServiceException;
+
+    /**
+     * Http POST method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse post(String servicePath, RestfulParametes restParametes, RestfulOptions options)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse POST request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncPost(String servicePath, RestfulParametes restParametes, RestfulAsyncCallback callback)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse POST request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncPost(String servicePath, RestfulParametes restParametes, RestfulOptions options,
+            RestfulAsyncCallback callback) throws ServiceException;
+
+    /**
+     * Http DELETE method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse delete(String servicePath, RestfulParametes restParametes) throws ServiceException;
+
+    /**
+     * Http DELETE method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse delete(String servicePath, RestfulParametes restParametes, RestfulOptions options)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse DELETE request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncDelete(String servicePath, RestfulParametes restParametes, RestfulAsyncCallback callback)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse DELETE request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncDelete(String servicePath, RestfulParametes restParametes, RestfulOptions options,
+            RestfulAsyncCallback callback) throws ServiceException;
+
+    /**
+     * Http PATCH method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse patch(String servicePath, RestfulParametes restParametes) throws ServiceException;
+
+    /**
+     * Http PATCH method.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @return response.
+     * @throws ServiceException
+     * @since
+     */
+    RestfulResponse patch(String servicePath, RestfulParametes restParametes, RestfulOptions options)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse PATCH request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncPatch(String servicePath, RestfulParametes restParametes, RestfulAsyncCallback callback)
+            throws ServiceException;
+
+    /**
+     * Asynchronouse PATCH request.<br/>
+     * 
+     * @param servicePath: request path.
+     * @param restParametes: request parameters.
+     * @param options: request options.
+     * @param callback: response callback method.
+     * @throws ServiceException
+     * @since
+     */
+    void asyncPatch(String servicePath, RestfulParametes restParametes, RestfulOptions options,
+            RestfulAsyncCallback callback) throws ServiceException;
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulAsyncCallback.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulAsyncCallback.java
new file mode 100644 (file)
index 0000000..e2831cf
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+/**
+ * Callback interface for ReST calls.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public interface RestfulAsyncCallback {
+
+    /**
+     * Response callback.<br/>
+     * 
+     * @param response: response of ReST call.
+     * @since
+     */
+    void callback(RestfulResponse response);
+
+    /**
+     * Exceptoin callback.<br/>
+     * 
+     * @param e: ReST call exception.
+     * @since
+     */
+    void handleExcepion(Throwable e);
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulClientConst.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulClientConst.java
new file mode 100644 (file)
index 0000000..f42fb37
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+/**
+ * Constants for ReST client.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class RestfulClientConst {
+
+    /** -- json Ecode -- **/
+    public static final String APPLICATION_FORM_JSON_EBCIDED = "application/json";
+
+    /**
+     * urlencode
+     */
+    public static final String APPLICATION_FORM_URLENCODED = "application/x-www-form-urlencoded; charset=UTF-8";
+
+    public static final String ENCODING = "UTF-8";
+
+    public static final String SERVER_KEY_NAME = "defaultServer";
+
+    public static final String HOST_KEY_NAME = "host";
+
+    public static final String PORT_KEY_NAME = "port";
+
+    public static final String CONN_TIMEOUT_KEY_NAME = "ConnectTimeout";
+
+    public static final String THREAD_KEY_NAME = "thread";
+
+    public static final String IDLE_TIMEOUT_KEY_NAME = "idletimeout";
+
+    public static final String TIMEOUT_KEY_NAME = "timeout";
+
+    public static final String MAX_CONN_PER_ADDR_KEY_NAME = "maxConnectionPerAddr";
+
+    public static final String REQUEST_ID = "x-request-id";
+
+    public static final String MAX_RESPONSE_HEADER_SIZE = "responseHeaderSize";
+
+    public static final String MAX_REQUEST_HEADER_SIZE = "requestHeaderSize";
+
+    private RestfulClientConst() {
+
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulConfigure.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulConfigure.java
new file mode 100644 (file)
index 0000000..fc2ad94
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import net.sf.json.JSONObject;
+
+/**
+ * Rest client options.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class RestfulConfigure {
+
+    private static final Logger LOG = LoggerFactory.getLogger(RestfulConfigure.class);
+
+    private RestfulOptions options = null;
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * Use the default path initialization http Rest options.
+     * </p>
+     * 
+     * @since
+     */
+    public RestfulConfigure() {
+        final String config = "/etc/conf/restclient.json";
+        final String approot = SystemEnvVariablesFactory.getInstance().getAppRoot();
+        final StringBuilder extendSetting = new StringBuilder();
+
+        if(approot != null) {
+            extendSetting.append(approot);
+            extendSetting.append(config);
+        } else {
+            extendSetting.append(System.getProperty("user.dir"));
+            extendSetting.append(config);
+        }
+
+        final String configfile = extendSetting.toString();
+        initRestConf(configfile);
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * Use the specified file to initialize http Rest options.
+     * </p>
+     * 
+     * @since
+     * @param configfile
+     */
+    public RestfulConfigure(final String configfile) {
+        initRestConf(configfile);
+    }
+
+    public RestfulOptions getOptions() {
+        return options;
+    }
+
+    private void initRestConf(final String configfile) {
+        options = getDefaultOptions();
+
+        final JSONObject obj = loadJsonFromFile(configfile);
+        if(obj != null) {
+            if(obj.has(RestfulClientConst.SERVER_KEY_NAME)) {
+                final JSONObject server = obj.getJSONObject(RestfulClientConst.SERVER_KEY_NAME);
+                setStringOption(server, RestfulClientConst.HOST_KEY_NAME);
+                setIntOption(server, RestfulClientConst.PORT_KEY_NAME);
+            }
+            setIntOption(obj, RestfulClientConst.CONN_TIMEOUT_KEY_NAME);
+            setIntOption(obj, RestfulClientConst.THREAD_KEY_NAME);
+            setIntOption(obj, RestfulClientConst.IDLE_TIMEOUT_KEY_NAME);
+            setIntOption(obj, RestfulClientConst.TIMEOUT_KEY_NAME);
+            setIntOption(obj, RestfulClientConst.MAX_CONN_PER_ADDR_KEY_NAME);
+            setIntOption(obj, RestfulClientConst.MAX_RESPONSE_HEADER_SIZE);
+            setIntOption(obj, RestfulClientConst.MAX_REQUEST_HEADER_SIZE);
+        } else {
+            LOG.error("failed to load json from " + configfile);
+        }
+    }
+
+    private void setStringOption(final JSONObject json, final String key) {
+        if(json.has(key)) {
+            options.setOption(key, json.getString(key));
+        }
+    }
+
+    private void setIntOption(final JSONObject json, final String key) {
+        if(json.has(key)) {
+            options.setOption(key, json.getInt(key));
+        }
+    }
+
+    private RestfulOptions getDefaultOptions() {
+        options = new RestfulOptions();
+        options.setOption(RestfulClientConst.CONN_TIMEOUT_KEY_NAME, 3000);
+        options.setOption(RestfulClientConst.THREAD_KEY_NAME, 200);
+        options.setOption(RestfulClientConst.IDLE_TIMEOUT_KEY_NAME, 30000);
+        options.setOption(RestfulClientConst.TIMEOUT_KEY_NAME, 30000);
+        options.setOption(RestfulClientConst.MAX_CONN_PER_ADDR_KEY_NAME, 50);
+        options.setOption(RestfulClientConst.MAX_RESPONSE_HEADER_SIZE, 20 * 1024);
+        options.setOption(RestfulClientConst.MAX_REQUEST_HEADER_SIZE, 20 * 1024);
+        return options;
+    }
+
+    private JSONObject loadJsonFromFile(final String filePath) {
+        final File file = new File(filePath);
+        if((!file.exists()) || (!file.isFile())) {
+            LOG.error(filePath + "isn't exist.");
+            return null;
+        }
+        BufferedReader reader = null;
+        final StringBuilder jsonstr = new StringBuilder();
+        JSONObject jo = null;
+        try {
+            reader = new BufferedReader(new FileReader(file));
+            final ReaderHelper rHelpper = new ReaderHelper(reader);
+            String tempString = null;
+            while((tempString = rHelpper.getLine()) != null) {
+                jsonstr.append(tempString);
+            }
+            jo = JSONObject.fromObject(jsonstr.toString());
+        } catch(final IOException e) {
+            LOG.error("load file exception:" + e);
+        } finally {
+            if(reader != null) {
+                try {
+                    reader.close();
+                } catch(final IOException e) {
+                    LOG.error("close error.", e);
+                }
+            }
+        }
+        return jo;
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulFactory.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulFactory.java
new file mode 100644 (file)
index 0000000..34f9309
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * RestFul instance factory. <br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class RestfulFactory {
+
+    /**
+     * https protocol.
+     */
+    public static final String PROTO_HTTPS = "https";
+
+    /**
+     * http protocol.
+     */
+    public static final String PROTO_HTTP = "http";
+
+    private static final Logger LOG = LoggerFactory.getLogger(RestfulFactory.class);
+
+    private static final Map<String, Restful> INSTANCES = new HashMap<>(2);
+
+    private RestfulFactory() {
+
+    }
+
+    /**
+     * Get RESTful instance. This method returns a singleton instance.
+     * <br/>
+     * 
+     * @param protocol protocol. currently only support 'http'.
+     * @return restful instance.
+     * @since
+     */
+    public static synchronized Restful getRestInstance(final String protocol) {
+        Restful rest = INSTANCES.get(protocol);
+        if(rest != null) {
+            return rest;
+        }
+        if(PROTO_HTTP.equals(protocol)) {
+            rest = createHttpRest();
+            INSTANCES.put(protocol, rest);
+        }
+        return rest;
+    }
+
+    private static Restful createHttpRest() {
+        final HttpRest rest = new HttpRest();
+        setRestOption(rest, null);
+        return rest;
+    }
+
+    private static void setRestOption(final HttpRest rest, final String restoptionfile) {
+        try {
+            RestfulConfigure config;
+            if(restoptionfile == null || restoptionfile.isEmpty()) {
+                config = new RestfulConfigure();
+            } else {
+                config = new RestfulConfigure(restoptionfile);
+            }
+
+            final RestfulOptions option = config.getOptions();
+            rest.initHttpRest(option);
+        } catch(final ServiceException e) {
+            LOG.error("init http client exception: ", e);
+        }
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulOptions.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulOptions.java
new file mode 100644 (file)
index 0000000..5a48adc
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Options for Rest communication.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class RestfulOptions {
+
+    public static final String REST_OPTIONS_NAME_TIMEOUT = "timeout";
+
+    public static final int REST_OPTIONS_TIMEOUT_MAXTIMEOUT = 1800000;
+
+    private final Map<String, Object> optionsMap = new HashMap<>();
+
+    /**
+     * Get port.<br/>
+     * 
+     * @return port.
+     * @since
+     */
+    public int getPort() {
+        final Object obj = this.getOption(RestfulClientConst.PORT_KEY_NAME);
+        if(null == obj) {
+            return 0;
+        }
+        return ((Integer)obj).intValue();
+    }
+
+    /**
+     * Set port.<br/>
+     * 
+     * @param port port to set.
+     * @return
+     * @since
+     */
+    public boolean setPort(final int port) {
+        this.setOption(RestfulClientConst.PORT_KEY_NAME, port);
+        return true;
+    }
+
+    /**
+     * Get host.<br/>
+     * 
+     * @return the host.
+     * @since
+     */
+    public String getHost() {
+        final Object obj = this.getOption(RestfulClientConst.HOST_KEY_NAME);
+        if(null == obj) {
+            return "";
+        }
+        return (String)obj;
+    }
+
+    /**
+     * Set host.<br/>
+     * 
+     * @param host host to set.
+     * @return
+     * @since
+     */
+    public boolean setHost(final String host) {
+        this.setOption(RestfulClientConst.HOST_KEY_NAME, host);
+        return true;
+    }
+
+    /**
+     * Set rest time-out.<br/>
+     * 
+     * @param timeout time-out to set in seconds.
+     * @return
+     * @since
+     */
+    public boolean setRestTimeout(final int timeout) {
+        if(0 < timeout && REST_OPTIONS_TIMEOUT_MAXTIMEOUT >= timeout) {
+            this.setOption(REST_OPTIONS_NAME_TIMEOUT, timeout);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Get time-out.<br/>
+     * 
+     * @return time-out in seconds.
+     * @since
+     */
+    public int getRestTimeout() {
+        final Object obj = this.getOption(REST_OPTIONS_NAME_TIMEOUT);
+        if(null == obj) {
+            return 0;
+        }
+        return ((Integer)obj).intValue();
+    }
+
+    /**
+     * Get specified option.<br/>
+     * 
+     * @param optionName option name.
+     * @return option
+     * @since
+     */
+    public Object getOption(final String optionName) {
+        return optionsMap.get(optionName);
+    }
+
+    /**
+     * Get option value as integer.<br/>
+     * 
+     * @param optionName option name.
+     * @return option value as int.
+     * @since
+     */
+    public int getIntOption(final String optionName) {
+        final Object obj = this.getOption(optionName);
+        if(null == obj) {
+            return 0;
+        }
+        return ((Integer)obj).intValue();
+    }
+
+    /**
+     * Get option value as string.<br/>
+     * 
+     * @param optionName option name.
+     * @return option value as string.
+     * @since
+     */
+    public String getStringOption(final String optionName) {
+        final Object obj = this.getOption(optionName);
+        if(null == obj) {
+            return "";
+        }
+        return (String)obj;
+    }
+
+    /**
+     * Set option.<br/>
+     * 
+     * @param option option name.
+     * @param optionsValue option value.
+     * @return
+     * @since
+     */
+    public Object setOption(final String option, final Object optionsValue) {
+        return optionsMap.put(option, optionsValue);
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulParametes.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulParametes.java
new file mode 100644 (file)
index 0000000..71d1675
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version Aug 9, 2016
+ */
+public class RestfulParametes {
+
+    private Map<String, String> paramMap = new HashMap<>();
+
+    private Map<String, String> headerMap = new HashMap<>();
+
+    private String rawData = null;
+
+    /**
+     * <br/>
+     * 
+     * @param key
+     * @return
+     * @since
+     */
+    public String get(final String key) {
+        return paramMap.get(key);
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param data
+     * @since
+     */
+    public void setRawData(final String data) {
+        this.rawData = data;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @return
+     * @since
+     */
+    public String getRawData() {
+        return this.rawData;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param key
+     * @param value
+     * @return
+     * @since
+     */
+    public String put(final String key, final String value) {
+        return paramMap.put(key, value);
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param key
+     * @param value
+     * @return
+     * @since
+     */
+    public String putHttpContextHeader(final String key, final String value) {
+        return headerMap.put(key, value);
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param key
+     * @param value
+     * @return
+     * @since
+     */
+    public String putHttpContextHeader(final String key, final int value) {
+        return this.putHttpContextHeader(key, String.valueOf(value));
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param key
+     * @return
+     * @since
+     */
+    public String getHttpContextHeader(final String key) {
+        return headerMap.get(key);
+    }
+
+    /**
+     * <br/>
+     * 
+     * @return
+     * @since
+     */
+    public Map<String, String> getParamMap() {
+        return paramMap;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param paramMap
+     * @since
+     */
+    public void setParamMap(final Map<String, String> paramMap) {
+        this.paramMap = paramMap;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @return
+     * @since
+     */
+    public Map<String, String> getHeaderMap() {
+        return this.headerMap;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param headerMap
+     * @since
+     */
+    public void setHeaderMap(final Map<String, String> headerMap) {
+        this.headerMap = headerMap;
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulResponse.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/RestfulResponse.java
new file mode 100644 (file)
index 0000000..41997ce
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.util.Map;
+
+/**
+ * Response for RestFul requests.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class RestfulResponse {
+
+    private String responseContent;
+
+    private int status = -1;
+
+    private Map<String, String> respHeaderMap = null;
+
+    /**
+     * <br/>
+     * 
+     * @return
+     * @since
+     */
+    public int getStatus() {
+        return status;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param status
+     * @since
+     */
+    public void setStatus(final int status) {
+        this.status = status;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @return
+     * @since
+     */
+    public Map<String, String> getRespHeaderMap() {
+        return respHeaderMap;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param header
+     * @since
+     */
+    public void setRespHeaderMap(final Map<String, String> header) {
+        this.respHeaderMap = header;
+    }
+
+    /**
+     * Get response header value as integer.<br/>
+     * 
+     * @param key header param name.
+     * @return header param value as integer. (-1 if error)
+     * @since
+     */
+    public int getRespHeaderInt(final String key) {
+        if(respHeaderMap != null) {
+            final String result = respHeaderMap.get(key);
+            if(result != null) {
+                return Integer.parseInt(result);
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Get response header value as long.<br/>
+     * 
+     * @param key header param name.
+     * @return value as long. -1 if no value.
+     * @since
+     */
+    public long getRespHeaderLong(final String key) {
+        if(respHeaderMap != null) {
+            final String result = respHeaderMap.get(key);
+            if(result != null) {
+                return Long.parseLong(result);
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * Get http header as string.<br/>
+     * 
+     * @param key header name.
+     * @return header value.
+     * @since
+     */
+    public String getRespHeaderStr(final String key) {
+        if(respHeaderMap != null) {
+            return respHeaderMap.get(key);
+        }
+        return null;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @return
+     * @since
+     */
+    public String getResponseContent() {
+        return responseContent;
+    }
+
+    /**
+     * <br/>
+     * 
+     * @param responseString
+     * @since
+     */
+    public void setResponseJson(final String responseString) {
+        this.responseContent = responseString;
+    }
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ServiceException.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/ServiceException.java
new file mode 100644 (file)
index 0000000..7e54bd7
--- /dev/null
@@ -0,0 +1,270 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.text.MessageFormat;
+
+/**
+ * The base class for all common exception.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 28-May-2016
+ */
+public class ServiceException extends Exception {
+
+    /**
+     * default exception id.
+     */
+    public static final String DEFAULT_ID = "framwork.remote.SystemError";
+
+    /**
+     * Serial number.
+     */
+    private static final long serialVersionUID = 5703294364555144738L;
+
+    /**
+     * Exception id.
+     */
+    private String id = DEFAULT_ID;
+
+    private Object[] args = null;
+
+    private int httpCode = 500;
+
+    private ExceptionArgs exceptionArgs = null;
+
+    /**
+     * The default constructor<br/>
+     * <p>
+     * This method is only used as deserialized, in other cases, use parameterized constructor.
+     * </p>
+     * 
+     * @since
+     */
+    public ServiceException() {
+        super("");
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param id: details.
+     * @param cause: reason.
+     */
+    public ServiceException(final String id, final Throwable cause) {
+        super(cause);
+        this.setId(id);
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param message: details.
+     */
+    public ServiceException(final String message) {
+        super(message);
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param id: exception id.
+     * @param message: details.
+     */
+    public ServiceException(final String id, final String message) {
+        super(message);
+        this.setId(id);
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param id: exception id.
+     * @param httpCode: http status code.
+     */
+    public ServiceException(final String id, final int httpCode) {
+        super();
+        this.setId(id);
+        this.setHttpCode(httpCode);
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * the exception include the httpcode and message.
+     * </p>
+     * 
+     * @since
+     * @param httpCode http code.
+     * @param message details.
+     */
+    public ServiceException(final int httpCode, final String message) {
+        super(message);
+        this.setHttpCode(httpCode);
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param id: exception id.
+     * @param httpCode: http code.
+     * @param exceptionArgs: Exception handling frame parameters.
+     */
+    public ServiceException(final String id, final int httpCode, final ExceptionArgs exceptionArgs) {
+        super();
+        this.setId(id);
+        this.setHttpCode(httpCode);
+        this.setExceptionArgs(exceptionArgs);
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * Have a placeholder exception, use args formatted message.
+     * </p>
+     * 
+     * @since
+     * @param id: exception id.
+     * @param message: details.
+     * @param args: Placeholders for parameters
+     */
+    public ServiceException(final String id, final String message, final Object... args) {
+        super(MessageFormat.format(message, args));
+        this.setId(id);
+        this.args = args;
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * Have a placeholder exception, use args formatted message
+     * </p>
+     * 
+     * @since
+     * @param id: exception id.
+     * @param message: details.
+     * @param cause: reason.
+     * @param args: placeholder for parameters
+     */
+    public ServiceException(final String id, final String message, final Throwable cause, final Object... args) {
+        super(MessageFormat.format(message, args), cause);
+        this.setId(id);
+        this.args = args;
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param id: exception id.
+     * @param message: details.
+     * @param cause: reason.
+     */
+    public ServiceException(final String id, final String message, final Throwable cause) {
+        super(message, cause);
+        this.setId(id);
+    }
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     * @param cause: reason.
+     */
+    public ServiceException(final Throwable cause) {
+        super(cause);
+    }
+
+    /**
+     * Get exceptoin id.<br/>
+     * 
+     * @return
+     * @since
+     */
+    public String getId() {
+        if(id == null || id.isEmpty()) {
+            return DEFAULT_ID;
+        }
+        return id;
+    }
+
+    public void setId(final String id) {
+        this.id = id;
+    }
+
+    public int getHttpCode() {
+        return this.httpCode;
+    }
+
+    public void setHttpCode(final int httpCode) {
+        this.httpCode = httpCode;
+    }
+
+    /**
+     * Obtain the ROA exception handling framework parameters<br/>
+     * 
+     * @return exception args.
+     * @since
+     */
+    public ExceptionArgs getExceptionArgs() {
+        return exceptionArgs;
+    }
+
+    public void setExceptionArgs(final ExceptionArgs exceptionArgs) {
+        this.exceptionArgs = exceptionArgs;
+    }
+
+    /**
+     * Gets the parameter information<br/>
+     * 
+     * @return parameter list.
+     * @since
+     */
+    protected Object[] getArgs() {
+        if(args == null || args.length == 0 || DEFAULT_ID.equals(getId())) {
+            return new Object[] {};
+        }
+        return args;
+    }
+
+    @Override
+    public String toString() {
+        return "exception.id: " + getId() + "; " + super.toString();
+    }
+
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariables.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariables.java
new file mode 100644 (file)
index 0000000..da0b352
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+/**
+ * Dependency the system env<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 31-May-2016
+ */
+public interface SystemEnvVariables {
+
+    /**
+     * Get application root path <br/>
+     * 
+     * @return application root path.
+     * @since
+     */
+    String getAppRoot();
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariablesDefImpl.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariablesDefImpl.java
new file mode 100644 (file)
index 0000000..cd1a70f
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2017 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * System environment variable helper implementation.<br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version 24-Jun-2016
+ */
+public class SystemEnvVariablesDefImpl implements SystemEnvVariables {
+
+    private static final Logger LOG = LoggerFactory.getLogger(SystemEnvVariablesDefImpl.class);
+
+    @Override
+    public String getAppRoot() {
+        String appRoot = null;
+        appRoot = System.getProperty("catalina.base");
+        if(appRoot != null) {
+            appRoot = getCanonicalPath(appRoot);
+        }
+        return appRoot;
+    }
+
+    /**
+     * Gets the canonical path<br/>
+     * 
+     * @param inPath input path
+     * @return the canonical path.
+     * @since
+     */
+    private String getCanonicalPath(final String inPath) {
+        String path = null;
+        try {
+            if(inPath != null) {
+                final File file = new File(inPath);
+                path = file.getCanonicalPath();
+            }
+        } catch(final IOException e) {
+            LOG.error("file.getCanonicalPath() IOException:", e);
+        }
+        return path;
+    }
+
+}
diff --git a/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariablesFactory.java b/juju/juju-vnfmadapter/Juju-vnfmadapterService/service/src/main/java/org/onap/vfc/nfvo/vnfm/gvnfm/jujuvnfmadapter/common/restclient/SystemEnvVariablesFactory.java
new file mode 100644 (file)
index 0000000..73bfb36
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2017 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.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient;
+
+/**
+ * SystemEnvVariables factory class
+ * <br/>
+ * <p>
+ * </p>
+ * 
+ * @author
+ * @version
+ */
+public class SystemEnvVariablesFactory {
+
+    private static SystemEnvVariables systemEnvVariablesInstance = new SystemEnvVariablesDefImpl();
+
+    /**
+     * Constructor<br/>
+     * <p>
+     * </p>
+     * 
+     * @since
+     */
+    private SystemEnvVariablesFactory() {
+
+    }
+
+    /**
+     * get the SystemEnvVariables instance
+     * <br/>
+     * 
+     * @return SystemEnvVariables instance
+     * @since
+     */
+    public static SystemEnvVariables getInstance() {
+        return systemEnvVariablesInstance;
+    }
+}
index b1cfe36..52fac26 100644 (file)
@@ -19,8 +19,8 @@ package org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.openo.baseservice.roa.util.restclient.HttpRest;
-import org.openo.baseservice.roa.util.restclient.Restful;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.HttpRest;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.Restful;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 26ea627..005de73 100644 (file)
@@ -19,8 +19,8 @@ package org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.openo.baseservice.roa.util.restclient.HttpRest;
-import org.openo.baseservice.roa.util.restclient.Restful;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.HttpRest;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.Restful;
 
 /**
  * 
@@ -29,41 +29,41 @@ import org.openo.baseservice.roa.util.restclient.Restful;
  * </p>
  * 
  * @author
- * @version     NFVO 0.5  Sep 12, 2016
+ * @version NFVO 0.5 Sep 12, 2016
  */
 public class HttpRestfulHelp {
 
-    public static final String PROTO_HTTPS = "https";
+       public static final String PROTO_HTTPS = "https";
 
-    public static final String PROTO_HTTP = "http";
+       public static final String PROTO_HTTP = "http";
 
-    private static final Map<String, Restful> INSTANCES = new HashMap<>(2);
+       private static final Map<String, Restful> INSTANCES = new HashMap<>(2);
 
-    private HttpRestfulHelp() {
-        // constructor
-    }
+       private HttpRestfulHelp() {
+               // constructor
+       }
 
-    /**
-     * 
-     * Get rest instance.<br>
-     * 
-     * @param ssloptionfile
-     * @param restoptionfile
-     * @return
-     * @since  NFVO 0.5
-     */
-    public static synchronized Restful getRestInstance(String ssloptionfile, String restoptionfile) {
-        Restful rest = INSTANCES.get(PROTO_HTTP);
-        if(rest != null) {
-            return rest;
-        }
-        rest = createHttpsRest(ssloptionfile, restoptionfile);
-        INSTANCES.put(PROTO_HTTP, rest);
-        return rest;
-    }
+       /**
+        
+        * Get rest instance.<br>
+        
+        * @param ssloptionfile
+        * @param restoptionfile
+        * @return
+        * @since NFVO 0.5
+        */
+       public static synchronized Restful getRestInstance(String ssloptionfile, String restoptionfile) {
+               Restful rest = INSTANCES.get(PROTO_HTTP);
+               if (rest != null) {
+                       return rest;
+               }
+               rest = createHttpsRest(ssloptionfile, restoptionfile);
+               INSTANCES.put(PROTO_HTTP, rest);
+               return rest;
+       }
 
-    private static Restful createHttpsRest(String ssloptionfile, String restoptionfile) {
-        return new HttpRest();
-    }
+       private static Restful createHttpsRest(String ssloptionfile, String restoptionfile) {
+               return new HttpRest();
+       }
 
 }
index 1a0fd87..68044e3 100644 (file)
@@ -19,12 +19,12 @@ package org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.openo.baseservice.remoteservice.exception.ServiceException;
-import org.openo.baseservice.roa.util.restclient.Restful;
-import org.openo.baseservice.roa.util.restclient.RestfulFactory;
-import org.openo.baseservice.roa.util.restclient.RestfulOptions;
-import org.openo.baseservice.roa.util.restclient.RestfulParametes;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.Restful;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulFactory;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulOptions;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulParametes;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index b0c47ef..666deab 100644 (file)
@@ -25,13 +25,13 @@ import java.util.Map;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.AsyncCallback;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.VnfmException;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
-import org.openo.baseservice.roa.util.restclient.Restful;
-import org.openo.baseservice.roa.util.restclient.RestfulAsyncCallback;
-import org.openo.baseservice.roa.util.restclient.RestfulFactory;
-import org.openo.baseservice.roa.util.restclient.RestfulOptions;
-import org.openo.baseservice.roa.util.restclient.RestfulParametes;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.Restful;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulAsyncCallback;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulFactory;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulOptions;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulParametes;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 6aa8798..d742474 100644 (file)
@@ -25,13 +25,13 @@ import java.util.Map;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.EntityUtils;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.VnfmException;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
-import org.openo.baseservice.roa.util.restclient.Restful;
-import org.openo.baseservice.roa.util.restclient.RestfulAsyncCallback;
-import org.openo.baseservice.roa.util.restclient.RestfulFactory;
-import org.openo.baseservice.roa.util.restclient.RestfulOptions;
-import org.openo.baseservice.roa.util.restclient.RestfulParametes;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.Restful;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulAsyncCallback;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulFactory;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulOptions;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulParametes;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 3086e3f..82dd7ef 100644 (file)
@@ -28,8 +28,8 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.JujuVnfm
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.inf.IResourceManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.UrlConstant;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
-import org.openo.baseservice.util.impl.SystemEnvVariablesFactory;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.SystemEnvVariablesFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
index 6eb5ac4..2065b1f 100644 (file)
@@ -21,7 +21,7 @@ import net.sf.json.JSONObject;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.JujuVnfmRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.inf.IJujuAdapter2DriverManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 99cc2ea..fb971da 100644 (file)
@@ -21,7 +21,7 @@ import java.util.Map;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.JujuVnfmRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.inf.IJujuAdapter2MSBManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 5bdb9fb..fee0f28 100644 (file)
@@ -33,8 +33,8 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.inf.IJujuCli
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.UrlConstant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.juju.JujuHelper;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
-import org.openo.baseservice.util.impl.SystemEnvVariablesFactory;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.SystemEnvVariablesFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 0e0c904..7784ba6 100644 (file)
@@ -30,7 +30,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.inf.IJujuAda
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.api.internalsvc.inf.IJujuAdapter2DriverMgrService;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.UrlConstant;
-import org.openo.baseservice.util.impl.SystemEnvVariablesFactory;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.SystemEnvVariablesFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 175eada..c803d3e 100644 (file)
@@ -30,7 +30,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.inf.IJujuAda
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.api.internalsvc.inf.IJujuAdapterMgrService;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.UrlConstant;
-import org.openo.baseservice.util.impl.SystemEnvVariablesFactory;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.SystemEnvVariablesFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 4ed3f73..0fceb1e 100644 (file)
@@ -34,7 +34,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.UrlConstant
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.entity.JujuVnfmInfo;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.entity.JujuVnfmInfoExample;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.mapper.JujuVnfmInfoMapper;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 267764c..613f5cc 100644 (file)
@@ -41,8 +41,8 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.VnfmRest
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.impl.AdapterResourceManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.UrlConstant;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index fd918c2..740d025 100644 (file)
@@ -37,7 +37,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.impl.JujuCli
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.inf.IJujuClientManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.process.VnfMgr;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index dae8c3c..d7aa919 100644 (file)
@@ -39,7 +39,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.StringUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.SwitchController;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.process.VnfMgr;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
index 4a33314..267ba69 100644 (file)
@@ -20,7 +20,7 @@ import org.junit.Before;
 import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.AsyncCallback;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.rest.fullstack.JujuClientRoaTest;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 
 public class AsyncCallbackTest {
     Logger logger = Logger.getLogger(JujuClientRoaTest.class);
index 0998f05..7b2dfde 100644 (file)
@@ -20,7 +20,7 @@ import static org.junit.Assert.*;
 import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.VnfmUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.VnfmRestfulUtil;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 
 import mockit.Mock;
 import mockit.MockUp;
index 276dbae..7bcbd14 100644 (file)
@@ -21,7 +21,7 @@ import java.io.File;
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.YamlUtil;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.yaml.snakeyaml.Yaml;
 
 import net.sf.json.JSON;
index 2517a69..1dcda49 100644 (file)
@@ -27,9 +27,9 @@ import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.JujuVnfmRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.VNFRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
-import org.openo.baseservice.roa.util.restclient.RestfulParametes;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulParametes;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 
 import mockit.Mock;
 import mockit.MockUp;
index d7db349..4300181 100644 (file)
@@ -29,7 +29,7 @@ import java.util.Map;
 import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.VNFRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 
 import net.sf.json.JSONObject;
 
index c5bc4a0..454f1c7 100644 (file)
@@ -28,7 +28,7 @@ import java.util.Map;
 import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.VnfmRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 
 import mockit.Mock;
 import mockit.MockUp;
index 8100f24..220b42c 100644 (file)
@@ -24,10 +24,10 @@ import java.util.Map;
 import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.impl.AdapterResourceManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
-import org.openo.baseservice.roa.util.restclient.HttpRest;
-import org.openo.baseservice.roa.util.restclient.RestfulParametes;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.HttpRest;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulParametes;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 
 import mockit.Mock;
 import mockit.MockUp;
index 4d65f23..6a35f4b 100644 (file)
@@ -28,10 +28,10 @@ import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.JujuVnfmRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.impl.JujuAdapter2MSBManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.constant.Constant;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
-import org.openo.baseservice.roa.util.restclient.HttpRest;
-import org.openo.baseservice.roa.util.restclient.RestfulParametes;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.HttpRest;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulParametes;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 
 import mockit.Mock;
 import mockit.MockUp;
index 8c1c403..ebf9e2a 100644 (file)
@@ -27,7 +27,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.VnfmRest
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.inf.IResourceManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.entity.JujuVnfmInfo;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.process.VnfMgr;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 
 import mockit.Mock;
 import mockit.MockUp;
index 227a929..6cc0d05 100644 (file)
@@ -32,7 +32,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.entity.JujuVnfmInfoE
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.entity.JujuVnfmInfoExample.Criterion;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.mapper.JujuVnfmInfoMapper;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.process.VnfResourceMgr;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 
 import mockit.Expectations;
 import mockit.Mock;
index fc88aac..7531224 100644 (file)
@@ -25,8 +25,8 @@ import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.JujuConfigUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.servicetoken.VnfmRestfulUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.rest.ConfigRoa;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
-import org.openo.baseservice.roa.util.restclient.RestfulResponse;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.RestfulResponse;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 import mockit.Mock;
index 075a3e8..80a72f8 100644 (file)
@@ -26,7 +26,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.StringUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.adapter.impl.JujuClientManager;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.process.VnfMgr;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.rest.JujuClientRoa;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 import mockit.Mock;
index 8cdca75..1a7453d 100644 (file)
@@ -25,7 +25,7 @@ import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.StringUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.process.VnfResourceMgr;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.rest.VnfResourceRoa;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 import mockit.Mock;
index bdb6788..31d8bcd 100644 (file)
@@ -28,7 +28,7 @@ import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.StringUtil;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.entity.JujuVnfmInfo;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.process.VnfMgr;
 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.service.rest.VnfRoa;
-import org.openo.baseservice.remoteservice.exception.ServiceException;
+import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.restclient.ServiceException;
 import org.springframework.mock.web.MockHttpServletResponse;
 
 import mockit.Mock;
index 40f8a26..30bac06 100644 (file)
@@ -16,8 +16,8 @@
  -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.onap.oparent</groupId>
-        <artifactId>oparent</artifactId>
+        <groupId>org.onap.vfc.nfvo.driver.vnfm.gvnfm</groupId>
+        <artifactId>juju</artifactId>
         <version>1.0.0-SNAPSHOT</version>
     </parent>
     <groupId>org.onap.vfc.nfvo.driver.vnfm.gvnfm</groupId>
diff --git a/juju/pom.xml b/juju/pom.xml
new file mode 100644 (file)
index 0000000..d76761b
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.onap.vfc.nfvo.driver.vnfm.gvnfm</groupId>
+        <artifactId>vfc-nfvo-driver-vnfm-gvnfm</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+    <groupId>org.onap.vfc.nfvo.driver.vnfm.gvnfm</groupId>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>juju</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>nfvo/drivers/vnfm/gvnfm/juju</name>
+    <description>nfvo juju-vnfmadapter</description>
+    <modules>
+        <module>juju-vnfmadapter</module>
+    </modules>
+</project>
diff --git a/pom.xml b/pom.xml
index 38e4bbe..e8035e5 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -29,5 +29,6 @@
     <description>vfc nfvo drivers-vnfm-gvnfm</description>
     <modules>
         <module>gvnfmadapter</module>
+        <module>juju</module>
     </modules>
 </project>