Merge full and lite profiles and create one jar for both.

Default: full version. Enable lite version with option --lite

java -jar target/Kustvakt-0.80-SNAPSHOT.jar --lite

Change-Id: I640869ed09512504cc4e5411b0ac1f797cea2113
diff --git a/Changes b/Changes
index 1ba881e..7e88b0c 100644
--- a/Changes
+++ b/Changes
@@ -19,6 +19,8 @@
 - Fix authorization with POST tests.
 - Add apiVersion for checking VC in caching process (#806)
 - Update system-vc and fix get statistics with VC reference test.
+- Merge full and lite profiles and create one jar for both. 
+
 
 # version 0.79.1
 
diff --git a/pom.xml b/pom.xml
index 5723592..47c2b01 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,6 +22,7 @@
 		<!-- Align JBoss Logging with Hibernate Validator 9 requirements -->
 		<jboss.logging.version>3.6.1.Final</jboss.logging.version>
 	</properties>
+	<!--
 	<profiles>
 		<profile>
 			<id>full</id>
@@ -34,7 +35,6 @@
 						<artifactId>maven-shade-plugin</artifactId>
 						<version>3.6.1</version>
 						<executions>
-							<!-- option 1 -->
 							<execution>
 								<id>full</id>
 								<phase>package</phase>
@@ -42,7 +42,7 @@
 									<goal>shade</goal>
 								</goals>
 								<configuration>
-									<finalName>Kustvakt-full-${project.version}</finalName>
+									<finalName>Kustvakt-${project.version}</finalName>
 									<transformers>
 										<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
 										<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
@@ -97,7 +97,7 @@
 						<artifactId>maven-shade-plugin</artifactId>
 						<version>3.6.1</version>
 						<executions>
-							<!--option 2 -->
+							
 							<execution>
 								<id>lite</id>
 								<phase>package</phase>
@@ -154,6 +154,7 @@
 		</profile>
 
 	</profiles>
+	-->
 	<build>
 		<resources>
 			<resource>
@@ -180,6 +181,60 @@
 			</testResource>
 		</testResources>
 		<plugins>
+			<plugin>
+				<artifactId>maven-shade-plugin</artifactId>
+				<version>3.6.1</version>
+				<executions>
+					<!-- option 1 -->
+					<execution>
+						<!--<id>full</id>-->
+						<phase>package</phase>
+						<goals>
+							<goal>shade</goal>
+						</goals>
+						<configuration>
+							<finalName>Kustvakt-${project.version}</finalName>
+							<transformers>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+									<mainClass>
+										de.ids_mannheim.korap.server.KustvaktServer
+									</mainClass>
+									<manifestEntries>
+										<Multi-Release>true</Multi-Release>
+									</manifestEntries>
+								</transformer>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+									<resource>META-INF/spring.handlers</resource>
+								</transformer>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+									<resource>META-INF/spring.schemas</resource>
+								</transformer>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+									<resource>META-INF/spring/aot.factories</resource>
+								</transformer>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+									<resource>META-INF/hk2-locator/default</resource>
+								</transformer>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
+									<resource>META-INF/spring.tooling</resource>
+								</transformer>
+							</transformers>
+							<filters>
+								<filter>
+									<artifact>*:*</artifact>
+									<excludes>
+										<!--<exclude>db/lite/**</exclude>-->
+										<exclude>META-INF/*.SF</exclude>
+						                <exclude>META-INF/*.DSA</exclude>
+						                <exclude>META-INF/*.RSA</exclude>
+									</excludes>
+								</filter>
+							</filters>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
 			<!-- Formatter plugin for Eclipse based coding conventions http://maven-java-formatter-plugin.googlecode.com/svn/site/0.4/usage.html -->
 			<plugin>
 				<groupId>com.googlecode.maven-java-formatter-plugin</groupId>
diff --git a/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java b/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
index e2613ce..a600c81 100644
--- a/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
+++ b/src/main/java/de/ids_mannheim/korap/core/web/controller/SearchController.java
@@ -20,6 +20,7 @@
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.oauth2.service.OAuth2ScopeService;
 import de.ids_mannheim.korap.security.context.TokenContext;
+import de.ids_mannheim.korap.server.KustvaktBaseServer;
 import de.ids_mannheim.korap.utils.JsonUtils;
 import de.ids_mannheim.korap.utils.ServiceInfo;
 import de.ids_mannheim.korap.web.KustvaktResponseHandler;
@@ -89,10 +90,15 @@
     @Path("{version}/info")
     @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
     public Response info () {
+    	String kustvaktVersion = "full";
+    	if (KustvaktBaseServer.kargs != null && KustvaktBaseServer.kargs.isLite())
+    		kustvaktVersion = "lite";
+    		
         Map<String, Object> m = new HashMap<>();
         m.put("latest_api_version", config.getCurrentVersion());
         m.put("supported_api_versions", config.getSupportedVersions());
-        m.put("kustvakt_version", ServiceInfo.getInfo().getVersion());
+        m.put("kustvakt_version", kustvaktVersion + "-" + 
+        		ServiceInfo.getInfo().getVersion());
         m.put("krill_version", searchService.getKrillVersion());
         m.put("koral_version", ServiceInfo.getInfo().getKoralVersion());
         try {
diff --git a/src/main/java/de/ids_mannheim/korap/server/KustvaktBaseServer.java b/src/main/java/de/ids_mannheim/korap/server/KustvaktBaseServer.java
index 7465bcf..0f0b68f 100644
--- a/src/main/java/de/ids_mannheim/korap/server/KustvaktBaseServer.java
+++ b/src/main/java/de/ids_mannheim/korap/server/KustvaktBaseServer.java
@@ -48,7 +48,7 @@
     protected static String springConfig = "default-config.xml";
 
     protected static String rootPackages;
-    protected static KustvaktArgs kargs;
+    public static KustvaktArgs kargs;
 
     public KustvaktBaseServer () {
         rootPackages = "de.ids_mannheim.korap.core.web;"
@@ -66,6 +66,14 @@
         KustvaktArgs kargs = new KustvaktArgs();
         for (int i = 0; i < args.length; i++) {
             switch ((args[i])) {
+            	case "--lite":
+                    kargs.setLite(true);     
+                    springConfig = "default-lite-config.xml";
+                    rootPackages = "de.ids_mannheim.korap.core.web; "
+                            + "de.ids_mannheim.korap.web.filter; "
+                            + "de.ids_mannheim.korap.web.utils; "
+                            + "com.fasterxml.jackson.jaxrs.json;";
+                    break;
                 case "--spring-config":
                     kargs.setSpringConfig(args[i + 1]);
                     break;
@@ -231,10 +239,21 @@
         @Getter
         private String springConfig;
         private int port;
+        private boolean isLite;
 
         public KustvaktArgs () {
             this.port = -1;
             this.springConfig = null;
+            this.isLite = false;
         }
+        
+        public boolean isLite () {
+			return isLite;
+		}
+        
+        public void setLite (boolean isLite) {
+			this.isLite = isLite;
+
+		}
     }
 }
diff --git a/src/main/java/de/ids_mannheim/korap/server/KustvaktServer.java b/src/main/java/de/ids_mannheim/korap/server/KustvaktServer.java
index 129cda2..7051c3e 100644
--- a/src/main/java/de/ids_mannheim/korap/server/KustvaktServer.java
+++ b/src/main/java/de/ids_mannheim/korap/server/KustvaktServer.java
@@ -17,7 +17,12 @@
         if (kargs == null)
             System.exit(0);
 
-        server.loadProperties("data/kustvakt.conf", "kustvakt.conf");
+        if (kargs.isLite()) {
+        	server.loadProperties("data/kustvakt-lite.conf", "kustvakt-lite.conf");
+        }
+        else {
+        	server.loadProperties("data/kustvakt.conf", "kustvakt.conf");
+        }
         server.start();
     }
 }
diff --git a/src/test/java/de/ids_mannheim/korap/config/LiteJerseyTest.java b/src/test/java/de/ids_mannheim/korap/config/LiteJerseyTest.java
index a4edbd1..fa0f1ca 100644
--- a/src/test/java/de/ids_mannheim/korap/config/LiteJerseyTest.java
+++ b/src/test/java/de/ids_mannheim/korap/config/LiteJerseyTest.java
@@ -16,6 +16,9 @@
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.web.context.support.GenericWebApplicationContext;
 
+import de.ids_mannheim.korap.server.KustvaktBaseServer;
+import de.ids_mannheim.korap.server.KustvaktBaseServer.KustvaktArgs;
+
 @ExtendWith(SpringExtension.class)
 @ContextConfiguration("classpath:test-config-lite.xml")
 public abstract class LiteJerseyTest extends JerseyTest {
@@ -51,10 +54,15 @@
 
     @Override
     protected DeploymentContext configureDeployment () {
+    	 KustvaktArgs ka = new KustvaktArgs();
+    	 ka.setLite(true);
+    	 KustvaktBaseServer.kargs = ka;
+    	
         return ServletDeploymentContext
                 .forServlet(new ServletContainer(
                         new ResourceConfig().packages(classPackages)))
                 .addListener(StaticContextLoaderListener.class)
-                .contextParam("adminToken", "secret").build();
+                .contextParam("adminToken", "secret")
+                .build();
     }
 }
diff --git a/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java b/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
index 2bed357..68a0cc8 100644
--- a/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
+++ b/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
@@ -18,6 +18,9 @@
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.web.context.support.GenericWebApplicationContext;
 
+import de.ids_mannheim.korap.server.KustvaktBaseServer;
+import de.ids_mannheim.korap.server.KustvaktBaseServer.KustvaktArgs;
+
 @DirtiesContext(classMode = ClassMode.BEFORE_CLASS)
 @ExtendWith(SpringExtension.class)
 @ContextConfiguration("classpath:test-config.xml")
@@ -63,6 +66,9 @@
 
     @Override
     protected DeploymentContext configureDeployment () {
+    	KustvaktArgs ka = new KustvaktArgs();
+       	ka.setLite(false);
+       	KustvaktBaseServer.kargs = ka;
         return ServletDeploymentContext
                 .forServlet(new ServletContainer(
                         new ResourceConfig().packages(classPackages)))
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/InfoControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/InfoControllerTest.java
index d8e5416..847de71 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/InfoControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/InfoControllerTest.java
@@ -35,7 +35,7 @@
                 node.at("/latest_api_version").asText());
         assertEquals(config.getSupportedVersions().size(),
                 node.at("/supported_api_versions").size());
-        assertEquals(ServiceInfo.getInfo().getVersion(),
+        assertEquals("full-"+ServiceInfo.getInfo().getVersion(),
                 node.at("/kustvakt_version").asText());
         assertEquals(krill.getIndex().getVersion(),
                 node.at("/krill_version").asText());
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerAdminTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerAdminTest.java
index 34e9c9a..db790ed 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerAdminTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusControllerAdminTest.java
@@ -75,6 +75,7 @@
         assertEquals(Status.CREATED.getStatusCode(), response.getStatus());
         JsonNode node = testAdminListVC_UsingAdminToken("system",
                 ResourceType.SYSTEM);
+        System.out.println(node.toPrettyString());
         assertEquals(2, node.size());
         testDeleteSystemVC(admin, "new-system-vc");
     }
diff --git a/src/test/java/de/ids_mannheim/korap/web/lite/InfoControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/lite/InfoControllerTest.java
index 27054fd..20f8672 100644
--- a/src/test/java/de/ids_mannheim/korap/web/lite/InfoControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/lite/InfoControllerTest.java
@@ -35,7 +35,7 @@
                 node.at("/latest_api_version").asText());
         assertEquals(config.getSupportedVersions().size(),
                 node.at("/supported_api_versions").size());
-        assertEquals(ServiceInfo.getInfo().getVersion(),
+        assertEquals("lite-"+ServiceInfo.getInfo().getVersion(),
                 node.at("/kustvakt_version").asText());
         assertEquals(krill.getIndex().getVersion(),
                 node.at("/krill_version").asText());