Replace AJSC with Spring Boot 1.5.12.RELEASE 39/45439/1
authorMichael Arrastia <MArrasti@amdocs.com>
Tue, 1 May 2018 13:55:56 +0000 (14:55 +0100)
committerMichael Arrastia <MArrasti@amdocs.com>
Tue, 1 May 2018 13:55:56 +0000 (14:55 +0100)
Updates include:
Remove AJSC references
Use PropertiesLoader (loader.path) to allow loading external janus or titan deps
Fix dependency conflicts between janus/titan deps and Spring Boot deps
Use Jetty container
Use Jersey registration of Champ REST interface

Change-Id: Ic33b886b0b039cce0366c0f0910cc5a3fe5bfd9b
Issue-ID: AAI-1041
Signed-off-by: Michael Arrastia <MArrasti@amdocs.com>
17 files changed:
.gitignore
champ-service-deps-janus/pom.xml
champ-service-deps-titan/pom.xml
champ-service/pom.xml
champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/conf/jaxrsBeans.groovy [deleted file]
champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/docs/README.txt [deleted file]
champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/lib/README.txt [deleted file]
champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/routes/champ.route [deleted file]
champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/routes/jaxrsExample.route [deleted file]
champ-service/src/main/bin/start.sh
champ-service/src/main/java/org/onap/champ/ChampApplication.java [new file with mode: 0644]
champ-service/src/main/java/org/onap/champ/ChampRESTAPI.java
champ-service/src/main/java/org/onap/champ/JerseyConfig.java [new file with mode: 0644]
champ-service/src/main/resources/application.properties [new file with mode: 0644]
champ-service/src/main/resources/logback.xml [moved from champ-service/ajsc-shared-config/etc/logback.xml with 99% similarity]
champ-service/src/test/java/org/onap/champ/event/GraphEventEnvelopeTest.java
champ-service/src/test/java/org/onap/champ/util/TestUtil.java

index 9210958..f484ef3 100644 (file)
@@ -14,3 +14,6 @@
 # Maven
 target/
 jacoco.exec
+
+# Misc
+.checkstyle
index eaee1e9..398437f 100644 (file)
@@ -38,6 +38,96 @@ limitations under the License.
             <groupId>org.onap.aai</groupId>
             <artifactId>champ-janus</artifactId>
             <version>1.2.0-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-classic</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpclient</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpclient-cache</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>log4j</groupId>
+                    <artifactId>log4j</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.onap.aai.logging-service</groupId>
+                    <artifactId>logging-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.core</groupId>
+                    <artifactId>jersey-client</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.core</groupId>
+                    <artifactId>jersey-common</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun.jersey</groupId>
+                    <artifactId>jersey-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.ext</groupId>
+                    <artifactId>jersey-entity-filtering</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.bundles.repackaged</groupId>
+                    <artifactId>jersey-guava</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun.jersey.contribs</groupId>
+                    <artifactId>jersey-guice</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun.jersey</groupId>
+                    <artifactId>jersey-json</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.media</groupId>
+                    <artifactId>jersey-media-json-jackson</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun.jersey</groupId>
+                    <artifactId>jersey-server</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.mortbay.jetty</groupId>
+                    <artifactId>jetty-util</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>net.jpountz.lz4</groupId>
+                    <artifactId>lz4</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.onap.aai.event-client</groupId>
+                    <artifactId>event-client-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.onap.aai.event-client</groupId>
+                    <artifactId>event-client-dmaap</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.onap.aai.event-client</groupId>
+                    <artifactId>event-client-kafka</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.janusgraph</groupId>
@@ -61,6 +151,46 @@ limitations under the License.
                     <groupId>org.apache.tinkerpop</groupId>
                     <artifactId>gremlin-groovy</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpclient</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpcore</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.google.guava</groupId>
+                    <artifactId>guava</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>javax.validation</groupId>
+                    <artifactId>validation-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xml-apis</groupId>
+                    <artifactId>xml-apis</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-validator</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>net.jpountz.lz4</groupId>
+                    <artifactId>lz4</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
         <dependency>
