diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2017-03-17 14:42:56 +0100 |
---|---|---|
committer | Jan Srnicek <jsrnicek@cisco.com> | 2017-03-24 08:03:43 +0000 |
commit | c7299c6ea39c1888a3497a889ee9b55c44b54dac (patch) | |
tree | 91bc7c9b22eaf2118857351052bddfaeb304fb95 /common | |
parent | 66f5caa2704503335cbce2a42bad3d99bd205f88 (diff) |
Add hc2vpp common parents
- provides single root (hc2vpp-parent) for all projects to make
site plugin work
- fixes relative links in child poms
- adds missing project names
Partially based on https://gerrit.fd.io/r/#/c/4720
To test:
- mvn clean install && mvn site site:stage
- open
hc2vpp/target/staging/hc2vpp-parent/hc2vpp-aggregator/index.html
Change-Id: Ife5a8555748221cd8bcc8ad2fa48f1d0e98fff1d
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/api-parent/asciidoc/Readme.adoc | 3 | ||||
-rw-r--r-- | common/api-parent/pom.xml | 110 | ||||
-rw-r--r-- | common/asciidoc/Readme.adoc | 3 | ||||
-rw-r--r-- | common/hc2vpp-parent/asciidoc/Readme.adoc | 3 | ||||
-rw-r--r-- | common/hc2vpp-parent/pom.xml | 19 | ||||
-rw-r--r-- | common/hc2vpp-parent/site.xml | 39 | ||||
-rw-r--r-- | common/impl-parent/asciidoc/Readme.adoc | 3 | ||||
-rw-r--r-- | common/impl-parent/pom.xml | 32 | ||||
-rw-r--r-- | common/minimal-distribution-parent/asciidoc/Readme.adoc | 3 | ||||
-rw-r--r-- | common/minimal-distribution-parent/pom.xml | 176 | ||||
-rw-r--r-- | common/pom.xml | 49 |
11 files changed, 440 insertions, 0 deletions
diff --git a/common/api-parent/asciidoc/Readme.adoc b/common/api-parent/asciidoc/Readme.adoc new file mode 100644 index 000000000..73d562439 --- /dev/null +++ b/common/api-parent/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += api-parent + +Maven parent for api projects. Provides common yangtools plugin configuration.
\ No newline at end of file diff --git a/common/api-parent/pom.xml b/common/api-parent/pom.xml new file mode 100644 index 000000000..f1c899b8c --- /dev/null +++ b/common/api-parent/pom.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-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"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>hc2vpp-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <relativePath>../hc2vpp-parent</relativePath> + </parent> + + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>api-parent</artifactId> + <name>${project.artifactId}</name> + <version>1.17.04-SNAPSHOT</version> + <packaging>pom</packaging> + + <build> + <pluginManagement> + <plugins> + <!-- Yangtools, generate yang --> + <plugin> + <groupId>org.opendaylight.yangtools</groupId> + <artifactId>yang-maven-plugin</artifactId> + <version>${yangtools.version}</version> + <dependencies> + <dependency> + <groupId>org.opendaylight.mdsal</groupId> + <artifactId>maven-sal-api-gen-plugin</artifactId> + <version>0.8.4-Beryllium-SR4</version> + <type>jar</type> + </dependency> + </dependencies> + <executions> + <execution> + <id>binding</id> + <goals> + <goal>generate-sources</goal> + </goals> + <configuration> + <codeGenerators> + <generator> + <codeGeneratorClass>org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass> + <outputBaseDir>${salGeneratorPath}</outputBaseDir> + </generator> + </codeGenerators> + <inspectDependencies>true</inspectDependencies> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-clean-plugin</artifactId> + <configuration> + <filesets> + <fileset> + <directory>${salGeneratorPath}</directory> + <includes> + <include>**</include> + </includes> + </fileset> + </filesets> + </configuration> + </plugin> + <!-- add generated yang classes to build --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <executions> + <execution> + <id>add-yang-sources</id> + <phase>generate-sources</phase> + <goals> + <goal>add-source</goal> + </goals> + <configuration> + <sources> + <source>${salGeneratorPath}</source> + </sources> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <plugin> + <groupId>org.opendaylight.yangtools</groupId> + <artifactId>yang-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.opendaylight.mdsal</groupId> + <artifactId>yang-binding</artifactId> + </dependency> + <dependency> + <groupId>org.opendaylight.yangtools</groupId> + <artifactId>yang-common</artifactId> + </dependency> + </dependencies> +</project> diff --git a/common/asciidoc/Readme.adoc b/common/asciidoc/Readme.adoc new file mode 100644 index 000000000..8e6964cc4 --- /dev/null +++ b/common/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += hc2vpp-common-aggregator + +Overview of hc2vpp-common-aggregator
\ No newline at end of file diff --git a/common/hc2vpp-parent/asciidoc/Readme.adoc b/common/hc2vpp-parent/asciidoc/Readme.adoc new file mode 100644 index 000000000..34f235045 --- /dev/null +++ b/common/hc2vpp-parent/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += hc2vpp-aggregator + +Single maven parent for all hc2vpp projects. Provides documentation template used by site plugin.
\ No newline at end of file diff --git a/common/hc2vpp-parent/pom.xml b/common/hc2vpp-parent/pom.xml new file mode 100644 index 000000000..e44777e99 --- /dev/null +++ b/common/hc2vpp-parent/pom.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-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"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>io.fd.honeycomb.common</groupId> + <artifactId>honeycomb-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <relativePath/> + </parent> + + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>hc2vpp-parent</artifactId> + <name>${project.artifactId}</name> + <version>1.17.04-SNAPSHOT</version> + <packaging>pom</packaging> +</project>
\ No newline at end of file diff --git a/common/hc2vpp-parent/site.xml b/common/hc2vpp-parent/site.xml new file mode 100644 index 000000000..dcd60a1a7 --- /dev/null +++ b/common/hc2vpp-parent/site.xml @@ -0,0 +1,39 @@ +<!-- + ~ Copyright (c) 2016 Cisco and/or its affiliates. + ~ + ~ 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> + <poweredBy> + <logo name="fd.io" href="http://fd.io" img="https://fd.io/sites/cpstandard/files/logo_fdio_top.png" alt="fd.io"/> + </poweredBy> + + <body> + <menu name="Documentation root" inherit="top"> + <item href="./hc2vpp-aggregator/index.html" name="Root"/> + </menu> + <menu name="Documentation" inherit="top"> + <item href="Readme.html" name="Overview"/> + </menu> + <menu name="General information" ref="reports" inherit="top"/> + <menu ref="modules" inherit="top"/> + <menu name="Maven parent" ref="parent" inherit="top"/> + </body> + + <skin> + <groupId>org.apache.maven.skins</groupId> + <artifactId>maven-fluido-skin</artifactId> + <version>1.5</version> + </skin> +</project>
\ No newline at end of file diff --git a/common/impl-parent/asciidoc/Readme.adoc b/common/impl-parent/asciidoc/Readme.adoc new file mode 100644 index 000000000..6b81b03bc --- /dev/null +++ b/common/impl-parent/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += impl-parent + +Common parent for projects implementing translation layer.
\ No newline at end of file diff --git a/common/impl-parent/pom.xml b/common/impl-parent/pom.xml new file mode 100644 index 000000000..e51413b1a --- /dev/null +++ b/common/impl-parent/pom.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-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"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>hc2vpp-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <relativePath>../hc2vpp-parent</relativePath> + </parent> + + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>impl-parent</artifactId> + <name>${project.artifactId}</name> + <version>1.17.04-SNAPSHOT</version> + <packaging>pom</packaging> + + <!-- import dependencies from honeycomb impl-parent --> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>io.fd.honeycomb.common</groupId> + <artifactId>impl-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> +</project>
\ No newline at end of file diff --git a/common/minimal-distribution-parent/asciidoc/Readme.adoc b/common/minimal-distribution-parent/asciidoc/Readme.adoc new file mode 100644 index 000000000..7964867a3 --- /dev/null +++ b/common/minimal-distribution-parent/asciidoc/Readme.adoc @@ -0,0 +1,3 @@ += minimal-distribution-parent + +Maven parent for projects that provide honeycomb distribution.
\ No newline at end of file diff --git a/common/minimal-distribution-parent/pom.xml b/common/minimal-distribution-parent/pom.xml new file mode 100644 index 000000000..ff077ef0b --- /dev/null +++ b/common/minimal-distribution-parent/pom.xml @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="UTF-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"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>hc2vpp-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <relativePath>../hc2vpp-parent</relativePath> + </parent> + + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>minimal-distribution-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <name>${project.artifactId}</name> + <packaging>pom</packaging> + + <properties> + <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> + <random.seed.file>/dev/./urandom</random.seed.file> + </properties> + + <!-- import dependencies from honeycomb minimal-distribution-parent --> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>io.fd.honeycomb.common</groupId> + <artifactId>minimal-distribution-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <!-- Generate executable shell script --> + <build> + <!-- HC2VPP-119: settings copied from honeycomb's minimal-distribution-parent --> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.6</version> + <configuration> + <archive> + <manifest> + <mainClass>${main.class}</mainClass> + <addClasspath>true</addClasspath> + <classpathPrefix>lib/</classpathPrefix> + <useUniqueVersions>false</useUniqueVersions> + <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout> + </manifest> + <manifestEntries> + <Class-Path>config/ cert/ modules/</Class-Path> + </manifestEntries> + </archive> + </configuration> + </plugin> + + <!-- Copy all dependencies --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>2.10</version> + <executions> + <execution> + <id>copy-dependencies</id> + <phase>package</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <outputDirectory>${project.build.directory}/lib</outputDirectory> + <useBaseVersion>true</useBaseVersion> + <useRepositoryLayout>true</useRepositoryLayout> + <excludeArtifactIds>yang-jmx-generator</excludeArtifactIds> + </configuration> + </execution> + <execution> + <id>unpack-configuration</id> + <phase>prepare-package</phase> + <goals> + <goal>unpack-dependencies</goal> + </goals> + <configuration> + <includes>**/honeycomb-minimal-resources/</includes> + <outputDirectory>${project.build.outputDirectory}/</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <!-- Generate shell script --> + <!-- Extract modules started by distribution --> + <plugin> + <groupId>org.codehaus.gmaven</groupId> + <artifactId>groovy-maven-plugin</artifactId> + <executions> + <execution> + <id>start-scripts-generation</id> + <phase>package</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source> + 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.04-SNAPSHOT</version> + </dependency> + </dependencies> + </plugin> + + <!-- Build archives --> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>2.5.3</version> + <dependencies> + <dependency> + <groupId>io.fd.honeycomb.common</groupId> + <artifactId>minimal-assembly-descriptor</artifactId> + <version>1.17.04-SNAPSHOT</version> + </dependency> + </dependencies> + <executions> + <execution> + <id>create-archive</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + <configuration> + <descriptorRefs> + <descriptorRef>honeycomb-minimal</descriptorRef> + </descriptorRefs> + </configuration> + </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> + </build> +</project>
\ No newline at end of file diff --git a/common/pom.xml b/common/pom.xml new file mode 100644 index 000000000..26919e97b --- /dev/null +++ b/common/pom.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-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"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>hc2vpp-parent</artifactId> + <version>1.17.04-SNAPSHOT</version> + <relativePath>hc2vpp-parent</relativePath> + </parent> + + + <groupId>io.fd.hc2vpp.common</groupId> + <artifactId>hc2vpp-common-aggregator</artifactId> + <version>1.17.04-SNAPSHOT</version> + <name>${project.artifactId}</name> + <packaging>pom</packaging> + <description>Aggregator for common maven parents providing base configuration for Hc2vpp modules</description> + + <modules> + <module>hc2vpp-parent</module> + <module>api-parent</module> + <module>impl-parent</module> + <module>minimal-distribution-parent</module> + </modules> + + <!-- DO NOT install or deploy the repo root pom as it's only needed to initiate a build --> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + </plugins> + </build> + +</project> |