diff options
author | Timoney, Dan (dt5972) <dtimoney@att.com> | 2019-09-24 16:04:42 -0400 |
---|---|---|
committer | Timoney, Dan (dt5972) <dtimoney@att.com> | 2019-09-25 09:05:43 -0400 |
commit | 707c6a1ab19a63dcbf375bf7c1ee503ea69ac5f0 (patch) | |
tree | 4637564369eae6ddf503c7dd548cd09939b01bd6 /opendaylight/neon | |
parent | a9e5b3db65c2c55d72c644544db2ce4b5c2e2d4b (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.xml | 40 | ||||
-rw-r--r-- | opendaylight/neon/neon-karaf/pom.xml | 178 | ||||
-rw-r--r-- | opendaylight/neon/neon-karaf/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg | 96 | ||||
-rw-r--r-- | opendaylight/neon/neon-karaf/src/main/assembly/etc/shell.init.script | 66 | ||||
-rw-r--r-- | opendaylight/neon/pom.xml | 3 |
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 = { "[1m${USER}[0m@${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> |