@@ -85,6 +215,10 @@ limitations under the License.
                     <groupId>org.apache.tinkerpop</groupId>
                     <artifactId>gremlin-core</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
     </dependencies>
index 0aebf37..f979969 100644 (file)
@@ -38,6 +38,108 @@ limitations under the License.
             <groupId>org.onap.aai</groupId>
             <artifactId>champ-titan</artifactId>
             <version>1.2.0-SNAPSHOT</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-classic</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpclient</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpclient-cache</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.onap.aai.logging-service</groupId>
+                    <artifactId>logging-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.core</groupId>
+                    <artifactId>jersey-client</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.core</groupId>
+                    <artifactId>jersey-common</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun.jersey</groupId>
+                    <artifactId>jersey-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.ext</groupId>
+                    <artifactId>jersey-entity-filtering</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.bundles.repackaged</groupId>
+                    <artifactId>jersey-guava</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun.jersey.contribs</groupId>
+                    <artifactId>jersey-guice</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun.jersey</groupId>
+                    <artifactId>jersey-json</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.glassfish.jersey.media</groupId>
+                    <artifactId>jersey-media-json-jackson</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.sun.jersey</groupId>
+                    <artifactId>jersey-server</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>net.jpountz.lz4</groupId>
+                    <artifactId>lz4</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.mortbay.jetty</groupId>
+                    <artifactId>jetty-util</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>log4j</groupId>
+                    <artifactId>log4j</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.codehaus.groovy</groupId>
+                    <artifactId>groovy</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>jline</groupId>
+                    <artifactId>jline</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.onap.aai.event-client</groupId>
+                    <artifactId>event-client-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.onap.aai.event-client</groupId>
+                    <artifactId>event-client-dmaap</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.onap.aai.event-client</groupId>
+                    <artifactId>event-client-kafka</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>com.thinkaurelius.titan</groupId>
@@ -60,6 +162,58 @@ limitations under the License.
                     <groupId>org.apache.tinkerpop</groupId>
                     <artifactId>gremlin-core</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpclient</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>net.jpountz.lz4</groupId>
+                    <artifactId>lz4</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpcore</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>javax.validation</groupId>
+                    <artifactId>validation-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.hibernate</groupId>
+                    <artifactId>hibernate-validator</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.commons</groupId>
+                    <artifactId>commons-lang3</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.javassist</groupId>
+                    <artifactId>javassist</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>jline</groupId>
+                    <artifactId>jline</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>xml-apis</groupId>
+                    <artifactId>xml-apis</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.google.guava</groupId>
+                    <artifactId>guava</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
         <dependency>
@@ -83,6 +237,14 @@ limitations under the License.
                     <groupId>org.apache.tinkerpop</groupId>
                     <artifactId>gremlin-core</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>log4j</groupId>
+                    <artifactId>log4j</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
     </dependencies>
index 108e6a2..71bf9fb 100644 (file)
@@ -24,9 +24,9 @@ limitations under the License.
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>com.att.ajsc</groupId>
-        <artifactId>ajsc-archetype-parent</artifactId>
-        <version>2.0.0</version>
+        <groupId>org.onap.oparent</groupId>
+        <artifactId>oparent</artifactId>
+        <version>1.1.0</version>
     </parent>
 
     <groupId>org.onap.aai</groupId>
@@ -35,32 +35,49 @@ limitations under the License.
     <name>champ</name>
 
     <properties>
-        <runAjscHome>${basedir}/target/swm/package/nix/dist_files${distFilesRoot}</runAjscHome>
-        <ajscRuntimeVersion>2.0.0</ajscRuntimeVersion>
-
-        <absoluteDistFilesRoot>/appl/${project.artifactId}</absoluteDistFilesRoot>
-
-        <!-- For NO Versioning, REMOVE the /${project.version} from the <distFilesRoot>
-            property, below. PLEASE, NOTE: If your ${project.version} is a "-SNAPSHOT"
-            version, THIS will be used as your directory structure. If you do NOT want
-            this, simply remove the "-SNAPSHOT" from your <version> declaration at the
-            top of pom.xml -->
-        <distFilesRoot>/appl/${project.artifactId}/${project.version}</distFilesRoot>
-
+        <docker.location>${basedir}/target</docker.location>
+        <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
         <common.logging.groupid>org.onap.aai.logging-service</common.logging.groupid>
         <common.logging.version>1.2.2</common.logging.version>
