Bump version to 1.17.07-SNAPSHOT
[honeycomb.git] / common / minimal-distribution-parent / pom.xml
index cdaf925..f191fda 100644 (file)
 <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>io.fd.honeycomb.common</groupId>
+        <artifactId>impl-parent</artifactId>
+        <version>1.17.07-SNAPSHOT</version>
+        <relativePath>../impl-parent</relativePath>
+    </parent>
+
     <modelVersion>4.0.0</modelVersion>
-    <groupId>io.fd.honeycomb.common</groupId>
     <artifactId>minimal-distribution-parent</artifactId>
-    <version>1.16.12-SNAPSHOT</version>
+    <name>${project.artifactId}</name>
+    <version>1.17.07-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>
-        <nexusproxy>http://nexus.fd.io/content</nexusproxy>
-        <!--<main.class>Main</main.class>-->
         <exec.parameters>-Xms32m -Xmx128m -XX:MetaspaceSize=32m -XX:MaxMetaspaceSize=128m</exec.parameters>
         <exec.parameters.minimal>-client -Xms20m -Xmx32m -XX:MetaspaceSize=5m -XX:MaxMetaspaceSize=32m -XX:MaxMetaspaceExpansion=1m -Xss512k -XX:+UseSerialGC -Djava.compiler=NONE -Xverify:none -noverify</exec.parameters.minimal>
-        <debug.parameters>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005</debug.parameters>
-        <guice.version>4.1.0</guice.version>
-        <guice.config.version>1.2.0</guice.config.version>
-        <restconf.version>1.3.2-Beryllium-SR2</restconf.version>
-        <netconf.version>1.0.2-Beryllium-SR2</netconf.version>
+
+        <!-- Jersey versions to run RESTCONF-->
         <jersey.version>1.19.1</jersey.version>
         <jetty.version>9.3.11.v20160721</jetty.version>
         <servlet.version>3.1.0</servlet.version>
-        <yangtools.version>0.8.2-Beryllium-SR2</yangtools.version>
-        <mdsal.controller.version>1.3.2-Beryllium-SR2</mdsal.controller.version>
-        <mdsal.version>2.0.2-Beryllium-SR2</mdsal.version>
         <!-- Used by mdsal as provided/runtime dependency-->
         <osgi.core.version>5.0.0</osgi.core.version>
+        <!-- Use /dev/urandom instead of /dev/random during tests to speed up execution
+            http://stackoverflow.com/questions/137212/how-to-solve-performance-problem-with-java-securerandom
+        -->
+        <random.seed.file>/dev/./urandom</random.seed.file>
     </properties>
 
     <dependencyManagement>
         <dependencies>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>mdsal-artifacts</artifactId>
