summaryrefslogtreecommitdiffstats
path: root/opendaylight/neon
diff options
context:
space:
mode:
authorTimoney, Dan (dt5972) <dtimoney@att.com>2019-09-24 16:04:42 -0400
committerTimoney, Dan (dt5972) <dtimoney@att.com>2019-09-25 09:05:43 -0400
commit707c6a1ab19a63dcbf375bf7c1ee503ea69ac5f0 (patch)
tree4637564369eae6ddf503c7dd548cd09939b01bd6 /opendaylight/neon
parenta9e5b3db65c2c55d72c644544db2ce4b5c2e2d4b (diff)
Create ONAP-specific ODL distro
Instead of using OpenDaylight tarball, create custom ONAP ODL distribution that only contains the components used by SDNC and/or APPC Change-Id: I8871326002ab0e51c0271b937c5d91628a3172d9 Issue-ID: CCSDK-1753 Signed-off-by: Timoney, Dan (dt5972) <dtimoney@att.com>
Diffstat (limited to 'opendaylight/neon')
-rw-r--r--opendaylight/neon/neon-docker/pom.xml (renamed from opendaylight/neon/neon-alpine/pom.xml)10
-rw-r--r--opendaylight/neon/neon-docker/src/main/docker/Dockerfile (renamed from opendaylight/neon/neon-alpine/src/main/docker/Dockerfile)8
-rw-r--r--opendaylight/neon/neon-karaf-parent/pom.xml40
-rw-r--r--opendaylight/neon/neon-karaf/pom.xml178
-rw-r--r--opendaylight/neon/neon-karaf/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg96
-rw-r--r--opendaylight/neon/neon-karaf/src/main/assembly/etc/shell.init.script66
-rw-r--r--opendaylight/neon/pom.xml3
7 files changed, 391 insertions, 10 deletions
diff --git a/opendaylight/neon/neon-alpine/pom.xml b/opendaylight/neon/neon-docker/pom.xml
index 64e805dd..ec183454 100644
--- a/opendaylight/neon/neon-alpine/pom.xml
+++ b/opendaylight/neon/neon-docker/pom.xml
@@ -8,11 +8,11 @@
<version>0.7.0-SNAPSHOT</version>
</parent>
- <artifactId>distribution-odl-neon-alpine</artifactId>
+ <artifactId>distribution-odl-neon-docker</artifactId>
<version>0.7.0-SNAPSHOT</version>
<packaging>pom</packaging>
- <name>ccsdk-distribution :: opendaylight :: ${project.artifactId}</name>
+ <name>ccsdk-distribution :: opendaylight :: neon :: docker</name>
<description>Creates OpenDaylight container</description>
<organization>
<name>ONAP</name>
@@ -57,9 +57,9 @@
<configuration>
<artifactItems>
<artifactItem>
- <groupId>org.opendaylight.integration</groupId>
- <artifactId>karaf</artifactId>
- <version>${ccsdk.opendaylight.version}</version>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>odl-neon-karaf</artifactId>
+ <version>${project.version}</version>
<type>tar.gz</type>
<overWrite>true</overWrite>
diff --git a/opendaylight/neon/neon-alpine/src/main/docker/Dockerfile b/opendaylight/neon/neon-docker/src/main/docker/Dockerfile
index a043e1e9..5b5f3774 100644
--- a/opendaylight/neon/neon-alpine/src/main/docker/Dockerfile
+++ b/opendaylight/neon/neon-docker/src/main/docker/Dockerfile
@@ -5,11 +5,11 @@ ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
ENV ODL_HOME /opt/opendaylight/current
# copy the opendaylight tar and expand
-COPY karaf-${ccsdk.opendaylight.version}.tar.gz /tmp/
+COPY odl-neon-karaf-${project.version}.tar.gz /tmp/
RUN mkdir -p /opt/odl \
- && tar zxvf /tmp/karaf-${ccsdk.opendaylight.version}.tar.gz --directory /opt/odl \
- && rm -rf /tmp/karaf-${ccsdk.opendaylight.version}.tar.gz \
- && mv /opt/odl/karaf-${ccsdk.opendaylight.version} /opt/opendaylight \
+ && tar zxvf /tmp/odl-neon-karaf-${project.version}.tar.gz --directory /opt/odl \
+ && rm -rf /tmp/odl-neon-karaf-${project.version}.tar.gz \
+ && mv /opt/odl/odl-neon-karaf-${project.version} /opt/opendaylight \
&& ln -s /opt/opendaylight /opt/opendaylight/karaf-${ccsdk.opendaylight.version} \
&& ln -s /opt/opendaylight /opt/opendaylight/current
diff --git a/opendaylight/neon/neon-karaf-parent/pom.xml b/opendaylight/neon/neon-karaf-parent/pom.xml
new file mode 100644
index 00000000..baf96c39
--- /dev/null
+++ b/opendaylight/neon/neon-karaf-parent/pom.xml
@@ -0,0 +1,40 @@
+<?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>org.onap.ccsdk.distribution</groupId>
+ <artifactId>distribution-odl-neon</artifactId>
+ <version>0.7.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>distribution-opendaylight-onap-neon-parent</artifactId>
+ <version>0.7.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <name>ccsdk-distribution :: onap :: opendaylight :: neon :: parent</name>
+ <description>Creates ONAP's OpenDaylight Fluorine container</description>
+
+ <modules>
+ <module>karaf</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>
diff --git a/opendaylight/neon/neon-karaf/pom.xml b/opendaylight/neon/neon-karaf/pom.xml
new file mode 100644
index 00000000..637f07c9
--- /dev/null
+++ b/opendaylight/neon/neon-karaf/pom.xml
@@ -0,0 +1,178 @@
+<?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">
+
+ <parent>
+ <groupId>org.onap.ccsdk.parent</groupId>
+ <artifactId>karaf4-parent</artifactId>
+ <version>1.5.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>odl-neon-karaf</artifactId>
+ <version>0.7.0-SNAPSHOT</version>
+ <name>ccsdk-distribution :: onap :: opendaylight :: neon :: karaf</name>
+ <modelVersion>4.0.0</modelVersion>
+
+ <licenses>
+ <license>
+ <name>The Apache Software License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ <distribution>repo</distribution>
+ <comments>OpenDaylight distribution build specific for ONAP projects.</comments>
+ </license>
+ </licenses>
+
+ <properties>
+ <opendaylight.version>0.10.1</opendaylight.version>
+ <karaf.archiveZip>false</karaf.archiveZip>
+ <karaf.archiveTarGz>true</karaf.archiveTarGz>
+ </properties>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.integration</groupId>
+ <artifactId>all-artifacts</artifactId>
+ <version>${opendaylight.version}</version>
+ <scope>import</scope>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+
+ <!-- AAA -->
+ <dependency>
+ <groupId>org.opendaylight.aaa</groupId>
+ <artifactId>features-aaa</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- Controller -->
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>features-extras</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>features-mdsal</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>features-mdsal-benchmark</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.controller</groupId>
+ <artifactId>features-mdsal-trace</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- Daexim -->
+ <dependency>
+ <groupId>org.opendaylight.daexim</groupId>
+ <artifactId>daexim-features</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- Netconf -->
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>features-netconf</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>features-netconf-connector</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>features-restconf</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.netconf</groupId>
+ <artifactId>features-yanglib</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!--ODL Parent-->
+ <dependency>
+ <groupId>org.opendaylight.odlparent</groupId>
+ <artifactId>features-akka</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.opendaylight.odlparent</groupId>
+ <artifactId>features-odlparent</artifactId>
+ <classifier>features</classifier>
+ <type>xml</type>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.opendaylight.aaa</groupId>
+ <artifactId>aaa-cli-jar</artifactId>
+ <!-- This scope test here is just a trick, so that we can use aaa-cli-jar in maven-dependency-plugin, but don't have karaf-maven-plugin choke on it -->
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-aaa-cli-jar</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/assembly/bin</outputDirectory>
+ <includeArtifactIds>aaa-cli-jar</includeArtifactIds>
+ <overWriteReleases>true</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <excludeTransitive>true</excludeTransitive>
+ <!-- Do not include version in JAR filename, as external scripts call this utility,
+ and they understandly do not want to have to adjust for every ODL release;
+ see e.g. https://github.com/dfarrell07/puppet-opendaylight/pull/140 -->
+ <stripVersion>true</stripVersion>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/opendaylight/neon/neon-karaf/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg b/opendaylight/neon/neon-karaf/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg
new file mode 100644
index 00000000..cdd58378
--- /dev/null
+++ b/opendaylight/neon/neon-karaf/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg
@@ -0,0 +1,96 @@
+################################################################################
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#
+################################################################################
+
+#
+# If set to true, the following property will not allow any certificate to be used
+# when accessing Maven repositories through SSL
+#
+#org.ops4j.pax.url.mvn.certificateCheck=
+
+#
+# Path to the local Maven settings file.
+# The repositories defined in this file will be automatically added to the list
+# of default repositories if the 'org.ops4j.pax.url.mvn.repositories' property
+# below is not set.
+# The following locations are checked for the existence of the settings.xml file
+# * 1. looks for the specified url
+# * 2. if not found looks for ${user.home}/.m2/settings.xml
+# * 3. if not found looks for ${maven.home}/conf/settings.xml
+# * 4. if not found looks for ${M2_HOME}/conf/settings.xml
+#
+#org.ops4j.pax.url.mvn.settings=
+
+#
+# Path to the local Maven repository which is used to avoid downloading
+# artifacts when they already exist locally.
+# The value of this property will be extracted from the settings.xml file
+# above, or defaulted to:
+# System.getProperty( "user.home" ) + "/.m2/repository"
+#
+org.ops4j.pax.url.mvn.localRepository=${karaf.home}/${karaf.default.repository}
+
+#
+# Default this to false. It's just weird to use undocumented repos
+#
+org.ops4j.pax.url.mvn.useFallbackRepositories=false
+
+#
+# Uncomment if you don't wanna use the proxy settings
+# from the Maven conf/settings.xml file
+#
+# org.ops4j.pax.url.mvn.proxySupport=false
+
+#
+# Comma separated list of repositories scanned when resolving an artifact.
+# Those repositories will be checked before iterating through the
+# below list of repositories and even before the local repository
+# A repository url can be appended with zero or more of the following flags:
+# @snapshots : the repository contains snaphots
+# @noreleases : the repository does not contain any released artifacts
+#
+# The following property value will add the system folder as a repo.
+#
+org.ops4j.pax.url.mvn.defaultRepositories=\
+ file:${karaf.home}/${karaf.default.repository}@id=system.repository@snapshots,\
+ file:${karaf.data}/kar@id=kar.repository@multi@snapshots,\
+ file:${karaf.base}/${karaf.default.repository}@id=child.system.repository@snapshots
+
+# Use the default local repo (e.g.~/.m2/repository) as a "remote" repo
+#org.ops4j.pax.url.mvn.defaultLocalRepoAsRemote=false
+
+#
+# Comma separated list of repositories scanned when resolving an artifact.
+# The default list includes the following repositories:
+# http://repo1.maven.org/maven2@id=central
+# http://repository.springsource.com/maven/bundles/release@id=spring.ebr
+# http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external
+# http://zodiac.springsource.com/maven/bundles/release@id=gemini
+# http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases
+# https://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@noreleases
+# https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
+# To add repositories to the default ones, prepend '+' to the list of repositories
+# to add.
+# A repository url can be appended with zero or more of the following flags:
+# @snapshots : the repository contains snapshots
+# @noreleases : the repository does not contain any released artifacts
+# @id=repository.id : the id for the repository, just like in the settings.xml this is optional but recommended
+#
+org.ops4j.pax.url.mvn.repositories=
+
+### ^^^ No remote repositories. This is the only ODL change compared to Karaf defaults. \ No newline at end of file
diff --git a/opendaylight/neon/neon-karaf/src/main/assembly/etc/shell.init.script b/opendaylight/neon/neon-karaf/src/main/assembly/etc/shell.init.script
new file mode 100644
index 00000000..ccc9d2a7
--- /dev/null
+++ b/opendaylight/neon/neon-karaf/src/main/assembly/etc/shell.init.script
@@ -0,0 +1,66 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you 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.
+//
+// This script is run each time a shell is created.
+// You can define here closures or variables that will be available
+// in each session.
+//
+ld = { log:display $args } ;
+lde = { log:exception-display $args } ;
+la = { bundle:list -t 0 $args } ;
+ls = { service:list $args } ;
+cl = { config:list "(service.pid=$args)" } ;
+halt = { system:shutdown -h -f $args } ;
+help = { *:help $args | more } ;
+man = { help $args } ;
+log:list = { log:get ALL } ;
+service:get = { $.context getService ($.context getServiceReference $args) };
+
+env = { shell:set $args }
+edit = { shell:nano $args }
+more = { shell:less -F $args }
+
+// \#prompt = { "${USER}@${APPLICATION}(${SUBSHELL})> "?};
+
+__load_class = {
+ (($.reader class) classLoader) loadClass $1
+}
+
+// make sure that we catch exceptions
+// as they do occur if the session is headless / non-interactive
+jlineReader = $.reader
+if { %(jlineReader != null) } {
+
+ # On 256 colors terminal, add a right prompt
+ max_colors = ($.jline.terminal getNumericCapability max_colors)
+ if { %(max_colors >= 256) } {
+ __rprompt_formatter = (((__load_class java.text.SimpleDateFormat) getConstructor (__load_class java.lang.String)) newInstance \'$'\u001B\[90m'\'HH:mm:ss)
+ __date_class = (__load_class java.util.Date)
+// Do not use right prompt by default
+// \#rprompt = { $__rprompt_formatter format ($__date_class newInstance) }
+ }
+
+ setopt group
+ setopt auto-fresh-line
+ unsetopt insert-tab
+ keymap "^[OA" up-line-or-search
+ keymap "^[[A" up-line-or-search
+ keymap "^[OB" down-line-or-search
+ keymap "^[[B" down-line-or-search
+
+}
diff --git a/opendaylight/neon/pom.xml b/opendaylight/neon/pom.xml
index ef13ead7..ca517995 100644
--- a/opendaylight/neon/pom.xml
+++ b/opendaylight/neon/pom.xml
@@ -43,6 +43,7 @@
<modules>
- <module>neon-alpine</module>
+ <module>neon-karaf</module>
+ <module>neon-docker</module>
</modules>
</project>