-        <org.apache.httpcomponents.httpclient.version>4.5.2</org.apache.httpcomponents.httpclient.version>
 
-        <docker.location>${basedir}/target</docker.location>
-        <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
+        <version.com.google.guava>18.0</version.com.google.guava>
+        <version.org.apache.commons.commons-lang3>3.7</version.org.apache.commons.commons-lang3>
         <version.org.hamcrest.hamcrest-library>1.3</version.org.hamcrest.hamcrest-library>
+        <version.org.springframework.boot.spring-boot-dependencies>1.5.12.RELEASE</version.org.springframework.boot.spring-boot-dependencies>
     </properties>
 
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${version.org.springframework.boot.spring-boot-dependencies}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <dependencies>
         <dependency>
-            <groupId>com.sun.jersey</groupId>
-            <artifactId>jersey-core</artifactId>
-            <version>1.18.6</version>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jetty</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jersey</artifactId>
         </dependency>
 
         <dependency>
@@ -70,12 +87,6 @@ limitations under the License.
             <scope>provided</scope>
         </dependency>
 
-        <dependency>
-            <groupId>com.att.aft</groupId>
-            <artifactId>dme2</artifactId>
-            <version>3.1.200</version>
-            <scope>provided</scope>
-        </dependency>
 
         <dependency>
             <groupId>org.json</groupId>
@@ -83,12 +94,6 @@ limitations under the License.
             <version>20160212</version>
         </dependency>
 
-        <dependency>
-            <groupId>org.glassfish.jersey.core</groupId>
-            <artifactId>jersey-client</artifactId>
-            <version>2.23</version>
-        </dependency>
-
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
@@ -101,16 +106,30 @@ limitations under the License.
             <version>2.6.2</version>
         </dependency>
 