-                <version>${mdsal.controller.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.mdsal</groupId>
-                <artifactId>mdsal-artifacts</artifactId>
-                <version>${mdsal.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.netconf</groupId>
-                <artifactId>netconf-artifacts</artifactId>
-                <version>${netconf.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.netconf</groupId>
-                <artifactId>restconf-artifacts</artifactId>
-                <version>${restconf.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.yangtools</groupId>
-                <artifactId>yangtools-artifacts</artifactId>
-                <version>${yangtools.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <!-- DI -->
-            <dependency>
-                <groupId>com.google.inject</groupId>
-                <artifactId>guice</artifactId>
-                <version>${guice.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>net.jmob</groupId>
-                <artifactId>guice.conf</artifactId>
-                <version>${guice.config.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.google.inject.extensions</groupId>
-                <artifactId>guice-multibindings</artifactId>
-                <version>${guice.version}</version>
-            </dependency>
             <!-- Jersey + Jetty for RESTCONF -->
             <dependency>
                 <groupId>org.eclipse.jetty</groupId>
     <build>
         <pluginManagement>
             <plugins>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>3.3</version>
-                    <configuration>
-                        <!-- Use google's error-prone static analysis-->
-                        <compilerId>javac-with-errorprone</compilerId>
-                        <forceJavacCompilerUse>true</forceJavacCompilerUse>
-                        <showWarnings>true</showWarnings>
-                        <source>1.8</source>
-                        <target>1.8</target>
-                    </configuration>
-                    <dependencies>
-                        <dependency>
-                            <groupId>org.codehaus.plexus</groupId>
-                            <artifactId>plexus-compiler-javac-errorprone</artifactId>
-                            <version>2.5</version>
-                        </dependency>
-                        <!-- override plexus-compiler-javac-errorprone's dependency on
-                             Error Prone with the latest version -->
-                        <dependency>
-                            <groupId>com.google.errorprone</groupId>
-                            <artifactId>error_prone_core</artifactId>
-                            <version>2.0.9</version>
-                        </dependency>
-                    </dependencies>
-                </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-jar-plugin</artifactId>
                                 <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout>
                             </manifest>
                             <manifestEntries>
-                                <Class-Path>config/ cert/</Class-Path>
+                                <Class-Path>config/ cert/ modules/</Class-Path>
                             </manifestEntries>
                         </archive>
                     </configuration>
                 </plugin>
 
                 <!-- Generate shell script -->
+                <!-- Extract modules started by distribution -->
                 <plugin>
                     <groupId>org.codehaus.gmaven</groupId>
                     <artifactId>groovy-maven-plugin</artifactId>
-                    <version>2.0</version>
                     <executions>
                         <execution>
+                            <id>start-scripts-generation</id>
                             <phase>package</phase>
                             <goals>
                                 <goal>execute</goal>
                             </goals>
                             <configuration>
-                                <!-- TODO HONEYCOMB-157 Make scripts more robust -->
                                 <source>
-                                    import java.nio.file.Paths
-
-                                    log.info "Generating shell exec script"
-                                    def args = properties.getOrDefault("exec.parameters", "")
-                                    log.debug "Additional shell exec script properties: ${args}"
-                                    def javaArgs = "${args} -jar \$(dirname \$0)/${project.artifactId}-${project.version}.jar"
-                                    def scriptParent = Paths.get(project.build.outputDirectory, "honeycomb-minimal-resources")
-                                    scriptParent.toFile().mkdirs()
-                                    def scriptContent = "#!/bin/sh -\njava " + javaArgs
-                                    log.info "Generating shell exec script as ${scriptContent}"
-                                    def scriptPath = Paths.get(scriptParent.toString(), "honeycomb")
-                                    log.info "Writing shell exec script to ${scriptPath}"
-                                    scriptPath.toFile().text = scriptContent
-                                    scriptPath.toFile().setExecutable(true)
-
-                                    scriptPath = Paths.get(scriptParent.toString(), "honeycomb-start")
-                                    log.info "Writing shell exec script to ${scriptPath}"
-                                    scriptPath.toFile().text = scriptContent + " &amp;"
-                                    scriptPath.toFile().setExecutable(true)
-
-                                    def debug_args = properties.getOrDefault("debug.parameters", "")
-                                    def debugScriptContent = "#!/bin/sh -\njava" + " ${debug_args} " + javaArgs
-                                    log.info "Generating shell debug script as ${debugScriptContent}"
-                                    scriptPath = Paths.get(scriptParent.toString(), "honeycomb-debug")
-                                    log.info "Writing shell debug script to ${scriptPath}"
-                                    scriptPath.toFile().text = debugScriptContent
-                                    scriptPath.toFile().setExecutable(true)
+                                    io.fd.honeycomb.common.scripts.StartupScriptGenerator.generate(project, properties, log)
+                                </source>
+                            </configuration>
+                        </execution>
+                        <execution>
+                            <id>distribution-module-assembly</id>
+                            <!-- phase changed from package to earlier phase to generate module descriptor before distribution jar is created,
+                             to include descriptor in the jar,to be accessible to children distributions-->
+                            <phase>prepare-package</phase>
+                            <goals>
+                                <goal>execute</goal>
+                            </goals>
+                            <configuration>
+                                <source>
+                                    io.fd.honeycomb.common.scripts.ModulesListGenerator.generate(project, properties, log)
                                 </source>
                             </configuration>
                         </execution>
                     </executions>
+                    <dependencies>
+                        <dependency>
+                            <groupId>io.fd.honeycomb.common</groupId>
+                            <artifactId>common-scripts</artifactId>
+                            <version>1.17.07-SNAPSHOT</version>
+                        </dependency>
+                    </dependencies>
                 </plugin>
 
                 <!-- Build archives -->
                         <dependency>
                             <groupId>io.fd.honeycomb.common</groupId>
                             <artifactId>minimal-assembly-descriptor</artifactId>
-                            <version>1.16.12-SNAPSHOT</version>
+                            <version>1.17.07-SNAPSHOT</version>
                         </dependency>
                     </dependencies>
                     <executions>
                         </execution>
                     </executions>
                 </plugin>
+
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <configuration>
+                        <!--http://stackoverflow.com/questions/18107375/getting-skipping-jacoco-execution-due-to-missing-execution-data-file-upon-exec-->
+                        <argLine>${argLine} -Djava.security.egd=file:${random.seed.file}</argLine>
+                    </configuration>
+                </plugin>
             </plugins>
         </pluginManagement>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.gmaven</groupId>
+                <artifactId>groovy-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+            </plugin>
+        </plugins>
     </build>
-
-    <distributionManagement>
-        <repository>
-            <id>fdio-release</id>
-            <url>${nexusproxy}/repositories/fd.io.release/</url>
-        </repository>
-        <snapshotRepository>
-            <id>fdio-snapshot</id>
-            <url>${nexusproxy}/repositories/fd.io.snapshot/</url>
-        </snapshotRepository>
-    </distributionManagement>
 </project>