+         <dependency>
+          <groupId>com.google.guava</groupId>
+          <artifactId>guava</artifactId>
+          <version>${version.com.google.guava}</version>
+        </dependency>
+
         <dependency>
             <groupId>${common.logging.groupid}</groupId>
             <artifactId>common-logging</artifactId>
             <version>${common.logging.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>ch.qos.logback</groupId>
-            <artifactId>logback-core</artifactId>
-            <version>1.1.7</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-classic</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-core</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -119,10 +138,28 @@ limitations under the License.
             <version>2.6.2</version>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+            <version>3.7</version>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
-            <version>${org.apache.httpcomponents.httpclient.version}</version>
+            <version>4.5.5</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient-cache</artifactId>
+            <version>4.5.5</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>commons-logging</groupId>
+                    <artifactId>commons-logging</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -135,13 +172,28 @@ limitations under the License.
                     <groupId>org.apache.hbase</groupId>
                     <artifactId>hbase-client</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>org.apache.httpcomponents</groupId>
+                    <artifactId>httpclient</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>log4j</groupId>
+                    <artifactId>log4j</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>log4j</groupId>
+                    <artifactId>apache-log4j-extras</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-api</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
 
         <dependency>
             <groupId>org.hamcrest</groupId>
             <artifactId>hamcrest-library</artifactId>
-            <version>${version.org.hamcrest.hamcrest-library}</version>
             <scope>test</scope>
         </dependency>
 
@@ -169,6 +221,21 @@ limitations under the License.
     <build>
         <finalName>${project.artifactId}</finalName>
         <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <layout>ZIP</layout>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
@@ -200,11 +267,18 @@ limitations under the License.
                                 <resource>
                                     <directory>../champ-service-deps-titan/target/</directory>
                                 </resource>
+                                <resource>
+                                    <directory>${basedir}</directory>
+                                    <includes>
+                                        <include>**/dynamic/**/*</include>
+                                    </includes>
+                                </resource>
                             </resources>
                         </configuration>
                     </execution>
                 </executions>
             </plugin>
+
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
@@ -212,7 +286,7 @@ limitations under the License.
                     <skip>true</skip>
                 </configuration>
             </plugin>
-            <!-- Uncomment to add a license header to source files
+
             <plugin>
                 <groupId>com.mycila</groupId>
                 <artifactId>license-maven-plugin</artifactId>
@@ -221,18 +295,22 @@ limitations under the License.
                     <header>License.txt</header>
                     <includes>
                         <include>src/main/java/**</include>
+                        <include>src/test/java/**</include>
+                        <include>pom.xml</include>
                     </includes>
+                    <skipExistingHeaders>true</skipExistingHeaders>
                 </configuration>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>format</goal>
+                            <!-- Set goal to "format" to auto update license headers -->
+                            <goal>check</goal>
                         </goals>
                         <phase>process-sources</phase>
                     </execution>
                 </executions>
             </plugin>
-            -->
+
             <plugin>
                 <groupId>com.spotify</groupId>
                 <artifactId>docker-maven-plugin</artifactId>
@@ -248,6 +326,7 @@ limitations under the License.
                     <forceTags>true</forceTags>
                 </configuration>
             </plugin>
+
             <plugin>
                 <groupId>org.jacoco</groupId>
                 <artifactId>jacoco-maven-plugin</artifactId>
@@ -270,118 +349,4 @@ limitations under the License.
             </plugin>
         </plugins>
     </build>
-
-    <profiles>
-        <profile>
-            <id>runAjsc</id>
-            <build>
-                <defaultGoal>initialize</defaultGoal>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>exec-maven-plugin</artifactId>
-                        <version>1.3.2</version>
-                        <executions>
-                            <execution>
-                                <phase>initialize</phase>
-                                <goals>
-                                    <goal>java</goal>
-                                </goals>
-                                <configuration>
-                                    <includeProjectDependencies>false</includeProjectDependencies>
-                                    <includePluginDependencies>true</includePluginDependencies>
-                                    <executable>java</executable>
-                                    <mainClass>com.att.ajsc.runner.Runner</mainClass>
-                                    <executableDependency>
-                                        <groupId>com.att.ajsc</groupId>
-                                        <artifactId>ajsc-runner</artifactId>
-                                    </executableDependency>
-                                    <additionalClasspathElements>
-                                        <additionalClasspathElement>${basedir}/ajsc-shared-config/etc</additionalClasspathElement>
-                                    </additionalClasspathElements>
-
-                                    <environmentVariables>
-                                        <AJSC_HOME>${runAjscHome}</AJSC_HOME>
-                                    </environmentVariables>
-
-                                    <!-- Main AJSC System Properties below (necessary for proper startup) -->
-                                    <systemProperties>
-                                        <systemProperty>
-                                            <key>AJSC_HOME</key>
-                                            <value>${runAjscHome}</value>
-                                        </systemProperty>
-                                        <systemProperty>
-                                            <key>CONFIG_HOME</key>
-                                            <value>${basedir}/appconfig-local/</value>
-                                        </systemProperty>
-                                        <systemProperty>
-                                            <key>AJSC_CONF_HOME</key>
-                                            <value>${basedir}/bundleconfig-local</value>
-                                        </systemProperty>
-                                        <systemProperty>
-                                            <key>logback.configurationFile</key>
-                                            <value>${basedir}/ajsc-shared-config/etc/logback.xml</value>
-                                        </systemProperty>
-                                        <systemProperty>
-                                            <key>AJSC_SHARED_CONFIG</key>
-                                            <value>${basedir}/ajsc-shared-config</value>
-                                        </systemProperty>
-
-                                        <sysproperty>
-                                            <key>AJSC_EXTERNAL_LIB_FOLDERS</key>
-                                            <value>${basedir}/target/commonLibs</value>
-                                        </sysproperty>
-                                        <sysproperty>
-                                            <key>AJSC_EXTERNAL_PROPERTIES_FOLDERS</key>
-                                            <value>${basedir}/ajsc-shared-config/etc</value>
-                                        </sysproperty>
-
-                                        <systemProperty>
-                                            <key>AJSC_SERVICE_NAMESPACE</key>
-                                            <value>${module.ajsc.namespace.name}</value>
-                                        </systemProperty>
-                                        <systemProperty>
-                                            <key>AJSC_SERVICE_VERSION</key>
-                                            <value>${module.ajsc.namespace.version}</value>
-                                        </systemProperty>
-                                        <systemProperty>
-                                            <key>SOACLOUD_SERVICE_VERSION</key>
-                                            <value>${project.version}</value>
-                                        </systemProperty>
-                                        <systemProperty>
-                                            <key>server.port</key>
-                                            <value>${serverPort}</value>
-                                        </systemProperty>
-                                    </systemProperties>
-
-                                    <!-- Command Line Arguments to add to the java command. Here, you
-                                        can specify the port as well as the Context you want your service to run
-                                        in. Use context=/ to run in an unnamed Context (Root Context). The default
-                                        configuration of the AJSC is to run under the / Context. Setting the port
-                                        here can aid during the development phase of your service. However, you can
-                                        leave this argument out entirely, and the AJSC will default to using an Ephemeral
-                                        port. -->
-                                    <arguments>
-                                        <argument>context=/</argument>
-                                        <argument>port=${serverPort}</argument>
-                                        <argument>sslport=${sslport}</argument>
-                                    </arguments>
-                                </configuration>
-                            </execution>
-                        </executions>
-                        <configuration>
-                            <executable>java</executable>
-                        </configuration>
-                        <dependencies>
-                            <dependency>
-                                <groupId>com.att.ajsc</groupId>
-                                <artifactId>ajsc-runner</artifactId>
-                                <version>${ajscRuntimeVersion}</version>
-                            </dependency>
-                        </dependencies>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>
diff --git a/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/conf/jaxrsBeans.groovy b/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/conf/jaxrsBeans.groovy
deleted file mode 100644 (file)
index 17d80a4..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-beans{
-       xmlns cxf: "http://camel.apache.org/schema/cxf"
-       xmlns jaxrs: "http://cxf.apache.org/jaxrs"
-       xmlns util: "http://www.springframework.org/schema/util"
-       
-       echoService(org.onap.champ.service.EchoService)
-       
-       util.list(id: 'echoServices') {
-               ref(bean:'echoService')
-       }
-}
\ No newline at end of file
diff --git a/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/docs/README.txt b/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/docs/README.txt
deleted file mode 100644 (file)
index 3707179..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Place any docs here that you want to access within the ajsc upon deployment of your service.
diff --git a/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/lib/README.txt b/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/lib/README.txt
deleted file mode 100644 (file)
index 639e21b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-3rd party JAR's needed by your jars (if any) for a ajsc deployment package go here...
\ No newline at end of file
diff --git a/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/routes/champ.route b/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/routes/champ.route
deleted file mode 100644 (file)
index cf8d115..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<route xmlns="http://camel.apache.org/schema/spring" trace="true">
-  <from uri="att-dme2-servlet:///champ-service/v1/?matchOnUriPrefix=true" />
-  <to uri="cxfbean:champRestService" />
-</route>
\ No newline at end of file
diff --git a/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/routes/jaxrsExample.route b/champ-service/src/main/ajsc/champ-service_v1/champ-service/v1/routes/jaxrsExample.route
deleted file mode 100644 (file)
index a132030..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<route xmlns="http://camel.apache.org/schema/spring" trace="true">
-  <from uri="att-dme2-servlet:///echo-service/?matchOnUriPrefix=true" />
-  <to uri="cxfbean:echoServices" />
-</route>
-
index de8a4fb..d82d438 100644 (file)
 # ECOMP is a trademark and service mark of AT&T Intellectual Property.
 #
 
-
-BASEDIR="/opt/app/champ-service/"
-AJSC_HOME="$BASEDIR"
-AJSC_CONF_HOME="$AJSC_HOME/bundleconfig/"
+APP_HOME="/opt/app/champ-service"
+GRAPH_DEPS_HOME="${APP_HOME}/graph-deps"
 
 if [ -z "$CONFIG_HOME" ]; then
-        echo "CONFIG_HOME must be set in order to start up process"
-        exit 1
+    echo "CONFIG_HOME must be set in order to start up process"
+    exit 1
 fi
 
 if [ -z "$KEY_STORE_PASSWORD" ]; then
-        echo "KEY_STORE_PASSWORD must be set in order to start up process"
-        exit 1
-else
-        echo "KEY_STORE_PASSWORD=$KEY_STORE_PASSWORD\n" >> $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
-fi
-
-if [ -z "$KEY_MANAGER_PASSWORD" ]; then
-        echo "KEY_MANAGER_PASSWORD must be set in order to start up process"
-        exit 1
-else
-        echo "KEY_MANAGER_PASSWORD=$KEY_MANAGER_PASSWORD\n" >> $AJSC_CONF_HOME/etc/sysprops/sys-props.properties
+    echo "KEY_STORE_PASSWORD must be set in order to start up process"
+    exit 1
 fi
 
-# Add any spring bean configuration files to the Gizmo deployment
-if [ -n "$SERVICE_BEANS" ]; then
-        echo "Adding the following dynamic service beans to the deployment: "
-        mkdir -p /tmp/champ-service/v1/conf
-        for f in `ls $SERVICE_BEANS`
-        do
-                cp $SERVICE_BEANS/$f /tmp/champ-service/v1/conf
-                echo "Adding dynamic service bean $SERVICE_BEANS/$f"
-        done
-        jar uf /opt/app/champ-service/services/champ-service_v1.zip* -C /tmp/ champ-service
-        rm -rf /tmp/champ-service
+if [ -z "$SERVICE_BEANS" ]; then
+    echo "SERVICE_BEANS must be set in order to start up process"
+    exit 1
 fi
 
-CLASSPATH="$AJSC_HOME/lib/*"
-CLASSPATH="$CLASSPATH:$AJSC_HOME/extJars/"
-CLASSPATH="$CLASSPATH:$AJSC_HOME/etc/"
-
-# Check to see if the provided implementation exists in the image and add it to the classpath
-for file in $( find ${BASEDIR}graph-deps/* -maxdepth 0 -type d ); do
-        CURRIMPL=$(echo $file | cut -d"/" -f6)
-        if [ "x$GRAPHIMPL" = "x$CURRIMPL" ]; then
-                CLASSPATH_GRAPHIMPL=$file
-                echo "Setting up graph implementation of $GRAPHIMPL"
-        else
-                SUPPORTED_GRAPHIMPL="$SUPPORTED_GRAPHIMPL $CURRIMPL"
-        fi
+for dir in $( find ${GRAPH_DEPS_HOME}/* -maxdepth 0 -type d ); do
+    CURRIMPL=$(basename $dir)
+    if [ "x$GRAPHIMPL" = "x$CURRIMPL" ]; then
+        GRAPHIMPL_DEPS="${GRAPH_DEPS_HOME}/${GRAPHIMPL}"
+        echo "Setting up graph implementation to $GRAPHIMPL"
+    else
+        SUPPORTED_GRAPHIMPL="$SUPPORTED_GRAPHIMPL $CURRIMPL"
+    fi
 done
-if [ -n "$CLASSPATH_GRAPHIMPL" ]; then
-        cp $CLASSPATH_GRAPHIMPL/* $AJSC_HOME/extJars/
-else
-        echo "Configured graph implementation '$GRAPHIMPL' is not supported. Acceptable implementations are one of: $SUPPORTED_GRAPHIMPL"
-        exit 1
+
+if [ -z "$GRAPHIMPL_DEPS" ]; then
+    echo "Configured graph implementation '$GRAPHIMPL' is not supported. Acceptable implementations are one of: $SUPPORTED_GRAPHIMPL"
+    exit 1
 fi
 
-PROPS="-DAJSC_HOME=$AJSC_HOME"
-PROPS="$PROPS -DAJSC_CONF_HOME=$BASEDIR/bundleconfig/"
-PROPS="$PROPS -Dlogback.configurationFile=$BASEDIR/bundleconfig/etc/logback.xml"
-PROPS="$PROPS -DAJSC_SHARED_CONFIG=$AJSC_CONF_HOME"
-PROPS="$PROPS -DAJSC_SERVICE_NAMESPACE=champ-service"
-PROPS="$PROPS -DAJSC_SERVICE_VERSION=v1"
-PROPS="$PROPS -Dserver.port=9522"
+PROPS="-DAPP_HOME=$APP_HOME"
 PROPS="$PROPS -DCONFIG_HOME=$CONFIG_HOME"
+PROPS="$PROPS -DKEY_STORE_PASSWORD=$KEY_STORE_PASSWORD"
 JVM_MAX_HEAP=${MAX_HEAP:-1024}
 
-echo $CLASSPATH
-
-exec java -Xmx${JVM_MAX_HEAP}m $PROPS -classpath $CLASSPATH com.att.ajsc.runner.Runner context=// sslport=9522
+set -x
+exec java -Xmx${JVM_MAX_HEAP}m $PROPS -Dloader.path="${GRAPHIMPL_DEPS}" -jar "${APP_HOME}/champ-service.jar"
diff --git a/champ-service/src/main/java/org/onap/champ/ChampApplication.java b/champ-service/src/main/java/org/onap/champ/ChampApplication.java
new file mode 100644 (file)
index 0000000..bc74469
--- /dev/null
@@ -0,0 +1,46 @@
+/**
+ * ============LICENSE_START==========================================
+ * org.onap.aai
+ * ===================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ */
+package org.onap.champ;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.eclipse.jetty.util.security.Password;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.support.SpringBootServletInitializer;
+import org.springframework.context.annotation.ImportResource;
+
+@SpringBootApplication
+@ImportResource({"file:${SERVICE_BEANS}/*.xml"})
+public class ChampApplication extends SpringBootServletInitializer {
+
+    public static void main(String[] args) {
+        String keyStorePassword = System.getProperty("KEY_STORE_PASSWORD");
+        if (keyStorePassword == null || keyStorePassword.isEmpty()) {
+            throw new RuntimeException("Environment property KEY_STORE_PASSWORD not set");
+        }
+
+        Map<String, Object> props = new HashMap<>();
+        props.put("server.ssl.key-store-password", Password.deobfuscate(keyStorePassword));
+        new ChampApplication().configure(new SpringApplicationBuilder(ChampApplication.class).properties(props))
+                .run(args);
+    }
+}
index b75ba53..1a68027 100644 (file)
@@ -27,7 +27,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Timer;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.DELETE;
@@ -44,7 +43,6 @@ import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.core.UriInfo;
-
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.onap.aai.champcore.ChampTransaction;
@@ -67,12 +65,11 @@ import org.onap.champ.service.logging.ChampMsgs;
 import org.onap.champ.service.logging.LoggingUtil;
 import org.onap.champ.util.ChampProperties;
 import org.onap.champ.util.ChampServiceConstants;
-
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.module.SimpleModule;
 
-@Path(value = "/")
+@Path(value = "/services/champ-service/v1/")
 public class ChampRESTAPI {
 
   private ObjectMapper mapper;
@@ -88,7 +85,7 @@ public class ChampRESTAPI {
   public ChampRESTAPI(ChampDataService champDataService, ChampAsyncRequestProcessor champAsyncRequestProcessor) {
     this.champDataService = champDataService;
 
-    // Async request handling is optional.  
+    // Async request handling is optional.
     if (champAsyncRequestProcessor != null) {
       timer = new Timer("ChampAsyncRequestProcessor-1");
       timer.schedule(champAsyncRequestProcessor, champAsyncRequestProcessor.getRequestPollingTimeSeconds(),
diff --git a/champ-service/src/main/java/org/onap/champ/JerseyConfig.java b/champ-service/src/main/java/org/onap/champ/JerseyConfig.java
new file mode 100644 (file)
index 0000000..f72a2e4
--- /dev/null
@@ -0,0 +1,35 @@
+/**
+ * ============LICENSE_START==========================================
+ * org.onap.aai
+ * ===================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ */
+package org.onap.champ;
+
+import org.glassfish.jersey.server.ResourceConfig;
+import org.springframework.stereotype.Component;
+
+/**
+ * Registers Crud Rest interface as JAX-RS endpoints.
+ */
+@Component
+public class JerseyConfig extends ResourceConfig {
+
+    public JerseyConfig(ChampRESTAPI champRestApi) {
+        register(champRestApi);
+    }
+}
diff --git a/champ-service/src/main/resources/application.properties b/champ-service/src/main/resources/application.properties
new file mode 100644 (file)
index 0000000..07d7e08
--- /dev/null
@@ -0,0 +1,11 @@
+server.port=9522
+
+SERVICE_BEANS=dynamic/conf
+
+server.ssl.key-store=${CONFIG_HOME}/auth/tomcat_keystore
+server.ssl.key-store-type=JKS
+server.ssl.enabled=true
+server.ssl.client-auth=need
+server.ssl.key-store-password=${KEY_STORE_PASSWORD}
+
+logging.config=classpath:logback.xml
@@ -25,7 +25,7 @@
   <!--<jmxConfigurator /> -->
   <!-- directory path for all other type logs -->
   
-  <property name="logDir"  value="${AJSC_HOME}/logs" />
+  <property name="logDir"  value="${APP_HOME}/logs" />
   
   
   <!--  specify the component name 
     <appender-ref ref="asyncEELFDebug" />
   </logger>
 
+<!--
   <logger name="com.att.eelf.security" level="info" additivity="false">
     <appender-ref ref="asyncEELFSecurity" /> 
   </logger>
   <logger name="com.att.eelf.policy" level="info" additivity="false">
     <appender-ref ref="asyncEELFPolicy" />
   </logger>
+-->
+
   <logger name="com.att.eelf.audit" level="info" additivity="false">
     <appender-ref ref="asyncEELFAudit" />
   </logger>
   <logger name="com.att.eelf.metrics" level="info" additivity="false">
     <appender-ref ref="asyncEELFMetrics" />
   </logger>
-  
+
   <!-- Spring related loggers -->
   <logger name="org.springframework" level="WARN" />
   <logger name="org.springframework.beans" level="WARN" />
index 5c39f99..4d30901 100644 (file)
@@ -1,3 +1,23 @@
+/**
+ * ============LICENSE_START==========================================
+ * org.onap.aai
+ * ===================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ */
 package org.onap.champ.event;
 
 import static org.hamcrest.Matchers.is;
index b9924e4..65597fe 100644 (file)
@@ -1,3 +1,23 @@
+/**
+ * ============LICENSE_START==========================================
+ * org.onap.aai
+ * ===================================================================
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ */
 package org.onap.champ.util;
 
 import java.io.File;
@@ -10,25 +30,25 @@ import java.nio.file.Paths;
 
 public class TestUtil {
 
-       public static Path getPath(String resourceFilename) throws URISyntaxException {
-               URL resource = ClassLoader.getSystemResource(resourceFilename);
-               if (resource != null) {
-                       return Paths.get(resource.toURI());
-               }
+    public static Path getPath(String resourceFilename) throws URISyntaxException {
+        URL resource = ClassLoader.getSystemResource(resourceFilename);
+        if (resource != null) {
+            return Paths.get(resource.toURI());
+        }
 
-               // If the resource is not found relative to the classpath, try to get it from the file system directly.
-               File file = new File(resourceFilename);
-               if (!file.exists()) {
-                       throw new RuntimeException("Resource does not exist: " + resourceFilename);
-               }
-               return file.toPath();
-       }
+        // If the resource is not found relative to the classpath, try to get it from the file system directly.
+        File file = new File(resourceFilename);
+        if (!file.exists()) {
+            throw new RuntimeException("Resource does not exist: " + resourceFilename);
+        }
+        return file.toPath();
+    }
 
-       public static String getContentUtf8(Path filePath) throws IOException {
-               return new String(Files.readAllBytes(filePath));
-       }
+    public static String getContentUtf8(Path filePath) throws IOException {
+        return new String(Files.readAllBytes(filePath));
+    }
 
-       public static String getFileAsString(String resourceFilename) throws IOException, URISyntaxException {
-               return getContentUtf8(getPath(resourceFilename));
-       }
-}
\ No newline at end of file
+    public static String getFileAsString(String resourceFilename) throws IOException, URISyntaxException {
+        return getContentUtf8(getPath(resourceFilename));
+    }
+}