<dependency>
<groupId>org.apache.karaf.bundle</groupId>
<artifactId>org.apache.karaf.bundle.core</artifactId>
- <!-- karaf.version & karaf4.version are API compatible (for karaf.bundle.core) -->
<version>${karaf.version}</version>
<scope>provided</scope>
</dependency>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<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.opendaylight.odlparent</groupId>
- <artifactId>bundle-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../bundle-parent</relativePath>
- </parent>
-
- <artifactId>bundles-test</artifactId>
- <packaging>bundle</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <dependencies>
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>bundles-test-lib</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.bundle</groupId>
- <artifactId>org.apache.karaf.bundle.core</artifactId>
- <version>${karaf.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-core</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.awaitility</groupId>
- <artifactId>awaitility</artifactId>
- <scope>compile</scope>
- <exclusions>
- <exclusion>
- <groupId>cglib</groupId>
- <artifactId>cglib-nodep</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.objenesis</groupId>
- <artifactId>objenesis</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <configuration>
- <instructions>
- <Embed-Dependency>*;scope=compile</Embed-Dependency>
- <Embed-Transitive>true</Embed-Transitive>
- <Import-Package>!net.sf.cglib.proxy,!org.objenesis,*</Import-Package>
- <_exportcontents>org.opendaylight.odlparent.bundlestest.lib.*</_exportcontents>
- </instructions>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <configuration>
- <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>findbugs-maven-plugin</artifactId>
- <configuration>
- <failOnError>true</failOnError>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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>
-
- <!--
- Base parent POM for building, packaging and testing Karaf feature repositories.
- Karaf features are generated based on the POM dependencies; they can be supplemented by a base
- feature.xml file in src/main/feature.
-
- Users should do the following:
-
- - specify this as their parent
- - make sure the packaging is set to feature
- - specify features to be provided in the repository by depending on them in the project <dependencies/>
- -->
-
- <parent>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odlparent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../odlparent</relativePath>
- </parent>
-
- <artifactId>feature3-repo-parent</artifactId>
- <packaging>pom</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <properties>
- <skip.karaf.featureTest>false</skip.karaf.featureTest>
- </properties>
-
- <dependencies>
- <!-- Test the generated features.xml -->
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>features-test</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>bundles-test-lib</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.bundle</groupId>
- <artifactId>org.apache.karaf.bundle.core</artifactId>
- <version>${karaf.version}</version>
- <scope>test</scope>
- </dependency>
- <!-- Force SLF4J to test scope -->
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <!-- This generates the META-INF/maven/dependencies.properties file
- which is required by the versionAsInProject() used in SingleFeatureTest -->
- <groupId>org.apache.servicemix.tooling</groupId>
- <artifactId>depends-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>${maven.surefire.version}</version>
- <configuration>
- <skip>${skip.karaf.featureTest}</skip>
- <dependenciesToScan>
- <dependency>org.opendaylight.odlparent:features-test</dependency>
- </dependenciesToScan>
- <additionalClasspathElements>
- <additionalClasspathElement>${project.build.directory}/feature</additionalClasspathElement>
- </additionalClasspathElements>
- </configuration>
- <executions>
- <execution>
- <phase>test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.karaf.tooling</groupId>
- <artifactId>karaf-maven-plugin</artifactId>
- <version>${karaf.version}</version>
- <extensions>true</extensions>
- <configuration>
- <aggregateFeatures>true</aggregateFeatures>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<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">
-
- <!--
- Base parent pom for building, packaging and testing Karaf features.
- Users should do the following:
-
- - specify this as their parent
- - define their features template in src/main/features
- - make sure the packaging is set to jar
- - setup projects <dependencies/> as needed for their features
- -->
-
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odlparent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../odlparent</relativePath>
- </parent>
-
- <artifactId>features-parent</artifactId>
- <packaging>pom</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <properties>
- <features.file>features.xml</features.file>
- <skip.karaf.featureTest>false</skip.karaf.featureTest>
- </properties>
-
- <build>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
-
- <pluginManagement>
- <plugins>
- <!-- generate dependencies versions -->
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <phase>generate-resources</phase>
- <goals><goal>resolve</goal></goals>
- <configuration>
- <outputFile>${project.build.directory}/dependencies.txt</outputFile>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>com.alexecollins.maven.plugin</groupId>
- <artifactId>script-maven-plugin</artifactId>
- <version>1.0.0</version>
- <executions>
- <execution>
- <id>add-version-to-features</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>execute</goal>
- </goals>
- <configuration>
- <language>groovy</language>
- <script>
- /**
- * Placeholder, which is used in src/features/features.xml
- * to mark version which should be inserted from dependencies.
- * Currently works only for bundle and configfile tags
- * with mvn: url schema, and needs to be used
- * as third component of schema.
- * eg. mvn:group/artefact/{{VERSION}}
- */
- def versionPlaceholder = "{{VERSION}}"
- /**
- * Path to features.xml which uses versionPlaceholder.
- * This will be processed by this script.
- *
- */
- def featureFilePath = "src/main/features/features.xml"
- // Contains mapping of groupID:artefactID to versoin
- def versionMap = new HashMap();
- /* Loads transitive dependency list generated from
- * maven-dependency-plugin resolve goal
- * and populates map
- */
- def dependencies = new File(project.build.directory,"dependencies.txt")
- dependencies.eachLine {
- def cmps = it.trim().split(":")
- // Depends on number of components:
- // - groupId
- // - artifactId
- // - Type
- // - Qualifier (optional)
- // - Version
- // - Scope
- if(cmps.length > 4) {
- def id = cmps[0] + ":" + cmps[1]
- if(cmps.length == 6) {
- versionMap[id] = cmps[4]
- } else if(cmps.length == 5) {
- versionMap[id] = cmps[3]
- }
- }
- }
-
- /*
- * Takes splitted mvn: URL, looks for placeholder
- * and returns new mvn: URL with version learned
- * from dependency plugin.
- *
- * If referenced bundle is not dependency (direct or transitive)
- * throws an exception and fails build.
- *
- */
- def updatedURLFromProject = { args ->
- // 0 - groupID, 1 - artifactID
- // 2 - version, 3 - type, 4 - Classifier
-
- def groupId = args[0];
- def artifactId = args[1];
- def id = groupId + ":" + artifactId
- def dependencyVersion = versionMap[id]
- if(dependencyVersion != null) {
- // Overriding version
- args[2] = dependencyVersion
- return "mvn:" + args.join("/")
- }
- throw new IllegalArgumentException("Feature dependency $groupId:$artifactId is not a dependency in the project pom.xml.")
- }
-
- def updateMavenDependency = { dep ->
- def mvnUrl = dep.text()
- def prefix = ""
- if (mvnUrl.startsWith("wrap:")) {
- prefix = "wrap:"
- mvnUrl = mvnUrl.substring(5)
- }
- if (mvnUrl.startsWith("mvn:") && mvnUrl.indexOf(versionPlaceholder) >= 0) {
- // Process property place-holders
- def dollarIndex;
- while ((dollarIndex = mvnUrl.indexOf("\${")) >= 0) {
- def closingBrace = mvnUrl.indexOf("}", dollarIndex);
- if (closingBrace > dollarIndex) {
- def propKey = mvnUrl.substring(dollarIndex + 2, closingBrace);
- def propVal = project.properties[propKey];
- mvnUrl = mvnUrl.replace("\${${propKey}}", propVal);
- } else {
- println "[WARN] Malformed Maven URL: ${mvnUrl}";
- break;
- }
- }
- def components = mvnUrl.substring(4).split("/")
- if (components[2].startsWith(versionPlaceholder)) {
- def suffix = "";
- if (components[2].length() > versionPlaceholder.length()) {
- suffix = components[2].substring(versionPlaceholder.length())
- components[2] = versionPlaceholder
- }
- dep.value = prefix + updatedURLFromProject(components) + suffix
- }
- }
- }
-
- def featureFile = new File(project.basedir,featureFilePath)
- def root = new XmlParser().parse(featureFile)
-
- println "[INFO] Updating repository declarations"
- root.repository.each updateMavenDependency
-
- root.feature.each { feature ->
- println "[INFO] Processing feature: ${feature.@name}"
- feature.bundle.each updateMavenDependency
- feature.configfile.each updateMavenDependency
- }
-
- def outDir = new File(project.build.directory,"generated-resources/script")
- outDir.mkdirs();
- def outFile = new File(outDir,"features.xml")
- def outWriter = outFile.newPrintWriter("ASCII");
- xmlPrinter = new XmlNodePrinter(outWriter);
- xmlPrinter.preserveWhitespace = true
- xmlPrinter.print(root)
- outWriter.close();
- </script>
- </configuration>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.codehaus.groovy</groupId>
- <artifactId>groovy</artifactId>
- <version>1.8.6</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.karaf.tooling</groupId>
- <artifactId>karaf-maven-plugin</artifactId>
- <version>${karaf.version}</version>
- <extensions>true</extensions>
- <executions>
- <execution>
- <id>features-create-kar</id>
- <goals>
- <goal>features-create-kar</goal>
- </goals>
- <configuration>
- <featuresFile>${project.build.directory}/classes/${features.file}</featuresFile>
- </configuration>
- </execution>
- </executions>
- <!-- There is no useful configuration for the kar mojo. The features-generate-descriptor mojo configuration may be useful -->
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.12</version>
- <executions>
- <execution>
- <phase>generate-resources</phase>
- <goals><goal>add-resource</goal></goals>
- <configuration>
- <resources>
- <resource>
- <directory>${project.build.directory}/generated-resources/script</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>attach-artifacts</id>
- <phase>package</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>${project.build.directory}/classes/${features.file}</file>
- <type>xml</type>
- <classifier>features</classifier>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>3.0.1</version>
- <executions>
- <execution>
- <id>filter</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>resources</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>${maven.surefire.version}</version>
- <configuration>
- <skip>${skip.karaf.featureTest}</skip>
- <systemPropertyVariables>
- <!-- Remove these properties when a better fix to Bug 6523 appears. -->
- <karaf.distro.groupId>org.opendaylight.odlparent</karaf.distro.groupId>
- <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
- <karaf.distro.version>1.9.1-SNAPSHOT</karaf.distro.version>
- </systemPropertyVariables>
- <dependenciesToScan>
- <dependency>org.opendaylight.odlparent:features-test</dependency>
- </dependenciesToScan>
- </configuration>
- </plugin>
- <!-- Ignore/Execute plugin execution -->
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>com.alexecollins.maven.plugin</groupId>
- <artifactId>script-maven-plugin</artifactId>
- <versionRange>[0.0,)</versionRange>
- <goals>
- <goal>execute</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore/>
- </action>
- </pluginExecution>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <versionRange>[0.0,)</versionRange>
- <goals>
- <goal>resolve</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore/>
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
-
- <plugins>
- <plugin>
- <!-- This generates the META-INF/maven/dependencies.properties file
- which is required by the versionAsInProject() used in SingleFeatureTest -->
- <groupId>org.apache.servicemix.tooling</groupId>
- <artifactId>depends-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>com.alexecollins.maven.plugin</groupId>
- <artifactId>script-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.karaf.tooling</groupId>
- <artifactId>karaf-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <!-- test the features.xml -->
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>features-test</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <!-- Remove this dependency when a better fix for Bug 6523 appears. -->
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>opendaylight-karaf-empty</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <type>zip</type>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<!--
- This is a dummy feature file. It is just a placeholder to keep the
- artifact working.
- -->
-<features name="odl-dummy-feature" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0"/>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<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.opendaylight.odlparent</groupId>
- <artifactId>bundle-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../bundle-parent</relativePath>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <artifactId>features-test</artifactId>
- <packaging>bundle</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <dependencies>
- <!-- Dependencies for pax exam karaf container -->
- <dependency>
- <groupId>org.ops4j.pax.exam</groupId>
- <artifactId>pax-exam-container-karaf</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.exam</groupId>
- <artifactId>pax-exam-junit4</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.exam</groupId>
- <artifactId>pax-exam</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.url</groupId>
- <artifactId>pax-url-aether</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-http</artifactId>
- <version>2.10</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.features</groupId>
- <artifactId>standard</artifactId>
- <version>${karaf.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.deployer</groupId>
- <artifactId>org.apache.karaf.deployer.blueprint</artifactId>
- <version>${karaf.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.deployer</groupId>
- <artifactId>org.apache.karaf.deployer.features</artifactId>
- <version>${karaf.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.deployer</groupId>
- <artifactId>org.apache.karaf.deployer.spring</artifactId>
- <version>${karaf.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.url</groupId>
- <artifactId>pax-url-wrap</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>bundles-test</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.bundle</groupId>
- <artifactId>org.apache.karaf.bundle.core</artifactId>
- <version>${karaf.version}</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
- <build>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- </plugin>
- <plugin>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <configuration>
- <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
- </configuration>
- <executions>
- <execution>
- <id>check-license</id>
- <configuration>
- <excludes>
- <!-- Skip Apache Licensed files -->
- org/opendaylight/odlparent/featuretest/CustomBundleUrlStreamHandlerFactory.java
- </excludes>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-</project>
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent.featuretest;
-
-public final class Constants {
-
- private Constants() {
- // Noop constructor
- }
-
- /*
- * Named of System Properties we need to set in PerFeatureRunner and read in SingleFeatureTest
- */
- public static final String ORG_OPENDAYLIGHT_FEATURETEST_URI_PROP = "org.opendaylight.featuretest.uri";
- public static final String ORG_OPENDAYLIGHT_FEATURETEST_FEATURENAME_PROP =
- "org.opendaylight.featuretest.featurename";
- public static final String ORG_OPENDAYLIGHT_FEATURETEST_FEATUREVERSION_PROP =
- "org.opendaylight.featuretest.featureversion";
-}
+++ /dev/null
-/*
- * The NOTICE file referred to in the license statement below is available
- * as Karaf-NOTICE at the root of this project.
- */
-/*
- * 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.
- */
-
-package org.opendaylight.odlparent.featuretest;
-
-import java.net.URLStreamHandler;
-import java.net.URLStreamHandlerFactory;
-
-import org.apache.karaf.deployer.blueprint.BlueprintURLHandler;
-import org.apache.karaf.deployer.features.FeatureURLHandler;
-import org.apache.karaf.deployer.spring.SpringURLHandler;
-
-public class CustomBundleUrlStreamHandlerFactory implements URLStreamHandlerFactory {
-
- private static final String MVN_URI_PREFIX = "mvn";
- private static final String WRAP_URI_PREFIX = "wrap";
- private static final String FEATURE_URI_PREFIX = "feature";
- private static final String SPRING_URI_PREFIX = "spring";
- private static final String BLUEPRINT_URI_PREFIX = "blueprint";
-
- @Override
- public URLStreamHandler createURLStreamHandler(String protocol) {
- switch (protocol) {
- case MVN_URI_PREFIX:
- return new org.ops4j.pax.url.mvn.Handler();
- case WRAP_URI_PREFIX:
- return new org.ops4j.pax.url.wrap.Handler();
- case FEATURE_URI_PREFIX:
- return new FeatureURLHandler();
- case SPRING_URI_PREFIX:
- return new SpringURLHandler();
- case BLUEPRINT_URI_PREFIX:
- return new BlueprintURLHandler();
- default:
- return null;
- }
- }
-
-}
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.odlparent.featuretest;
-
-import com.google.common.base.Preconditions;
-import java.net.URL;
-import java.rmi.NoSuchObjectException;
-import org.junit.runner.Description;
-import org.junit.runner.Result;
-import org.junit.runner.notification.Failure;
-import org.junit.runner.notification.RunListener;
-import org.junit.runner.notification.RunNotifier;
-
-public class PerFeatureRunNotifier extends RunNotifier {
-
- private final RunNotifier delegate;
- private final URL repoUrl;
- private final String featureName;
- private final String featureVersion;
-
- /**
- * Create a delegating notifier.
- *
- * @param repoUrl The repository URL.
- * @param featureName The feature name.
- * @param featureVersion The feature version.
- * @param delegate The notification delegate.
- */
- public PerFeatureRunNotifier(
- final URL repoUrl, final String featureName, final String featureVersion, final RunNotifier delegate) {
- this.repoUrl = Preconditions.checkNotNull(repoUrl);
- this.featureName = Preconditions.checkNotNull(featureName);
- this.featureVersion = Preconditions.checkNotNull(featureVersion);
- this.delegate = Preconditions.checkNotNull(delegate);
- }
-
- private Failure convertFailure(final Failure failure) {
- return new Failure(Util.convertDescription(repoUrl, featureName, featureVersion, failure.getDescription()),
- failure.getException());
- }
-
- @Override
- public void addListener(final RunListener listener) {
- delegate.addListener(listener);
- }
-
- @Override
- public void removeListener(final RunListener listener) {
- delegate.removeListener(listener);
- }
-
- /**
- * Calculates the hash code (delegated).
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return delegate.hashCode();
- }
-
- @Override
- public void fireTestRunStarted(final Description description) {
- delegate.fireTestRunStarted(Util.convertDescription(repoUrl, featureName, featureVersion, description));
- }
-
- @Override
- public void fireTestRunFinished(final Result result) {
- delegate.fireTestRunFinished(result);
- }
-
- @Override
- public void fireTestStarted(final Description description) {
- delegate.fireTestStarted(Util.convertDescription(repoUrl, featureName, featureVersion, description));
- }
-
- @Override
- public boolean equals(final Object obj) {
- return delegate.equals(obj);
- }
-
- @Override
- public void fireTestFailure(final Failure failure) {
- if (!(failure.getException() instanceof NoSuchObjectException)) {
- delegate.fireTestFailure(convertFailure(failure));
- }
- }
-
- @Override
- public void fireTestAssumptionFailed(final Failure failure) {
- delegate.fireTestAssumptionFailed(convertFailure(failure));
- }
-
- @Override
- public void fireTestIgnored(final Description description) {
- delegate.fireTestIgnored(Util.convertDescription(repoUrl, featureName, featureVersion, description));
- }
-
- @Override
- public void fireTestFinished(final Description description) {
- delegate.fireTestFinished(Util.convertDescription(repoUrl, featureName, featureVersion, description));
- }
-
- /**
- * Please stop.
- * @see org.junit.runner.notification.RunNotifier#pleaseStop()
- */
- @Override
- public void pleaseStop() {
- delegate.pleaseStop();
- }
-
- @Override
- public void addFirstListener(final RunListener listener) {
- delegate.addFirstListener(listener);
- }
-
- /**
- * Value of the delegate as a String.
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return delegate.toString();
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent.featuretest;
-
-import static org.opendaylight.odlparent.featuretest.Constants.ORG_OPENDAYLIGHT_FEATURETEST_FEATURENAME_PROP;
-import static org.opendaylight.odlparent.featuretest.Constants.ORG_OPENDAYLIGHT_FEATURETEST_FEATUREVERSION_PROP;
-import static org.opendaylight.odlparent.featuretest.Constants.ORG_OPENDAYLIGHT_FEATURETEST_URI_PROP;
-
-import com.google.common.base.Preconditions;
-import java.net.URL;
-import org.junit.runner.Description;
-import org.junit.runner.Runner;
-import org.junit.runner.manipulation.Filter;
-import org.junit.runner.manipulation.Filterable;
-import org.junit.runner.manipulation.NoTestsRemainException;
-import org.junit.runner.manipulation.Sortable;
-import org.junit.runner.manipulation.Sorter;
-import org.junit.runner.notification.RunNotifier;
-import org.junit.runners.model.InitializationError;
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class PerFeatureRunner extends Runner implements Filterable, Sortable {
-
- private static final Logger LOG = LoggerFactory.getLogger(PerFeatureRunner.class);
-
- private final String featureVersion;
- private final String featureName;
- private final PaxExam delegate;
- private final URL repoUrl;
-
- /**
- * Create a runner.
- *
- * @param repoUrl The repository URL.
- * @param featureName The feature name.
- * @param featureVersion The feature version.
- * @param testClass The test class.
- * @throws InitializationError if an error occurs.
- */
- public PerFeatureRunner(
- final URL repoUrl, final String featureName, final String featureVersion, final Class<?> testClass)
- throws InitializationError {
- this.repoUrl = Preconditions.checkNotNull(repoUrl);
- this.featureName = Preconditions.checkNotNull(featureName);
- this.featureVersion = Preconditions.checkNotNull(featureVersion);
-
- System.setProperty(ORG_OPENDAYLIGHT_FEATURETEST_URI_PROP, repoUrl.toString());
- System.setProperty(ORG_OPENDAYLIGHT_FEATURETEST_FEATURENAME_PROP, featureName);
- System.setProperty(ORG_OPENDAYLIGHT_FEATURETEST_FEATUREVERSION_PROP, featureVersion);
- this.delegate = new PaxExam(Preconditions.checkNotNull(testClass));
- }
-
- @Override
- public Description getDescription() {
- return Util.convertDescription(repoUrl, featureName, featureVersion, delegate.getDescription());
- }
-
- @Override
- public void run(final RunNotifier notifier) {
- LOG.info("About to run test for feature: {} {}", featureName, featureVersion);
- System.setProperty(ORG_OPENDAYLIGHT_FEATURETEST_URI_PROP, repoUrl.toString());
- System.setProperty(ORG_OPENDAYLIGHT_FEATURETEST_FEATURENAME_PROP, featureName);
- System.setProperty(ORG_OPENDAYLIGHT_FEATURETEST_FEATUREVERSION_PROP, featureVersion);
- delegate.run(new PerFeatureRunNotifier(repoUrl, featureName, featureVersion, notifier));
- }
-
- @Override
- public int testCount() {
- return delegate.testCount();
- }
-
- @Override
- public void filter(final Filter filter) throws NoTestsRemainException {
- delegate.filter(filter);
- }
-
- @Override
- public void sort(final Sorter sorter) {
- delegate.sort(sorter);
- }
-
- /**
- * Delegated implementation of {@link #toString()}.
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return delegate.toString();
- }
-
- /**
- * Returns the repository URL.
- *
- * @return The repository URL.
- */
- public URL getRepoUrl() {
- return repoUrl;
- }
-
- /**
- * Returns the feature name.
- *
- * @return The feature name.
- */
- public String getFeatureName() {
- return featureName;
- }
-
- /**
- * Returns the feature version.
- *
- * @return The feature version.
- */
- public String getFeatureVersion() {
- return featureVersion;
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent.featuretest;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-import javax.xml.bind.JAXBException;
-import org.apache.karaf.features.internal.model.Feature;
-import org.apache.karaf.features.internal.model.Features;
-import org.apache.karaf.features.internal.model.JaxbUtil;
-import org.junit.runner.Description;
-import org.junit.runner.notification.RunNotifier;
-import org.junit.runners.ParentRunner;
-import org.junit.runners.model.InitializationError;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class PerRepoTestRunner extends ParentRunner<PerFeatureRunner> {
-
- private static final Logger LOG = LoggerFactory.getLogger(PerRepoTestRunner.class);
-
- private static final String REPO_RECURSE = "repo.recurse";
- private static final String[] FEATURES_FILENAMES = new String[] { "features.xml", "feature.xml" };
-
- private static boolean isURLStreamHandlerFactorySet = false;
- // Do NOT static { URL.setURLStreamHandlerFactory(new CustomBundleUrlStreamHandlerFactory()); }
- // This is VERY BAD practice, because it leads to VERY HARD TO TRACK errors in case ANYTHING
- // goes wrong in this. For example, we had a case where (following an upgrade of PAX Exam)
- // a dependency was missing. This appeared as a confusing error because the root cause
- // of static initialization errors is typically lost in Java; so best is NOT to use it!
- // ("NoClassDefFoundError: Could not initialize class ...PerRepoTestRunner")
-
- private final List<PerFeatureRunner> children = new ArrayList<>();
-
- /**
- * Create a runner.
- *
- * @param testClass The test class.
- * @throws InitializationError if an error occurs.
- */
- public PerRepoTestRunner(final Class<?> testClass) throws InitializationError {
- super(testClass);
- setURLStreamHandlerFactory();
- try {
- for (String filename : FEATURES_FILENAMES) {
- final URL repoUrl = getClass().getClassLoader().getResource(filename);
- if (repoUrl != null) {
- final boolean recursive = Boolean.getBoolean(REPO_RECURSE);
- LOG.info("Creating test runners for repoUrl {} recursive {}", repoUrl, recursive);
- children.addAll(runnersFromRepoUrl(repoUrl, testClass, recursive));
- } else {
- LOG.error("getClass().getClassLoader().getResource(\"{}\") returned null", filename);
- }
- }
- } catch (final IOException | JAXBException e) {
- throw new InitializationError(e);
- }
- }
-
- // We have to exceptionally suppress IllegalCatch just because URL.setURLStreamHandlerFactory stupidly throws Error
- @SuppressWarnings("checkstyle:IllegalCatch")
- // see doc on isURLStreamHandlerFactorySet for why we do NOT want to do this in a static block
- private static synchronized void setURLStreamHandlerFactory() {
- if (!isURLStreamHandlerFactorySet) {
- try {
- URL.setURLStreamHandlerFactory(new CustomBundleUrlStreamHandlerFactory());
- isURLStreamHandlerFactorySet = true;
- } catch (Error e) {
- LOG.warn("Failed to setURLStreamHandlerFactory to CustomBundleUrlStreamHandlerFactory "
- + "(depending on which is already set, this may or may not actually be a problem"
- + "; e.g. Karaf 4 already registers the neccessary handlers, so OK to ignore)", e);
- }
- }
- }
-
- protected List<PerFeatureRunner> runnersFromRepoUrl(
- final URL repoUrl, final Class<?> testClass, final boolean recursive)
- throws JAXBException, IOException, InitializationError {
- if (recursive) {
- return recursiveRunnersFromRepoUrl(repoUrl, testClass);
- } else {
- return runnersFromRepoUrl(repoUrl, testClass);
- }
- }
-
- protected List<PerFeatureRunner> runnersFromRepoUrl(final URL repoUrl, final Class<?> testClass)
- throws JAXBException, IOException, InitializationError {
- final List<PerFeatureRunner> runners = new ArrayList<>();
- final Features features = getFeatures(repoUrl);
- runners.addAll(runnersFromFeatures(repoUrl, features, testClass));
- return runners;
- }
-
- protected List<PerFeatureRunner> recursiveRunnersFromRepoUrl(final URL repoUrl, final Class<?> testClass)
- throws JAXBException, IOException, InitializationError {
- final List<PerFeatureRunner> runners = new ArrayList<>();
- final Features features = getFeatures(repoUrl);
- runners.addAll(runnersFromRepoUrl(repoUrl, testClass));
- for (final String repoString : features.getRepository()) {
- final URL subRepoUrl = new URL(repoString);
- runners.addAll(recursiveRunnersFromRepoUrl(subRepoUrl, testClass));
- }
- return runners;
- }
-
- protected List<PerFeatureRunner> runnersFromFeatures(
- final URL repoUrl, final Features features, final Class<?> testClass) throws InitializationError {
- final List<PerFeatureRunner> runners = new ArrayList<>();
- final List<Feature> featureList = features.getFeature();
- for (final Feature f : featureList) {
- runners.add(new PerFeatureRunner(repoUrl, f.getName(), f.getVersion(), testClass));
- }
- return runners;
- }
-
- protected Features getFeatures(final URL repoUrl) throws JAXBException, IOException {
- return JaxbUtil.unmarshal(repoUrl.openStream(), false);
- }
-
- @Override
- protected List<PerFeatureRunner> getChildren() {
- return children;
- }
-
- @Override
- protected Description describeChild(final PerFeatureRunner child) {
- return child.getDescription();
- }
-
- @Override
- @SuppressWarnings("checkstyle:RegexpSinglelineJava")
- protected void runChild(final PerFeatureRunner child, final RunNotifier notifier) {
- LOG.info("[LOG] About to run test: {}", child.getDescription());
- System.out.println("[sys.out] About to run test: " + child.getDescription());
- child.run(notifier);
- }
-
- /* (non-Javadoc)
- * @see org.junit.runner.Runner#testCount()
- */
- @Override
- public int testCount() {
- return super.testCount() * children.size();
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent.featuretest;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.opendaylight.odlparent.featuretest.Constants.ORG_OPENDAYLIGHT_FEATURETEST_FEATURENAME_PROP;
-import static org.opendaylight.odlparent.featuretest.Constants.ORG_OPENDAYLIGHT_FEATURETEST_FEATUREVERSION_PROP;
-import static org.opendaylight.odlparent.featuretest.Constants.ORG_OPENDAYLIGHT_FEATURETEST_URI_PROP;
-import static org.ops4j.pax.exam.CoreOptions.maven;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.when;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
-
-import com.google.common.collect.ImmutableList;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.Properties;
-import javax.inject.Inject;
-import org.apache.karaf.bundle.core.BundleService;
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.FeaturesService;
-import org.apache.karaf.features.Repository;
-import org.apache.karaf.features.internal.model.Features;
-import org.apache.karaf.features.internal.model.JaxbUtil;
-import org.eclipse.jdt.annotation.NonNull;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.opendaylight.odlparent.bundlestest.lib.TestBundleDiag;
-import org.ops4j.pax.exam.Configuration;
-import org.ops4j.pax.exam.CoreOptions;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel;
-import org.ops4j.pax.exam.options.PropagateSystemPropertyOption;
-import org.ops4j.pax.exam.options.extra.VMOption;
-import org.osgi.framework.BundleContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@RunWith(PerRepoTestRunner.class)
-public class SingleFeatureTest {
-
- private static final String MAVEN_REPO_LOCAL = "maven.repo.local";
- private static final String ORG_OPS4J_PAX_URL_MVN_LOCAL_REPOSITORY = "org.ops4j.pax.url.mvn.localRepository";
- private static final String ORG_OPS4J_PAX_URL_MVN_REPOSITORIES = "org.ops4j.pax.url.mvn.repositories";
- private static final String ETC_ORG_OPS4J_PAX_URL_MVN_CFG = "etc/org.ops4j.pax.url.mvn.cfg";
- private static final String ETC_ORG_OPS4J_PAX_LOGGING_CFG = "etc/org.ops4j.pax.logging.cfg";
-
- private static final String KEEP_UNPACK_DIRECTORY_PROP = "karaf.keep.unpack";
- private static final String PROFILE_PROP = "karaf.featureTest.profile";
- private static final String BUNDLES_DIAG_SKIP_PROP = "sft.diag.skip";
- private static final String BUNDLES_DIAG_FORCE_PROP = "sft.diag.force";
- private static final String BUNDLES_DIAG_TIMEOUT_PROP = "sft.diag.timeout";
-
- private static final String LOG4J_LOGGER_ORG_OPENDAYLIGHT_YANGTOOLS_FEATURETEST =
- "log4j.logger.org.opendaylight.odlparent.featuretest";
- private static final Logger LOG = LoggerFactory.getLogger(SingleFeatureTest.class);
-
- /*
- * File name to add our logging config property too.
- */
- private static final String ORG_OPS4J_PAX_LOGGING_CFG = "etc/org.ops4j.pax.logging.cfg";
-
- /*
- * Default values for karaf distro type, groupId, and artifactId
- */
- private static final String KARAF_DISTRO_TYPE = "zip";
- private static final String KARAF_DISTRO_ARTIFACTID = "apache-karaf";
- private static final String KARAF_DISTRO_GROUPID = "org.apache.karaf";
-
- /*
- * Property names to override defaults for karaf distro artifactId, groupId, version, and type
- */
- private static final String KARAF_DISTRO_VERSION_PROP = "karaf.distro.version";
- private static final String KARAF_DISTRO_TYPE_PROP = "karaf.distro.type";
- private static final String KARAF_DISTRO_ARTIFACTID_PROP = "karaf.distro.artifactId";
- private static final String KARAF_DISTRO_GROUPID_PROP = "karaf.distro.groupId";
-
- /**
- * Property file used to store the Karaf distribution version.
- */
- private static final String PROPERTIES_FILENAME = "singlefeaturetest.properties";
-
- /**
- * <p>List of Karaf 3.0.4 default maven repositories with snapshot repositories excluded.</p>
- * <p>Unfortunately this must be hard-coded since declarative model which uses Options,
- * does not allow us to read value, parse it (properties has allways
- * problems with lists) and construct replacement string which does
- * not contains snapshots.</p>
- * <p>When updating Karaf, check this against org.ops4j.pax.url.mvn.cfg in the Karaf distribution.</p>
- */
- private static final String EXTERNAL_DEFAULT_REPOSITORIES = "http://repo1.maven.org/maven2@id=central, "
- + "http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release, "
- + "http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external, "
- + "http://zodiac.springsource.com/maven/bundles/release@id=gemini ";
-
- @Inject @NonNull
- private BundleContext bundleContext;
-
- @Inject @NonNull
- private FeaturesService featuresService;
-
- @Inject @NonNull
- private BundleService bundleService; // NOT BundleStateService, see checkBundleStatesDiag()
-
- private String karafVersion;
- private String karafDistroVersion;
-
- /**
- * Returns the required configuration.
- *
- * @return The Pax Exam configuration.
- * @throws IOException if an error occurs.
- */
- @Configuration
- public Option[] config() throws IOException {
- return new Option[] {
- // TODO: Find a way to inherit memory limits from Maven options.
- new VMOption("-Xmx2g"),
- new VMOption("-XX:+HeapDumpOnOutOfMemoryError"),
- new VMOption("-XX:OnOutOfMemoryError=\"kill -3 %p\""),
- // inspired by org.apache.commons.lang.SystemUtils
- when(System.getProperty("os.name").toLowerCase().startsWith("linux")).useOptions(
- // This prevents low entropy issues on Linux to affect Java random numbers
- // which can block crypto such as the SSH server in netconf
- // see https://bugs.opendaylight.org/show_bug.cgi?id=6790
- new VMOption("-Djava.security.egd=file:/dev/./urandom")
- ),
- when(Boolean.getBoolean(PROFILE_PROP)).useOptions(
- new VMOption("-XX:+UnlockCommercialFeatures"),
- new VMOption("-XX:+FlightRecorder"),
- new VMOption("-XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath="
- + getNewJFRFile())
- ),
- getKarafDistroOption(),
- when(Boolean.getBoolean(KEEP_UNPACK_DIRECTORY_PROP)).useOptions(keepRuntimeFolder()),
- configureConsole().ignoreLocalConsole(),
- logLevel(LogLevel.WARN),
- mvnLocalRepoOption(),
- standardKarafFeatures(),
- // Guava is used by this SingleFeatureTest class itself (not, anymore, by by bundles-test),
- // in (at least) the BLACKLISTED_BROKEN_FEATURES ImmutableList at the end, so we need to
- // add Guava so that this class can run in Karaf under OSGi, as it compiled here
- mavenBundle(maven("com.google.guava", "guava").versionAsInProject()),
- mavenBundle(maven("org.opendaylight.odlparent", "bundles-test").versionAsInProject()),
- editConfigurationFilePut(ORG_OPS4J_PAX_LOGGING_CFG, LOG4J_LOGGER_ORG_OPENDAYLIGHT_YANGTOOLS_FEATURETEST,
- LogLevel.INFO.name()),
- editConfigurationFilePut(ETC_ORG_OPS4J_PAX_LOGGING_CFG, "log4j.rootLogger", "INFO, stdout, osgi:*"),
- /*
- *
- * Disables external snapshot repositories.
- *
- * Pax URL and Karaf by default always search for new version of snapshots
- * in all snapshots repository, even if that snapshots does not belong to that
- * repository and maven is invoked even with -nsu (no snapshot update)
- * or offline mode.
- *
- * This is also true for OpenDaylight snapshot artefacts - pax url tries
- * to resolve them from third-party repositories, even if they are not present
- * there - this increases time which takes for features to install.
- *
- * For more complex projects this actually means several HTTP GETs for each
- * snapshot bundle referenced, even if the bundle is already present
- * in local maven repository.
- *
- * In order to speed-up installation and remove unnecessary network traffic,
- * which fails for obvious reasons, external snapshot repositories are
- * removed.
- *
- *
- */
- disableExternalSnapshotRepositories(),
- new PropagateSystemPropertyOption(ORG_OPENDAYLIGHT_FEATURETEST_URI_PROP),
- new PropagateSystemPropertyOption(ORG_OPENDAYLIGHT_FEATURETEST_FEATURENAME_PROP),
- new PropagateSystemPropertyOption(ORG_OPENDAYLIGHT_FEATURETEST_FEATUREVERSION_PROP),
- new PropagateSystemPropertyOption(BUNDLES_DIAG_SKIP_PROP),
- new PropagateSystemPropertyOption(BUNDLES_DIAG_FORCE_PROP),
- new PropagateSystemPropertyOption(BUNDLES_DIAG_TIMEOUT_PROP),
- // Needed for Agrona/aeron.io
- CoreOptions.systemPackages("com.sun.media.sound", "sun.nio.ch"),
- };
- }
-
- private String getNewJFRFile() throws IOException {
- return File.createTempFile("SingleFeatureTest-Karaf-JavaFlightRecorder", ".jfr").getAbsolutePath();
- }
-
- private Option standardKarafFeatures() throws IOException {
- String url = maven().groupId("org.apache.karaf.features").artifactId("standard").classifier("features").type(
- "xml").version(getKarafVersion()).getURL();
- try {
- Features features = JaxbUtil.unmarshal(new URL(url).openStream(), false);
- List<String> featureNames = new ArrayList<>();
- for (Feature f : features.getFeature()) {
- featureNames.add(f.getName());
- }
-
- return features(url, featureNames.toArray(new String[featureNames.size()]));
- } catch (IOException e) {
- throw new IOException("Could not obtain features from URL: " + url, e);
- }
- }
-
- private String getKarafVersion() throws IOException {
- if (karafVersion == null) {
- // We use a properties file to retrieve ${karaf.version}, instead of .versionAsInProject()
- // This avoids forcing all users to depend on Karaf in their POMs
- Properties singleFeatureTestProps = new Properties();
- try (InputStream singleFeatureTestInputStream = Thread.currentThread().getContextClassLoader()
- .getResourceAsStream(PROPERTIES_FILENAME)) {
- if (singleFeatureTestInputStream == null) {
- throw new IOException("Resource not found; expected to be present on current thread classloader: "
- + PROPERTIES_FILENAME);
- }
- singleFeatureTestProps.load(singleFeatureTestInputStream);
- }
- karafVersion = singleFeatureTestProps.getProperty(KARAF_DISTRO_VERSION_PROP);
-
- LOG.info("Retrieved karafVersion {} from properties file {}", karafVersion, PROPERTIES_FILENAME);
- } else {
- LOG.info("Retrieved karafVersion {} from system property {}", karafVersion, KARAF_DISTRO_VERSION_PROP);
- }
-
- return karafVersion;
- }
-
- private String getKarafDistroVersion() throws IOException {
- if (karafDistroVersion == null) {
- karafDistroVersion = System.getProperty(KARAF_DISTRO_VERSION_PROP);
- if (karafDistroVersion == null) {
- karafDistroVersion = getKarafVersion();
- } else {
- LOG.info("Retrieved karafDistroVersion {} from system property {}", karafVersion,
- KARAF_DISTRO_VERSION_PROP);
- }
- }
-
- return karafDistroVersion;
- }
-
- /**
- * Disables snapshot repositories, which are enabled by default in karaf distribution.
- *
- * @return Edit Configuration option which removes external snapshot repositories.
- */
- private static Option disableExternalSnapshotRepositories() {
- return editConfigurationFilePut(ETC_ORG_OPS4J_PAX_URL_MVN_CFG, ORG_OPS4J_PAX_URL_MVN_REPOSITORIES,
- EXTERNAL_DEFAULT_REPOSITORIES);
- }
-
- protected Option mvnLocalRepoOption() {
- String mvnRepoLocal = System.getProperty(MAVEN_REPO_LOCAL, "");
- LOG.info("mvnLocalRepo \"{}\"", mvnRepoLocal);
- return editConfigurationFilePut(ETC_ORG_OPS4J_PAX_URL_MVN_CFG, ORG_OPS4J_PAX_URL_MVN_LOCAL_REPOSITORY,
- mvnRepoLocal);
- }
-
- protected Option getKarafDistroOption() throws IOException {
- String groupId = System.getProperty(KARAF_DISTRO_GROUPID_PROP, KARAF_DISTRO_GROUPID);
- String artifactId = System.getProperty(KARAF_DISTRO_ARTIFACTID_PROP, KARAF_DISTRO_ARTIFACTID);
- String type = System.getProperty(KARAF_DISTRO_TYPE_PROP, KARAF_DISTRO_TYPE);
- LOG.info("Using karaf distro {} {} {} {}", groupId, artifactId, getKarafDistroVersion(), type);
- return karafDistributionConfiguration()
- .frameworkUrl(
- maven()
- .groupId(groupId)
- .artifactId(artifactId)
- .type(type)
- .version(getKarafDistroVersion()))
- .name("OpenDaylight")
- .unpackDirectory(new File("target/pax"))
- .useDeployFolder(false);
- }
-
- private static URI getRepoUri() throws URISyntaxException {
- return new URI(getProperty(ORG_OPENDAYLIGHT_FEATURETEST_URI_PROP));
- }
-
- private static String getFeatureName() {
- return getProperty(ORG_OPENDAYLIGHT_FEATURETEST_FEATURENAME_PROP);
- }
-
- public String getFeatureVersion() {
- return getProperty(ORG_OPENDAYLIGHT_FEATURETEST_FEATUREVERSION_PROP);
- }
-
- private static String getProperty(final String propName) {
- String prop = System.getProperty(propName);
- Assert.assertTrue("Missing property :" + propName, prop != null);
- return prop;
- }
-
- private void checkRepository(final URI repoUri) {
- Repository repo = null;
- for (Repository r : featuresService.listRepositories()) {
- if (r.getURI().equals(repoUri)) {
- repo = r;
- break;
- }
- }
- Assert.assertNotNull("Repository not found: " + repoUri, repo);
- }
-
- /**
- * Sets the repository up.
- *
- * @throws Exception if an error occurs.
- */
- @Before
- public void installRepo() throws Exception {
- final URI repoUri = getRepoUri();
- LOG.info("Attempting to add repository {}", repoUri);
- featuresService.addRepository(repoUri);
- checkRepository(repoUri);
- LOG.info("Successfully loaded repository {}", repoUri);
- }
-
- // Give it 10 minutes max as we've seen feature install hang on jenkins.
- @Test(timeout = 600000)
- public void installFeature() throws Exception {
- LOG.info("Attempting to install feature {} {}", getFeatureName(), getFeatureVersion());
- featuresService.installFeature(getFeatureName(), getFeatureVersion(),
- EnumSet.of(FeaturesService.Option.NoCleanIfFailure, FeaturesService.Option.PrintExecptionPerFeature));
- Feature feature = featuresService.getFeature(getFeatureName(), getFeatureVersion());
- Assert.assertNotNull(
- "Attempt to get feature " + getFeatureName() + " " + getFeatureVersion() + "resulted in null", feature);
- Assert.assertTrue("Failed to install Feature: " + getFeatureName() + " " + getFeatureVersion(),
- featuresService.isInstalled(feature));
- LOG.info("Successfull installed feature {} {}", getFeatureName(), getFeatureVersion());
-
- if (!Boolean.getBoolean(BUNDLES_DIAG_SKIP_PROP)
- && (Boolean.getBoolean(BUNDLES_DIAG_FORCE_PROP)
- || !BLACKLISTED_BROKEN_FEATURES.contains(getFeatureName()))) {
- Integer timeOutInSeconds = Integer.getInteger(BUNDLES_DIAG_TIMEOUT_PROP, 5 * 60);
- new TestBundleDiag(bundleContext, bundleService).checkBundleDiagInfos(timeOutInSeconds, SECONDS);
- } else {
- LOG.warn("SKIPPING TestBundleDiag because system property {} is true or feature is blacklisted: {}",
- BUNDLES_DIAG_SKIP_PROP, getFeatureName());
- }
- }
-
- // TODO remove this when all issues linked to parent https://bugs.opendaylight.org/show_bug.cgi?id=7582 are resolved
- private static final List<String> BLACKLISTED_BROKEN_FEATURES = ImmutableList.of(
- // integration/distribution/features-test due to DOMRpcService
- // see https://bugs.opendaylight.org/show_bug.cgi?id=7595
- "odl-integration-all",
- // controller/features/mdsal/ due to IllegalStateException: ./configuration/initial/akka.conf is missing
- // see https://bugs.opendaylight.org/show_bug.cgi?id=7583
- "odl-mdsal-broker-local",
- "odl-mdsal-clustering-commons",
- "odl-mdsal-distributed-datastore",
- "odl-mdsal-remoterpc-connector",
- // 1/17 in groupbasedpolicy/features due to NOK org.opendaylight.groupbasedpolicy
- // Caused by: org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException
- // see https://bugs.opendaylight.org/show_bug.cgi?id=7587
- "odl-groupbasedpolicy-ne-location-provider",
- // 1/11 in tsdr/features due to (strange) ClassNotFoundException: odlparent.bundlestest
- // .TestBundleDiag (works for all other features; class loading issue in that feature?)
- // see https://bugs.opendaylight.org/show_bug.cgi?id=7588
- // Check tsdr-verify-carbon on Sandbox before removing this.
- "odl-hbaseclient",
- // 1/9 in unimgr/features due missing mdsal, similar to issue to odl-integration-all?
- // TODO retry after https://bugs.opendaylight.org/show_bug.cgi?id=7595 is fixed
- "odl-unimgr-netvirt"
- );
-}
+++ /dev/null
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent.featuretest;
-
-import java.lang.annotation.Annotation;
-import java.net.URL;
-import java.util.Collection;
-
-import org.junit.runner.Description;
-
-public final class Util {
-
- private Util() {
- // Noop constructor
- }
-
- /**
- * <p>Convert a Description to a Description that includes information about repoUrl, featureName, and
- * featureVersion</p>
- * <p>This is done so that when a test fails, we can get information about which repoUrl, featureName, and
- * featureVersion can come back with the Failure.</p>
- *
- * @param repoUrl URL of the repository.
- * @param featureName the name of the feature.
- * @param featureVersion the version of the feature.
- * @param description original description of the feature.
- * @return the final description of the feature with the information of repoUrl, featureName, and featureVersion
- * included.
- */
- public static Description convertDescription(
- final URL repoUrl, final String featureName,
- final String featureVersion, final Description description) {
- String delegateDisplayName = description.getDisplayName();
- delegateDisplayName =
- delegateDisplayName + "[repoUrl: " + repoUrl + ", Feature: " + featureName + " " + featureVersion + "]";
- Collection<Annotation> annotations = description.getAnnotations();
- Annotation[] annotationArray = annotations.toArray(new Annotation[annotations.size()]);
- return Description.createSuiteDescription(delegateDisplayName, annotationArray);
- }
-}
+++ /dev/null
-karaf.distro.version=${karaf.version}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>feature3-repo-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../feature3-repo-parent</relativePath>
- </parent>
-
- <artifactId>features-akka</artifactId>
- <packaging>feature</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-all</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-scala-${scala.version}</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-system-2.4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-clustering-2.4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-leveldb-0.7</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-persistence-2.4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2014, 2016 Cisco Systems, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<features name="odl-controller-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
- <!-- These are additional features with non-standard (upstream) versions,
- provided for backwards-compatibility; they are now deprecated. For
- backwards-compatibility we need to preserve the feature name and
- version; once these are unused, we should re-introduce the features
- with odlparent versions rather than upstream versions (features with
- upstream versions belong upstream). -->
- <!-- TODO Migrate these features away from upstream versions -->
- <!-- TODO Replace the versioned features with these, using single-feature-parent -->
- <!-- (In both cases, we need to determine whether it makes sense to use
- unversioned features, in terms of the feasability of handling upgrades
- later.) -->
- <feature name="odl-akka-scala" description="Scala Runtime for OpenDaylight" version="${scala.version}">
- <feature version="${project.version}">odl-akka-scala-${scala.version}</feature>
- </feature>
- <feature name="odl-akka-system" description="Akka Actor Framework System Bundles" version="${akka.version}">
- <feature version="${project.version}">odl-akka-system-2.4</feature>
- </feature>
- <feature name="odl-akka-clustering" description="Akka Clustering" version="${akka.version}">
- <feature version="${project.version}">odl-akka-clustering-2.4</feature>
- </feature>
- <feature name='odl-akka-leveldb' description='LevelDB' version='${leveldb.version}'>
- <feature version="${project.version}">odl-akka-leveldb-0.7</feature>
- </feature>
- <feature name='odl-akka-persistence' description='Akka Persistence' version="${akka.version}">
- <feature version="${project.version}">odl-akka-persistence-2.4</feature>
- </feature>
-</features>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>feature3-repo-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../feature3-repo-parent</relativePath>
- </parent>
-
- <artifactId>features-odlparent</artifactId>
- <packaging>feature</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-netty-4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-guava-18</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-guava-21</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
-
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-lmax-3</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
-
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-triemap-0.2</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
- Copyright © 2015, 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<features name="odlparent-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
- <!-- These are additional features with non-standard (upstream) versions,
- provided for backwards-compatibility; they are now deprecated. For
- backwards-compatibility we need to preserve the feature name and
- version; once these are unused, we should re-introduce the features
- with odlparent versions rather than upstream versions (features with
- upstream versions belong upstream). -->
- <!-- TODO Migrate these features away from upstream versions -->
- <!-- TODO Replace the versioned features with these, using single-feature-parent -->
- <!-- (In both cases, we need to determine whether it makes sense to use
- unversioned features, in terms of the feasability of handling upgrades
- later.) -->
- <!-- See also the links defined for our Maven site in the root POM (maven-javadoc-plugin) -->
- <feature name="odl-netty" description="OpenDaylight :: Netty" version="4.1.7.Final">
- <feature version="${project.version}">odl-netty-4</feature>
- </feature>
- <feature name="odl-guava" description="OpenDaylight :: Guava" version="18.0">
- <feature version="${project.version}">odl-guava-18</feature>
- </feature>
- <feature name="odl-guava" description="OpenDaylight :: Guava" version="19.0">
- <bundle>mvn:com.google.guava/guava/19.0</bundle>
- </feature>
- <feature name="odl-lmax" description="OpenDaylight :: LMAX Disruptor" version="3.3.6">
- <feature version="${project.version}">odl-lmax-3</feature>
- </feature>
- <feature name="odl-triemap" description="OpenDaylight :: Concurrent Trie HashMap" version="0.2.23">
- <feature version="${project.version}">odl-triemap-0.2</feature>
- </feature>
-</features>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-akka-all</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>OpenDaylight :: Akka :: All</name>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-scala-2.11</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-system-2.4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-clustering-2.4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-leveldb-0.7</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-persistence-2.4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016, 2017 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-akka-clustering-2.4</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>Akka Clustering</name>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-system-2.4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>org.uncommons.maths</groupId>
- <artifactId>uncommons-maths</artifactId>
- <exclusions>
- <exclusion>
- <groupId>jfree</groupId>
- <artifactId>jcommon</artifactId>
- </exclusion>
- <exclusion>
- <groupId>jfree</groupId>
- <artifactId>jfreechart</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.typesafe.akka</groupId>
- <artifactId>akka-protobuf_${scala.version}</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty</artifactId>
- <version>3.10.6.Final</version>
- </dependency>
- <dependency>
- <groupId>com.typesafe.akka</groupId>
- <artifactId>akka-remote_${scala.version}</artifactId>
- </dependency>
- <dependency>
- <groupId>com.typesafe.akka</groupId>
- <artifactId>akka-cluster_${scala.version}</artifactId>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-akka-leveldb-0.7</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>LevelDB</name>
-
- <dependencies>
- <dependency>
- <groupId>org.iq80.leveldb</groupId>
- <artifactId>leveldb</artifactId>
- </dependency>
- <dependency>
- <groupId>org.fusesource.leveldbjni</groupId>
- <artifactId>leveldbjni-all</artifactId>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-akka-persistence-2.4</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>Akka Persistence</name>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-leveldb-0.7</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-system-2.4</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>com.typesafe.akka</groupId>
- <artifactId>akka-protobuf_${scala.version}</artifactId>
- </dependency>
- <dependency>
- <groupId>com.typesafe.akka</groupId>
- <artifactId>akka-persistence_${scala.version}</artifactId>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-akka-scala-2.11</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>Scala Runtime for OpenDaylight</name>
-
- <dependencies>
- <dependency>
- <groupId>org.scala-lang</groupId>
- <artifactId>scala-library</artifactId>
- </dependency>
- <dependency>
- <groupId>org.scala-lang</groupId>
- <artifactId>scala-reflect</artifactId>
- </dependency>
- <dependency>
- <groupId>org.scala-lang.modules</groupId>
- <artifactId>scala-java8-compat_${scala.version}</artifactId>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-akka-system-2.4</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>Akka Actor Framework System Bundles</name>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-akka-scala-${scala.version}</artifactId>
- <version>${project.version}</version>
- <classifier>features</classifier>
- <type>xml</type>
- </dependency>
- <dependency>
- <groupId>com.typesafe</groupId>
- <artifactId>config</artifactId>
- </dependency>
- <dependency>
- <groupId>com.typesafe.akka</groupId>
- <artifactId>akka-actor_${scala.version}</artifactId>
- </dependency>
- <dependency>
- <groupId>com.typesafe.akka</groupId>
- <artifactId>akka-slf4j_${scala.version}</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.typesafe.akka</groupId>
- <artifactId>akka-osgi_${scala.version}</artifactId>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-guava-18</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>OpenDaylight :: Guava 18</name>
-
- <dependencies>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>18.0</version>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-guava-21</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>OpenDaylight :: Guava 21</name>
-
- <dependencies>
- <dependency>
- <groupId>com.google.guava</groupId>
- <artifactId>guava</artifactId>
- <version>21.0</version>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-lmax-3</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>OpenDaylight :: LMAX Disruptor</name>
-
- <dependencies>
- <dependency>
- <groupId>com.lmax</groupId>
- <artifactId>disruptor</artifactId>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-netty-4</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>OpenDaylight :: Netty</name>
-
- <dependencies>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-buffer</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-common</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-transport</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-codec</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-codec-http</artifactId>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-handler</artifactId>
- </dependency>
- <!-- Here we need to depend on all available native epoll implementations; we can't limit ourselves to the build
- platform and we can't require the build platform to have an implementation (e.g. OS X) -->
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-transport-native-epoll</artifactId>
- <classifier>linux-x86_64</classifier>
- </dependency>
- </dependencies>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>single-feature3-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../single-feature3-parent</relativePath>
- </parent>
-
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odl-triemap-0.2</artifactId>
- <version>1.9.1-SNAPSHOT</version>
-
- <packaging>feature</packaging>
-
- <name>OpenDaylight :: Concurrent Trie HashMap</name>
-
- <dependencies>
- <dependency>
- <groupId>com.github.romix</groupId>
- <artifactId>java-concurrent-hash-trie-map</artifactId>
- </dependency>
- </dependencies>
-
-</project>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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.opendaylight.odlparent</groupId>
- <artifactId>aggregator-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../aggregator-parent</relativePath>
- </parent>
-
- <artifactId>features-aggregator</artifactId>
- <packaging>pom</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <modules>
- <!-- Akka features -->
- <module>features-akka</module>
- <module>odl-akka-all</module>
- <module>odl-akka-clustering-2.4</module>
- <module>odl-akka-leveldb-0.7</module>
- <module>odl-akka-persistence-2.4</module>
- <module>odl-akka-scala-2.11</module>
- <module>odl-akka-system-2.4</module>
-
- <!-- General features -->
- <module>features-odlparent</module>
- <module>odl-guava-18</module>
- <module>odl-guava-21</module>
- <module>odl-lmax-3</module>
- <module>odl-netty-4</module>
- <module>odl-triemap-0.2</module>
- </modules>
-
-</project>
private String getKarafVersion() throws IOException {
if (karafVersion == null) {
- // We use a properties file to retrieve ${karaf.version}, instead of .versionAsInProject()
+ // We use a properties file to retrieve Karaf's version, instead of .versionAsInProject()
// This avoids forcing all users to depend on Karaf in their POMs
Properties singleFeatureTestProps = new Properties();
try (InputStream singleFeatureTestInputStream = Thread.currentThread().getContextClassLoader()
+++ /dev/null
-<?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>
- <artifactId>odlparent</artifactId>
- <groupId>org.opendaylight.odlparent</groupId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../odlparent/</relativePath>
- </parent>
- <artifactId>karaf-plugin</artifactId>
- <packaging>maven-plugin</packaging>
-
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-plugin-api</artifactId>
- <version>3.3.3</version>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-core</artifactId>
- <version>3.3.3</version>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-model</artifactId>
- <version>3.3.3</version>
- </dependency>
- <dependency>
- <groupId>org.ops4j.pax.url</groupId>
- <artifactId>pax-url-aether</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.karaf.features</groupId>
- <artifactId>org.apache.karaf.features.core</artifactId>
- <version>${karaf.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.eclipse.aether</groupId>
- <artifactId>aether-api</artifactId>
- <version>1.0.2.v20150114</version>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>features-test</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <scope>runtime</scope>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <executions>
- <execution>
- <id>check-license</id>
- <goals>
- <goal>check</goal>
- </goals>
- <phase>process-sources</phase>
- <configuration>
- <configLocation>check-license.xml</configLocation>
- <includeResources>false</includeResources>
- <includeTestResources>false</includeTestResources>
- <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
- <excludes>
- <!-- Skip Apache Licensed files -->
- org/opendaylight/odlparent/PopulateLocalRepoMojo.java
- </excludes>
- <failsOnError>false</failsOnError>
- <consoleOutput>true</consoleOutput>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- <configuration>
- <goalPrefix>karaf</goalPrefix>
- <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
- </configuration>
- <executions>
- <execution>
- <id>mojo-descriptor</id>
- <goals>
- <goal>descriptor</goal>
- </goals>
- </execution>
- <execution>
- <id>help-goal</id>
- <goals>
- <goal>helpmojo</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- <profiles>
- <profile>
- <id>run-its</id>
- <build>
-
- <plugins>
- <plugin>
- <artifactId>maven-invoker-plugin</artifactId>
- <version>2.0.0</version>
- <configuration>
- <debug>true</debug>
- <cloneProjectsTo>${project.build.directory}/it</cloneProjectsTo>
- <pomIncludes>
- <pomInclude>*/pom.xml</pomInclude>
- </pomIncludes>
- <postBuildHookScript>verify</postBuildHookScript>
- <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
- <settingsFile>src/it/settings.xml</settingsFile>
- <goals>
- <goal>clean</goal>
- <goal>test-compile</goal>
- </goals>
- </configuration>
- <executions>
- <execution>
- <id>integration-test</id>
- <goals>
- <goal>install</goal>
- <goal>integration-test</goal>
- <goal>verify</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
-
- </build>
- </profile>
- </profiles>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- The NOTICE file referred to in the license statement below is available
- as Karaf-NOTICE at the root of this project.
--->
-<!--
-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.
--->
-
-<settings>
- <profiles>
- <profile>
- <id>it-repo</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <repositories>
- <repository>
- <id>local.central</id>
- <url>@localRepositoryUrl@</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>local.central</id>
- <url>@localRepositoryUrl@</url>
- <releases>
- <enabled>true</enabled>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- </pluginRepository>
- </pluginRepositories>
- </profile>
- </profiles>
-</settings>
+++ /dev/null
-<?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>
-
- <groupId>org.opendaylight.odlparent.it</groupId>
- <artifactId>simple-it</artifactId>
- <version>1.9.1-SNAPSHOT</version>
-
- <description>A simple IT verifying the basic use case.</description>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>@project.groupId@</groupId>
- <artifactId>@project.artifactId@</artifactId>
- <version>@project.version@</version>
- <executions>
- <execution>
- <id>touch</id>
- <phase>validate</phase>
- <goals>
- <goal>touch</goal>
- </goals>
- <configuration>
- <featureRepos>
- <param>foo</param>
- </featureRepos>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-File touchFile = new File( basedir, "target/touch.txt" );
-
-assert touchFile.isFile()
+++ /dev/null
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-import org.eclipse.aether.DefaultRepositorySystemSession;
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.eclipse.aether.collection.CollectRequest;
-import org.eclipse.aether.graph.Dependency;
-import org.eclipse.aether.graph.DependencyFilter;
-import org.eclipse.aether.installation.InstallationException;
-import org.eclipse.aether.installation.InstallRequest;
-import org.eclipse.aether.repository.LocalRepository;
-import org.eclipse.aether.repository.LocalRepositoryManager;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.resolution.ArtifactRequest;
-import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.eclipse.aether.resolution.ArtifactResult;
-import org.eclipse.aether.resolution.DependencyRequest;
-import org.eclipse.aether.resolution.DependencyResolutionException;
-import org.eclipse.aether.resolution.DependencyResult;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class AetherUtil {
- private static final Logger LOG = LoggerFactory.getLogger(AetherUtil.class);
- private RepositorySystem repoSystem;
-
- private RepositorySystemSession repoSession;
-
- private List<RemoteRepository> remoteRepos;
-
- protected File localRepository;
-
- /**
- * Create an instance for the given repositories.
- *
- * @param repoSystem The repository system.
- * @param repoSession The repository session.
- * @param remoteRepos The remote repositories.
- * @param localRepository The local repository.
- */
- public AetherUtil(
- RepositorySystem repoSystem, RepositorySystemSession repoSession, List<RemoteRepository> remoteRepos,
- File localRepository) {
- this.repoSystem = repoSystem;
- this.repoSession = repoSession;
- this.remoteRepos = remoteRepos;
- this.localRepository = localRepository;
- }
-
- /**
- * Resolves the given dependencies.
- *
- * @param dependencies The dependencies.
- * @param filter The dependency filter.
- * @return The corresponding artifacts.
- * @throws DependencyResolutionException if an error occurs.
- */
- public Set<Artifact> resolveDependencies(List<Dependency> dependencies, DependencyFilter filter)
- throws DependencyResolutionException {
- Set<Artifact> artifacts = new LinkedHashSet<>();
- CollectRequest collectRequest = new CollectRequest();
- collectRequest.setDependencies(dependencies);
- collectRequest.setRepositories(remoteRepos);
- DependencyRequest request = new DependencyRequest(collectRequest, filter);
- DependencyResult results = repoSystem.resolveDependencies(repoSession, request);
- for (ArtifactResult artifactResult : results.getArtifactResults()) {
- artifacts.add(artifactResult.getArtifact());
- }
- LOG.trace("resolveDependencies({}) returns {}", dependencies, artifacts);
- return artifacts;
- }
-
- /**
- * Resolves the given artifact.
- *
- * @param artifact The artifact.
- * @return The resolved artifact, or {@code null} if it can't be resolved.
- */
- public Artifact resolveArtifact(Artifact artifact) {
- ArtifactRequest request = new ArtifactRequest(artifact, remoteRepos, null);
- ArtifactResult result;
- try {
- result = repoSystem.resolveArtifact(repoSession, request);
- } catch (ArtifactResolutionException e) {
- LOG.warn("Unable to resolve artifact: {}", e.getMessage(), e);
- return null;
- }
- LOG.trace("resolveArtifacts({}) returns {}", artifact, result.getArtifact());
- return result.getArtifact();
- }
-
- /**
- * Resolves the given coordinates.
- *
- * @param coord The coordinates to resolve.
- * @return The resolved artifact, or {@code null} if the coordinates can't be resolved.
- */
- public Artifact resolveArtifact(String coord) {
- DefaultArtifact artifact = new DefaultArtifact(coord);
- return resolveArtifact(artifact);
- }
-
- /**
- * Resolves the given coordinates.
- *
- * @param coords The set of coordinates to resolve.
- * @return The resolved artifacts. Unresolvable coordinates are skipped without error.
- */
- public Set<Artifact> resolveArtifacts(Set<String> coords) {
- Set<Artifact> result = new LinkedHashSet<>();
- for (String coord : coords) {
- Artifact artifact = resolveArtifact(coord);
- if (artifact != null) {
- result.add(artifact);
- }
- }
- LOG.trace("resolveArtifacts({}) returns {}", coords, result);
- return result;
- }
-
- /**
- * Converts the given artifact coordinates to a {@link Dependency} instance.
- *
- * @param coord The coordinates.
- * @return The dependency.
- */
- public Dependency toDependency(String coord) {
- Artifact artifact = new DefaultArtifact(coord);
- return new Dependency(artifact, null);
- }
-
- /**
- * Converts the given list of artifact coordinates to dependencies.
- *
- * @param coords The list of coordinates.
- * @return The corresponding dependencies.
- */
- public List<Dependency> toDependencies(List<String> coords) {
- List<Dependency> result = new ArrayList<>();
- for (String coord : coords) {
- result.add(toDependency(coord));
- }
- LOG.trace("toDependencies({}) returns {}", coords, result);
- return result;
- }
-
- /**
- * Installs the given artifacts.
- *
- * @param artifacts The artifacts to install.
- * @throws InstallationException if an error occurs.
- */
- public void installArtifacts(Set<Artifact> artifacts) throws InstallationException {
- LocalRepository localRepo = new LocalRepository(localRepository);
- LocalRepositoryManager localManager = repoSystem.newLocalRepositoryManager(repoSession, localRepo);
- DefaultRepositorySystemSession localSession = new DefaultRepositorySystemSession();
- localSession.setLocalRepositoryManager(localManager);
- InstallRequest installRequest = new InstallRequest();
- for (Artifact featureArtifact : artifacts) {
- installRequest.addArtifact(featureArtifact);
- }
- repoSystem.install(localSession, installRequest);
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-import org.apache.karaf.features.internal.model.Bundle;
-import org.apache.karaf.features.internal.model.ConfigFile;
-import org.apache.karaf.features.internal.model.Feature;
-import org.apache.karaf.features.internal.model.Features;
-import org.apache.karaf.features.internal.model.JaxbUtil;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.ops4j.pax.url.mvn.internal.Parser;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class FeatureUtil {
- private static final Logger LOG = LoggerFactory.getLogger(FeatureUtil.class);
-
- private FeatureUtil() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Converts the given list of URLs to artifact coordinates.
- *
- * @param urls The URLs.
- * @return The corresponding artifact coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static List<String> toCoord(List<URL> urls) throws MalformedURLException {
- List<String> result = new ArrayList<>();
- for (URL url : urls) {
- result.add(toCoord(url));
- }
- LOG.trace("toCoord({}) returns {}", urls, result);
- return result;
- }
-
- /**
- * Converts the given URL to artifact coordinates.
- *
- * @param url The URL.
- * @return The corresponding artifact coordinates.
- * @throws MalformedURLException if the URL is malformed.
- */
- public static String toCoord(URL url) throws MalformedURLException {
- String repository = url.toString();
- String unwrappedRepo = repository.replaceFirst("wrap:", "");
- Parser parser = new Parser(unwrappedRepo);
- String coord = parser.getGroup().replace("mvn:", "") + ":" + parser.getArtifact();
- if (parser.getType() != null) {
- coord = coord + ":" + parser.getType();
- }
- if (parser.getClassifier() != null) {
- coord = coord + ":" + parser.getClassifier();
- }
- coord = coord + ":" + parser.getVersion().replaceAll("\\$.*$", "");
- LOG.trace("toCoord({}) returns {}", url, coord);
- return coord;
- }
-
- /**
- * Parses the given repository as URLs and converts them to artifact coordinates.
- *
- * @param repository The repository (list of URLs).
- * @return The corresponding artifact coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static Set<String> mvnUrlsToCoord(List<String> repository) throws MalformedURLException {
- Set<String> result = new LinkedHashSet<>();
- for (String url : repository) {
- result.add(toCoord(new URL(url)));
- }
- LOG.trace("mvnUrlsToCoord({}) returns {}", repository, result);
- return result;
- }
-
- /**
- * Converts the given features' repository to artifact coordinates.
- *
- * @param features The features.
- * @return The corresponding artifact coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static Set<String> featuresRepositoryToCoords(Features features) throws MalformedURLException {
- return mvnUrlsToCoord(features.getRepository());
- }
-
- /**
- * Converts all the given features' repositories to artifact coordinates.
- *
- * @param features The features.
- * @return The corresponding artifact coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static Set<String> featuresRepositoryToCoords(Set<Features> features) throws MalformedURLException {
- Set<String> result = new LinkedHashSet<>();
- for (Features feature : features) {
- result.addAll(featuresRepositoryToCoords(feature));
- }
- LOG.trace("featuresRepositoryToCoords({}) returns {}", features, result);
- return result;
- }
-
- /**
- * Lists the artifact coordinates of the given feature's bundles and configuration files.
- *
- * @param feature The feature.
- * @return The corresponding coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static Set<String> featureToCoords(Feature feature) throws MalformedURLException {
- Set<String> result = new LinkedHashSet<>();
- if (feature.getBundle() != null) {
- result.addAll(bundlesToCoords(feature.getBundle()));
- }
- if (feature.getConfigfile() != null) {
- result.addAll(configFilesToCoords(feature.getConfigfile()));
- }
- LOG.trace("featureToCoords({}) returns {}", feature.getName(), result);
- return result;
- }
-
- /**
- * Lists the artifact coordinates of the given configuration files.
- *
- * @param configfiles The configuration files.
- * @return The corresponding coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static Set<String> configFilesToCoords(List<ConfigFile> configfiles) throws MalformedURLException {
- Set<String> result = new LinkedHashSet<>();
- for (ConfigFile configFile : configfiles) {
- result.add(toCoord(new URL(configFile.getLocation())));
- }
- LOG.trace("configFilesToCoords({}) returns {}", configfiles, result);
- return result;
- }
-
- /**
- * Lists the artifact coordinates of the given bundles.
- *
- * @param bundles The bundles.
- * @return The corresponding coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static Set<String> bundlesToCoords(List<Bundle> bundles) throws MalformedURLException {
- Set<String> result = new LinkedHashSet<>();
- for (Bundle bundle : bundles) {
- result.add(toCoord(new URL(bundle.getLocation())));
- }
- LOG.trace("bundlesToCoords({}) returns {}", bundles, result);
- return result;
- }
-
- /**
- * Extracts all the artifact coordinates for the given features (repositories, bundles, configuration files).
- *
- * @param features The feature.
- * @return The artifact coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static Set<String> featuresToCoords(Features features) throws MalformedURLException {
- Set<String> result = new LinkedHashSet<>();
- if (features.getRepository() != null) {
- result.addAll(featuresRepositoryToCoords(features));
- }
- if (features.getFeature() != null) {
- for (Feature feature : features.getFeature()) {
- result.addAll(featureToCoords(feature));
- }
- }
- LOG.trace("featuresToCoords({}) returns {}", features.getName(), result);
- return result;
- }
-
- /**
- * Extracts all the artifact coordinates for the given set of features (repositories, bundles, configuration
- * files).
- *
- * @param features The features.
- * @return The artifact coordinates.
- * @throws MalformedURLException if a URL is malformed.
- */
- public static Set<String> featuresToCoords(Set<Features> features) throws MalformedURLException {
- Set<String> result = new LinkedHashSet<>();
- for (Features feature : features) {
- result.addAll(featuresToCoords(feature));
- }
- LOG.trace("featuresToCoords({}) returns {}", features, result);
- return result;
- }
-
- /**
- * Unmarshal all the features in the given artifacts.
- *
- * @param featureArtifacts The artifacts.
- * @return The features.
- * @throws FileNotFoundException if a file is missing.
- */
- public static Set<Features> readFeatures(Set<Artifact> featureArtifacts) throws FileNotFoundException {
- Set<Features> result = new LinkedHashSet<>();
- for (Artifact artifact : featureArtifacts) {
- result.add(readFeature(artifact));
- }
- LOG.trace("readFeatures({}) returns {}", featureArtifacts, result);
- return result;
- }
-
- /**
- * Unmarshal the features in the given artifact.
- *
- * @param artifact The artifact.
- * @return The features.
- * @throws FileNotFoundException if a file is missing.
- */
- public static Features readFeature(Artifact artifact) throws FileNotFoundException {
- File file = artifact.getFile();
- FileInputStream stream = new FileInputStream(file);
- Features result = JaxbUtil.unmarshal(stream, false);
- LOG.trace("readFeature({}) returns {} without resolving first", artifact, result.getName());
- return result;
- }
-
- /**
- * Unmarshal the features matching the given artifact coordinates.
- *
- * @param aetherUtil The Aether resolver.
- * @param coords The artifact coordinates.
- * @return The features.
- * @throws ArtifactResolutionException if the coordinates can't be resolved.
- * @throws FileNotFoundException if a file is missing.
- */
- public static Features readFeature(AetherUtil aetherUtil, String coords)
- throws ArtifactResolutionException, FileNotFoundException {
- Artifact artifact = aetherUtil.resolveArtifact(coords);
- Features result = readFeature(artifact);
- LOG.trace("readFeature({}) returns {} after resolving first", coords, result.getName());
- return result;
- }
-
- /**
- * Unmarshals all the features starting from the given feature.
- *
- * @param aetherUtil The Aether resolver.
- * @param features The starting features.
- * @param existingCoords The artifact coordinates which have already been unmarshalled.
- * @return The features.
- * @throws MalformedURLException if a URL is malformed.
- * @throws FileNotFoundException if a file is missing.
- * @throws ArtifactResolutionException if artifact coordinates can't be resolved.
- */
- public static Set<Features> findAllFeaturesRecursively(
- AetherUtil aetherUtil, Features features, Set<String> existingCoords)
- throws MalformedURLException, FileNotFoundException, ArtifactResolutionException {
- LOG.debug("findAllFeaturesRecursively({}) starts", features.getName());
- LOG.trace("findAllFeaturesRecursively knows about these coords: {}", existingCoords);
- Set<Features> result = new LinkedHashSet<>();
- Set<String> coords = FeatureUtil.featuresRepositoryToCoords(features);
- for (String coord : coords) {
- if (!existingCoords.contains(coord)) {
- LOG.trace("findAllFeaturesRecursively() going to add {}", coord);
- existingCoords.add(coord);
- Features feature = FeatureUtil.readFeature(aetherUtil, coord);
- result.add(feature);
- LOG.debug("findAllFeaturesRecursively() added {}", coord);
- result.addAll(findAllFeaturesRecursively(aetherUtil, FeatureUtil.readFeature(aetherUtil, coord),
- existingCoords));
- } else {
- LOG.trace("findAllFeaturesRecursively() skips known {}", coord);
- }
- }
- return result;
- }
-
- /**
- * Unmarshals all the features starting from the given features.
- *
- * @param aetherUtil The Aether resolver.
- * @param features The starting features.
- * @param existingCoords The artifact coordinates which have already been unmarshalled.
- * @return The features.
- * @throws MalformedURLException if a URL is malformed.
- * @throws FileNotFoundException if a file is missing.
- * @throws ArtifactResolutionException if artifact coordinates can't be resolved.
- */
- public static Set<Features> findAllFeaturesRecursively(
- AetherUtil aetherUtil, Set<Features> features, Set<String> existingCoords)
- throws MalformedURLException, FileNotFoundException, ArtifactResolutionException {
- Set<Features> result = new LinkedHashSet<>();
- for (Features feature : features) {
- result.addAll(findAllFeaturesRecursively(aetherUtil, feature, existingCoords));
- }
- return result;
- }
-
- /**
- * Unmarshals all the features (including known ones) starting from the given features.
- *
- * @param aetherUtil The Aether resolver.
- * @param features The starting features.
- * @return The features.
- * @throws MalformedURLException if a URL is malformed.
- * @throws FileNotFoundException if a file is missing.
- * @throws ArtifactResolutionException if artifact coordinates can't be resolved.
- */
- public static Set<Features> findAllFeaturesRecursively(AetherUtil aetherUtil, Set<Features> features)
- throws MalformedURLException, FileNotFoundException, ArtifactResolutionException {
- return findAllFeaturesRecursively(aetherUtil, features, new LinkedHashSet<>());
- }
-
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent;
-
-import java.util.List;
-import org.eclipse.aether.graph.DependencyFilter;
-import org.eclipse.aether.graph.DependencyNode;
-
-public class KarafFeaturesDependencyFilter implements DependencyFilter {
-
- /**
- * Accepts only Karaf features.
- *
- * @param node The dependency node.
- * @param parents The parents (ignored).
- * @return {@code true} if the dependency is a Karaf feature, {@code false} otherwise.
- */
- @Override
- public boolean accept(DependencyNode node, List<DependencyNode> parents) {
- return node != null
- && node.getArtifact() != null
- && node.getDependency() != null
- && node.getDependency().getScope() != null
- && node.getArtifact().getClassifier().equals("features")
- && node.getArtifact().getExtension().equals("xml");
- }
-
-}
+++ /dev/null
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.odlparent;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.aether.artifact.DefaultArtifact;
-import org.eclipse.aether.artifact.DefaultArtifactType;
-import org.eclipse.aether.graph.Dependency;
-
-public final class MvnToAetherMapper {
- private MvnToAetherMapper() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * Converts a Maven model dependency to an Aether dependency.
- *
- * @param dependency The Maven model dependency.
- * @return The Aether dependency.
- */
- public static Dependency toAether(org.apache.maven.model.Dependency dependency) {
- DefaultArtifact artifact = new DefaultArtifact(dependency.getGroupId(),
- dependency.getArtifactId(),
- dependency.getClassifier(),
- null,
- dependency.getVersion(),
- new DefaultArtifactType(dependency.getType()));
- return new Dependency(artifact, null);
- }
-
- /**
- * Converts a list of Maven model dependencies to a list of Aether dependencies.
- *
- * @param dependencies The Maven model dependencies.
- * @return The Aether dependencies.
- */
- public static List<Dependency> toAether(List<org.apache.maven.model.Dependency> dependencies) {
- List<Dependency> result = new ArrayList<>();
- for (org.apache.maven.model.Dependency dependency : dependencies) {
- result.add(toAether(dependency));
- }
- return result;
- }
-}
+++ /dev/null
-/*
- * Copyright 2001-2005 The Apache Software Foundation.
- *
- * 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.
- */
-
-package org.opendaylight.odlparent;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Enumeration;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.karaf.features.internal.model.Features;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.project.MavenProject;
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.artifact.Artifact;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.opendaylight.odlparent.featuretest.CustomBundleUrlStreamHandlerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-// TODO: Use org.apache.maven.plugin.annotations.* to allow more flexibility for non-ODL consumers.
-
-/**
- * Mojo populating the local repository by delegating to Aether.
- *
- * @goal populate-local-repo
- * @phase prepare-package
- */
-public class PopulateLocalRepoMojo
- extends AbstractMojo {
- private static final Logger LOG = LoggerFactory.getLogger(PopulateLocalRepoMojo.class);
-
- static {
- // Static initialization, as we may be invoked multiple times
- // karaf-maven-plugin defines its own URLStreamHandlerFactory for install-kars, so we may find a factory
- // already defined (but it handles "mvn:" and "wrap:mvn:" so we should be OK)
- try {
- URL.setURLStreamHandlerFactory(new CustomBundleUrlStreamHandlerFactory());
- } catch (Error e) {
- LOG.warn("populate-local-repo: URL factory is already defined");
- }
- }
-
- /**
- * The Maven project being built.
- *
- * @component
- * @required
- * @readonly
- */
- private MavenProject project;
-
- /**
- * The entry point to Aether, i.e. the component doing all the work.
- *
- * @component
- */
- private RepositorySystem repoSystem;
-
- /**
- * The current repository/network configuration of Maven.
- *
- * @parameter default-value="${repositorySystemSession}"
- * @readonly
- */
- private RepositorySystemSession repoSession;
-
- /**
- * The project's remote repositories to use for the resolution of plugins and their dependencies.
- *
- * @parameter default-value="${project.remoteProjectRepositories}"
- * @readonly
- */
- private List<RemoteRepository> remoteRepos;
-
- /**
- * The local repository to use for the resolution of plugins and their dependencies.
- *
- * @parameter
- */
- private File localRepo;
-
- private AetherUtil aetherUtil;
-
- @Override
- public void execute() throws MojoExecutionException, MojoFailureException {
-
- aetherUtil = new AetherUtil(repoSystem, repoSession, remoteRepos, localRepo);
- try {
- Set<Artifact> startupArtifacts = readStartupProperties();
- aetherUtil.installArtifacts(startupArtifacts);
- Set<Artifact> featureArtifacts = readFeatureCfg();
- featureArtifacts.addAll(
- aetherUtil.resolveDependencies(MvnToAetherMapper.toAether(project.getDependencies()),
- new KarafFeaturesDependencyFilter()));
- Set<Features> features = FeatureUtil.readFeatures(featureArtifacts);
- // Do not provide FeatureUtil.featuresRepositoryToCoords(features)) as existingCoords
- // to findAllFeaturesRecursively, as those coords are not resolved yet, and it would lead to Bug 6187.
- features.addAll(FeatureUtil.findAllFeaturesRecursively(aetherUtil, features));
- for (Features feature : features) {
- LOG.info("Feature repository discovered recursively: {}", feature.getName());
- }
- Set<Artifact> artifacts = aetherUtil.resolveArtifacts(FeatureUtil.featuresToCoords(features));
- artifacts.addAll(featureArtifacts);
-
- for (Artifact artifact : artifacts) {
- LOG.debug("Artifact to be installed: {}", artifact.toString());
- }
- if (localRepo != null) {
- aetherUtil.installArtifacts(artifacts);
- }
- } catch (Exception e) {
- throw new MojoExecutionException("Failed to execute", e);
- }
- }
-
- private Set<Artifact> readFeatureCfg() throws ArtifactResolutionException {
- Set<Artifact> artifacts = new LinkedHashSet<>();
- File file = new File(localRepo.getParentFile().toString() + "/etc/org.apache.karaf.features.cfg");
- Properties prop = new Properties();
- try {
- prop.load(new FileInputStream(file));
- String featuresRepositories = prop.getProperty("featuresRepositories");
- List<String> result = Arrays.asList(featuresRepositories.split(","));
- for (String mvnUrl : result) {
- artifacts.add(aetherUtil.resolveArtifact(FeatureUtil.toCoord(new URL(mvnUrl))));
- }
- } catch (FileNotFoundException e) {
- LOG.info("Could not find properties file: {}", file.getAbsolutePath(), e);
- } catch (IOException e) {
- LOG.info("Could not read properties file: {}", file.getAbsolutePath(), e);
- }
-
- return artifacts;
- }
-
- private Set<Artifact> readStartupProperties() throws ArtifactResolutionException {
- Set<Artifact> artifacts = new LinkedHashSet<>();
- File file = new File(localRepo.getParentFile().toString() + "/etc/startup.properties");
- Properties prop = new Properties();
- try {
- prop.load(new FileInputStream(file));
- Enumeration<Object> mvnUrls = prop.keys();
- while(mvnUrls.hasMoreElements()) {
- String mvnUrl = (String)mvnUrls.nextElement();
- Artifact artifact = aetherUtil.resolveArtifact(FeatureUtil.toCoord(new URL(mvnUrl)));
- artifacts.add(artifact);
- }
- } catch (FileNotFoundException e) {
- LOG.info("Could not find properties file: {}", file.getAbsolutePath(), e);
- } catch (IOException e) {
- LOG.info("Could not read properties file: {}", file.getAbsolutePath(), e);
- }
-
- return artifacts;
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
-
-This program and the accompanying materials are made available under the
-terms of the Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<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.opendaylight.odlparent</groupId>
- <artifactId>odlparent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../odlparent</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>karaf-parent</artifactId>
- <packaging>pom</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <properties>
- <branding.version>1.9.1-SNAPSHOT</branding.version>
- <karaf.localFeature>standard</karaf.localFeature>
- <!-- Karaf Maven plugin 3.0.3 reinstalls already installed
- boot features to container, which could be observed
- in huge logs and seems like loop in build, even if it
- is not.
- -->
- <karaf.maven.version>3.0.1</karaf.maven.version>
- <karaf.archiveTarGz>true</karaf.archiveTarGz>
- <karaf.archiveZip>true</karaf.archiveZip>
- </properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <!-- scope is compile so all features (there is only one) are installed
- into startup.properties and the feature repo itself is not installed -->
- <groupId>org.apache.karaf.features</groupId>
- <artifactId>framework</artifactId>
- <version>${karaf.version}</version>
- <type>kar</type>
- <exclusions>
- <exclusion>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.sshd</groupId>
- <artifactId>sshd-core</artifactId>
- </exclusion>
- <!-- We provide a newer version of Aries Proxy -->
- <exclusion>
- <groupId>org.apache.aries.proxy</groupId>
- <artifactId>org.apache.aries.proxy.impl</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <dependencies>
- <!-- karaf standard features - scope is runtime so the feature repo is listed in the
- features cfg file but the features aren't all installed by default via the
- startup.properties. The features may be installed using the karaf-maven-plugin
- configuration. -->
- <dependency>
- <groupId>org.apache.karaf.features</groupId>
- <artifactId>standard</artifactId>
- <version>${karaf.version}</version>
- <type>xml</type>
- <classifier>features</classifier>
- <scope>runtime</scope>
- </dependency>
- <!-- karaf region dependency -->
- <dependency>
- <groupId>org.apache.karaf.region</groupId>
- <artifactId>org.apache.karaf.region.persist</artifactId>
- <version>${karaf.version}</version>
- <scope>runtime</scope>
- </dependency>
- <!-- ODL Branding -->
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>karaf.branding</artifactId>
- <version>${branding.version}</version>
- <scope>compile</scope>
- </dependency>
-
- <!-- Resources needed -->
- <dependency>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>opendaylight-karaf-resources</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- </dependency>
-
- <!-- Aries Proxy 1.0.5 contains important bug fixes -->
- <!-- Once we upgrade to a version of Karaf which has at least 1.0.5, this can be removed -->
- <dependency>
- <groupId>org.apache.aries.proxy</groupId>
- <artifactId>org.apache.aries.proxy.impl</artifactId>
- <version>1.0.5</version>
- </dependency>
- </dependencies>
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.eclipse.m2e</groupId>
- <artifactId>lifecycle-mapping</artifactId>
- <version>1.0.0</version>
- <configuration>
- <lifecycleMappingMetadata>
- <pluginExecutions>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <versionRange>[0,)</versionRange>
- <goals>
- <goal>cleanVersions</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <versionRange>[0,)</versionRange>
- <goals>
- <goal>copy</goal>
- <goal>unpack</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.karaf.tooling</groupId>
- <artifactId>karaf-maven-plugin</artifactId>
- <versionRange>[0,)</versionRange>
- <goals>
- <goal>commands-generate-help</goal>
- <goal>features-add-to-repository</goal>
- <goal>install-kars</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.fusesource.scalate</groupId>
- <artifactId>maven-scalate-plugin</artifactId>
- <versionRange>[0,)</versionRange>
- <goals>
- <goal>sitegen</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- <pluginExecution>
- <pluginExecutionFilter>
- <groupId>org.apache.servicemix.tooling</groupId>
- <artifactId>depends-maven-plugin</artifactId>
- <versionRange>[0,)</versionRange>
- <goals>
- <goal>generate-depends-file</goal>
- </goals>
- </pluginExecutionFilter>
- <action>
- <ignore></ignore>
- </action>
- </pluginExecution>
- </pluginExecutions>
- </lifecycleMappingMetadata>
- </configuration>
- </plugin>
-
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-resources</id>
- <!-- here the phase you need -->
- <phase>prepare-package</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${basedir}/target/assembly</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/assembly</directory>
- </resource>
- </resources>
- <overwrite>true</overwrite>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.karaf.tooling</groupId>
- <artifactId>karaf-maven-plugin</artifactId>
- <version>${karaf.maven.version}</version>
- <extensions>true</extensions>
- <configuration>
- <startupFeatures>
- <!-- For some reason, the eventadmin bundle works fine when installed via the
- startup.properties but doesn't work properly when installed via the
- boot features. -->
- <feature>eventadmin</feature>
- </startupFeatures>
- <bootFeatures>
- <feature>standard</feature>
- <feature>${karaf.localFeature}</feature>
- </bootFeatures>
- <!-- no installedFeatures -->
- </configuration>
- <executions>
- <execution>
- <id>populate-system</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>features-add-to-repository</goal>
- </goals>
- <configuration>
- <descriptors>
- <descriptor>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</descriptor>
- </descriptors>
- <features>
- <feature>standard</feature>
- <feature>config</feature>
- <feature>package</feature>
- <feature>kar</feature>
- <feature>ssh</feature>
- <feature>management</feature>
- <feature>war</feature>
- </features>
- <repository>target/assembly/system</repository>
- </configuration>
- </execution>
- <execution>
- <id>process-resources</id>
- <goals>
- <goal>install-kars</goal>
- </goals>
- <phase>process-resources</phase>
- </execution>
- <execution>
- <id>package</id>
- <goals>
- <goal>instance-create-archive</goal>
- </goals>
- <configuration>
- <archiveTarGz>${karaf.archiveTarGz}</archiveTarGz>
- <archiveZip>${karaf.archiveZip}</archiveZip>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>${checkstyle.version}</version>
- <configuration>
- <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/configuration\/initial\/</excludes>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy</id>
- <goals>
- <goal>copy</goal>
- </goals>
- <!-- here the phase you need -->
- <phase>generate-resources</phase>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>karaf.branding</artifactId>
- <version>${karaf.branding.version}</version>
- <outputDirectory>target/assembly/lib</outputDirectory>
- <destFileName>karaf.branding-${branding.version}.jar</destFileName>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- <execution>
- <id>unpack-karaf-resources</id>
- <goals>
- <goal>unpack-dependencies</goal>
- </goals>
- <phase>prepare-package</phase>
- <configuration>
- <outputDirectory>${project.build.directory}/assembly</outputDirectory>
- <groupId>org.opendaylight.odlparent</groupId>
- <includeArtifactIds>opendaylight-karaf-resources</includeArtifactIds>
- <excludes>META-INF\/**</excludes>
- <excludeTransitive>true</excludeTransitive>
- <ignorePermissions>false</ignorePermissions>
- </configuration>
- </execution>
- <execution>
- <id>org.ops4j.pax.url.mvn.cfg</id>
- <goals>
- <goal>copy</goal>
- </goals>
- <phase>prepare-package</phase>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>opendaylight-karaf-resources</artifactId>
- <type>properties</type>
- <classifier>config</classifier>
- <overWrite>true</overWrite>
- <outputDirectory>${project.build.directory}/assembly/etc/</outputDirectory>
- <destFileName>org.ops4j.pax.url.mvn.cfg</destFileName>
- </artifactItem>
- </artifactItems>
- <overWriteReleases>true</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <phase>prepare-package</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target>
- <chmod perm="755">
- <fileset dir="${project.build.directory}/assembly/bin">
- <include name="karaf"/>
- <include name="instance"/>
- <include name="start"/>
- <include name="stop"/>
- <include name="status"/>
- <include name="client"/>
- <include name="shell"/>
- </fileset>
- </chmod>
- <!-- Remove this once Karaf provides a new-enough version of Aries Proxy -->
- <replace dir="${project.build.directory}/assembly/etc" token="org.apache.aries.proxy.impl/1.0.4"
- value="org.apache.aries.proxy.impl/1.0.5">
- <include name="startup.properties"/>
- </replace>
-
- <!-- BUG-5917, BUG-5943: remove overrides for platform factories and neuter Xalan's services-->
- <replace dir="${project.build.directory}/assembly/etc" token="javax.xml.parsers.DocumentBuilderFactory="
- value="# BUG-5943: javax.xml.parsers.DocumentBuilderFactory=">
- <include name="system.properties"/>
- </replace>
- <replace dir="${project.build.directory}/assembly/etc" token="javax.xml.transform.TransformerFactory="
- value="# BUG-5917: javax.xml.transform.TransformerFactory=">
- <include name="system.properties"/>
- </replace>
- <!-- Karaf 3.0.6 ships the Xalan 2.7.2_2 ServiceMix bundle -->
- <jar destfile="${project.build.directory}/assembly/lib/endorsed/odl-org.apache.servicemix.bundles.xalan-2.7.2_2_odl.jar">
- <zipfileset src="${project.build.directory}/assembly/lib/endorsed/org.apache.servicemix.bundles.xalan-2.7.2_2.jar"
- excludes="META-INF/services/javax.xml.*" erroronmissingarchive="false"/>
- </jar>
- <delete file="${project.build.directory}/assembly/lib/endorsed/org.apache.servicemix.bundles.xalan-2.7.2_2.jar" />
- <!-- Karaf 3.0.7 ships the Xalan 2.7.2_3 ServiceMix bundle -->
- <jar destfile="${project.build.directory}/assembly/lib/endorsed/odl-org.apache.servicemix.bundles.xalan-2.7.2_3_odl.jar">
- <zipfileset src="${project.build.directory}/assembly/lib/endorsed/org.apache.servicemix.bundles.xalan-2.7.2_3.jar"
- excludes="META-INF/services/javax.xml.*" erroronmissingarchive="false"/>
- </jar>
- <delete file="${project.build.directory}/assembly/lib/endorsed/org.apache.servicemix.bundles.xalan-2.7.2_3.jar" />
-
- </target>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>karaf-plugin</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <executions>
- <execution>
- <id>populate-local-repo</id>
- <goals>
- <goal>populate-local-repo</goal>
- </goals>
- <configuration>
- <localRepo>${project.build.directory}/assembly/system</localRepo>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.karaf.tooling</groupId>
- <artifactId>karaf-maven-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>karaf-plugin</artifactId>
- </plugin>
- </plugins>
- </build>
-
-</project>
+++ /dev/null
-<?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.opendaylight.odlparent</groupId>
- <artifactId>karaf-parent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../karaf-parent</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>opendaylight-karaf-empty</artifactId>
- <packaging>pom</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
- <dependencies>
- <dependency>
- <!-- scope is compile so all features (there is only one) are installed
- into startup.properties and the feature repo itself is not installed -->
- <groupId>org.apache.karaf.features</groupId>
- <artifactId>framework</artifactId>
- <type>kar</type>
- </dependency>
- </dependencies>
- <scm>
- <connection>scm:git:http://git.opendaylight.org/gerrit/odlparent.git</connection>
- <developerConnection>scm:git:ssh://git.opendaylight.org:29418/odlparent.git</developerConnection>
- <tag>HEAD</tag>
- <url>https://git.opendaylight.org/gerrit/gitweb?p=odlparent.git;a=tree;f=karaf/opendaylight-karaf-empty;hb=HEAD</url>
- </scm>
-</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<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.opendaylight.odlparent</groupId>
- <artifactId>odlparent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../../odlparent</relativePath>
- </parent>
- <artifactId>opendaylight-karaf-resources</artifactId>
- <description>Resources for opendaylight-karaf</description>
- <packaging>jar</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
- <properties>
- <!-- These are used in the instance script and need to be kept in sync with Karaf's definitions -->
- <aries.blueprint.api.version>1.0.1</aries.blueprint.api.version>
- <aries.blueprint.cm.version>1.0.8</aries.blueprint.cm.version>
- <aries.blueprint.core.version>1.6.1</aries.blueprint.core.version>
- <felix.framework.version>4.2.1</felix.framework.version>
- <jline.version>2.13</jline.version>
- <mina.version>2.0.7</mina.version>
- <pax.logging.version>1.8.4</pax.logging.version>
- <slf4j.version>1.7.12</slf4j.version>
- <sshd.version>0.14.0</sshd.version>
- </properties>
- <build>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <filtering>true</filtering>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>copy</id>
- <goals>
- <goal>copy</goal>
- </goals>
- <!-- here the phase you need -->
- <phase>generate-resources</phase>
- <configuration>
- <artifactItems>
- <!-- Needs to be copied to lib/ext in order to start bouncy provider for mina sshd -->
- <artifactItem>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcprov-jdk15on</artifactId>
- <version>${bouncycastle.version}</version>
- <outputDirectory>target/classes/lib/ext</outputDirectory>
- <destFileName>bcprov-jdk15on-${bouncycastle.version}.jar</destFileName>
- </artifactItem>
- <artifactItem>
- <groupId>org.bouncycastle</groupId>
- <artifactId>bcpkix-jdk15on</artifactId>
- <version>${bouncycastle.version}</version>
- <outputDirectory>target/classes/lib/ext</outputDirectory>
- <destFileName>bcpkix-jdk15on-${bouncycastle.version}.jar</destFileName>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <phase>package</phase>
- <configuration>
- <artifacts>
- <artifact>
- <file>src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg</file>
- <type>properties</type>
- <classifier>config</classifier>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
+++ /dev/null
-################################################################################
-#
-# 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
-
-#
-# Disable aether support by default. This ensure that the defaultRepositories
-# below will be used
-#
-#org.ops4j.pax.url.mvn.disableAether=true
-
-#
-# 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=
-
-# 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 containing releases:
-# http://repo1.maven.org/maven2
-# http://repository.apache.org/content/groups/snapshots-group
-# http://svn.apache.org/repos/asf/servicemix/m2-repo
-# http://repository.springsource.com/maven/bundles/release
-# http://repository.springsource.com/maven/bundles/external
-# 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 snaphots
-# @noreleases : the repository does not contain any released artifacts
-# @id=reponid : the id for the repository, just like in the settings.xml this is optional but recomendet
-#
-# The default list doesn't contain any repository containing snapshots as it can impact the artifacts resolution.
-# You may want to add the following repositories containing snapshots:
-# http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases
-# http://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@norelease
-# http://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
-#
-org.ops4j.pax.url.mvn.repositories= \
- file:${karaf.home}/${karaf.default.repository}@id=system.repository, \
- file:${karaf.data}/kar@id=kar.repository@multi
+++ /dev/null
-#!/bin/bash
-#
-# 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.
-#
-
-realpath() {
- OURPWD="$PWD"
- cd "$(dirname "$1")"
- LINK=$(readlink "$(basename "$1")")
- while [ "$LINK" ]; do
- cd "$(dirname "$LINK")"
- LINK=$(readlink "$(basename "$1")")
- done
- REALPATH="$PWD/$(basename "$1")"
- cd "$OURPWD"
- echo "$REALPATH"
-}
-
-REALNAME=$(realpath "$0")
-DIRNAME=$(dirname "$REALNAME")
-PROGNAME=$(basename "$REALNAME")
-
-#
-# Sourcing environment settings for karaf similar to tomcats setenv
-#
-KARAF_SCRIPT="instance"
-export KARAF_SCRIPT
-if [ -f "$DIRNAME/setenv" ]; then
- . "$DIRNAME/setenv"
-fi
-
-#
-# Check/Set up some easily accessible MIN/MAX params for JVM mem usage
-#
-if [ "x$JAVA_MIN_MEM" = "x" ]; then
- JAVA_MIN_MEM=128M
- export JAVA_MIN_MEM
-fi
-if [ "x$JAVA_MAX_MEM" = "x" ]; then
- JAVA_MAX_MEM=512M
- export JAVA_MAX_MEM
-fi
-
-warn() {
- echo "${PROGNAME}: $*"
-}
-
-die() {
- warn "$*"
- exit 1
-}
-
-detectOS() {
- # OS specific support (must be 'true' or 'false').
- cygwin=false;
- darwin=false;
- aix=false;
- os400=false;
- case "`uname`" in
- CYGWIN*)
- cygwin=true
- ;;
- Darwin*)
- darwin=true
- ;;
- AIX*)
- aix=true
- ;;
- OS400*)
- os400=true
- ;;
- esac
- # For AIX, set an environment variable
- if $aix; then
- export LDR_CNTRL=MAXDATA=0xB0000000@DSA
- echo $LDR_CNTRL
- fi
-}
-
-unlimitFD() {
- # Use the maximum available, or set MAX_FD != -1 to use that
- if [ "x$MAX_FD" = "x" ]; then
- MAX_FD="maximum"
- fi
-
- # Increase the maximum file descriptors if we can
- if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ "$MAX_FD_LIMIT" != 'unlimited' ]; then
- if [ $? -eq 0 ]; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
- # use the system max
- MAX_FD="$MAX_FD_LIMIT"
- fi
-
- ulimit -n $MAX_FD > /dev/null
- # echo "ulimit -n" `ulimit -n`
- if [ $? -ne 0 ]; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query system maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
- fi
- fi
-}
-
-locateHome() {
- if [ "x$KARAF_HOME" != "x" ]; then
- warn "Ignoring predefined value for KARAF_HOME"
- fi
-
- # In POSIX shells, CDPATH may cause cd to write to stdout
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
- KARAF_HOME=`cd "$DIRNAME/.."; pwd`
- if [ ! -d "$KARAF_HOME" ]; then
- die "KARAF_HOME is not valid: $KARAF_HOME"
- fi
-}
-
-locateBase() {
- if [ "x$KARAF_BASE" != "x" ]; then
- if [ ! -d "$KARAF_BASE" ]; then
- die "KARAF_BASE is not valid: $KARAF_BASE"
- fi
- else
- KARAF_BASE=$KARAF_HOME
- fi
-}
-
-locateData() {
- if [ "x$KARAF_DATA" != "x" ]; then
- if [ ! -d "$KARAF_DATA" ]; then
- die "KARAF_DATA is not valid: $KARAF_DATA"
- fi
- else
- KARAF_DATA=$KARAF_BASE/data
- fi
-}
-
-locateEtc() {
- if [ "x$KARAF_ETC" != "x" ]; then
- if [ ! -d "$KARAF_ETC" ]; then
- die "KARAF_ETC is not valid: $KARAF_ETC"
- fi
- else
- KARAF_ETC=$KARAF_BASE/etc
- fi
-}
-
-setupNativePath() {
- # Support for loading native libraries
- LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$KARAF_BASE/lib:$KARAF_HOME/lib"
-
- # For Cygwin, set PATH from LD_LIBRARY_PATH
- if $cygwin; then
- LD_LIBRARY_PATH=`cygpath --path --windows "$LD_LIBRARY_PATH"`
- PATH="$PATH;$LD_LIBRARY_PATH"
- export PATH
- fi
- export LD_LIBRARY_PATH
-}
-
-pathCanonical() {
- dst="${1}"
- while [ -h "${dst}" ] ; do
- ls=`ls -ld "${dst}"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- dst="$link"
- else
- dst="`dirname "${dst}"`/$link"
- fi
- done
- bas=`basename "${dst}"`
- dir=`dirname "${dst}"`
- if [ "$bas" != "$dir" ]; then
- dst="`pathCanonical "$dir"`/$bas"
- fi
- echo "${dst}" | sed -e 's#//#/#g' -e 's#/./#/#g' -e 's#/[^/]*/../#/#g'
-}
-
-locateJava() {
- # Setup the Java Virtual Machine
- if $cygwin ; then
- [ -n "$JAVA" ] && JAVA=`cygpath --unix "$JAVA"`
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- fi
-
- if [ "x$JAVA_HOME" = "x" ] && [ "$darwin" = "true" ]; then
- JAVA_HOME="$(/usr/libexec/java_home -v 1.7)"
- fi
- if [ "x$JAVA" = "x" ] && [ -r /etc/gentoo-release ] ; then
- JAVA_HOME=`java-config --jre-home`
- fi
- if [ "x$JAVA" = "x" ]; then
- if [ "x$JAVA_HOME" != "x" ]; then
- if [ ! -d "$JAVA_HOME" ]; then
- die "JAVA_HOME is not valid: $JAVA_HOME"
- fi
- JAVA="$JAVA_HOME/bin/java"
- else
- warn "JAVA_HOME not set; results may vary"
- JAVA=`type java`
- JAVA=`expr "$JAVA" : '.* \(/.*\)$'`
- if [ "x$JAVA" = "x" ]; then
- die "java command not found"
- fi
- fi
- fi
- if [ "x$JAVA_HOME" = "x" ]; then
- JAVA_HOME="$(dirname $(dirname $(pathCanonical "$JAVA")))"
- fi
-}
-
-detectJVM() {
- #echo "`$JAVA -version`"
- # This service should call `java -version`,
- # read stdout, and look for hints
- if $JAVA -version 2>&1 | grep "^IBM" ; then
- JVM_VENDOR="IBM"
- # on OS/400, java -version does not contain IBM explicitly
- elif $os400; then
- JVM_VENDOR="IBM"
- else
- JVM_VENDOR="SUN"
- fi
- # echo "JVM vendor is $JVM_VENDOR"
-}
-
-setupDebugOptions() {
- if [ "x$JAVA_OPTS" = "x" ]; then
- JAVA_OPTS="$DEFAULT_JAVA_OPTS"
- fi
- export JAVA_OPTS
-
- if [ "x$EXTRA_JAVA_OPTS" != "x" ]; then
- JAVA_OPTS="$JAVA_OPTS $EXTRA_JAVA_OPTS"
- fi
-
- # Set Debug options if enabled
- if [ "x$KARAF_DEBUG" != "x" ]; then
- # Use the defaults if JAVA_DEBUG_OPTS was not set
- if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then
- JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS"
- fi
-
- JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS"
- warn "Enabling Java debug options: $JAVA_DEBUG_OPTS"
- fi
-}
-
-setupDefaults() {
- DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM "
-
- #Set the JVM_VENDOR specific JVM flags
- if [ "$JVM_VENDOR" = "SUN" ]; then
- DEFAULT_JAVA_OPTS="-server $DEFAULT_JAVA_OPTS -Dcom.sun.management.jmxremote"
- elif [ "$JVM_VENDOR" = "IBM" ]; then
- if $os400; then
- DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS"
- elif $aix; then
- DEFAULT_JAVA_OPTS="-Xverify:none -Xdump:heap -Xlp $DEFAULT_JAVA_OPTS"
- else
- DEFAULT_JAVA_OPTS="-Xverify:none $DEFAULT_JAVA_OPTS"
- fi
- fi
-
- # Add default security file option
- if [ "x$ODL_JAVA_SECURITY_PROPERTIES" != "x" ]; then
- DEFAULT_JAVA_OPTS="-Djava.security.properties="${ODL_JAVA_SECURITY_PROPERTIES}" $DEFAULT_JAVA_OPTS"
- else
- DEFAULT_JAVA_OPTS="-Djava.security.properties="${KARAF_ETC}/odl.java.security" $DEFAULT_JAVA_OPTS"
- fi
-
- # Add the jars in the lib dir
- for file in "$KARAF_HOME"/lib/*.jar
- do
- if [ -z "$CLASSPATH" ]; then
- CLASSPATH="$file"
- else
- CLASSPATH="$CLASSPATH:$file"
- fi
- done
-
- DEFAULT_JAVA_DEBUG_PORT="5005"
- if [ "x$JAVA_DEBUG_PORT" = "x" ]; then
- JAVA_DEBUG_PORT="$DEFAULT_JAVA_DEBUG_PORT"
- fi
- DEFAULT_JAVA_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$JAVA_DEBUG_PORT"
-
- ##
- ## TODO: Move to conf/profiler/yourkit.{sh|cmd}
- ##
- # Uncomment to enable YourKit profiling
- #DEFAULT_JAVA_DEBUG_OPTS="-Xrunyjpagent"
-}
-
-init() {
- # Determine if there is special OS handling we must perform
- detectOS
-
- # Unlimit the number of file descriptors if possible
- unlimitFD
-
- # Locate the Karaf home directory
- locateHome
-
- # Locate the Karaf base directory
- locateBase
-
- # Locate the Karaf data directory
- locateData
-
- # Locate the Karaf etc directory
- locateEtc
-
- # Setup the native library path
- setupNativePath
-
- # Locate the Java VM to execute
- locateJava
-
- # Determine the JVM vendor
- detectJVM
-
- # Setup default options
- setupDefaults
-
- # Install debug options
- setupDebugOptions
-
-}
-
-run() {
-
- CLASSPATH="${KARAF_HOME}/system/org/apache/karaf/instance/org.apache.karaf.instance.command/${karaf.version}/org.apache.karaf.instance.command-${karaf.version}.jar:${KARAF_HOME}/system/org/apache/karaf/instance/org.apache.karaf.instance.core/${karaf.version}/org.apache.karaf.instance.core-${karaf.version}.jar:${KARAF_HOME}/system/org/apache/karaf/shell/org.apache.karaf.shell.console/${karaf.version}/org.apache.karaf.shell.console-${karaf.version}.jar:${KARAF_HOME}/system/org/apache/karaf/shell/org.apache.karaf.shell.table/${karaf.version}/org.apache.karaf.shell.table-${karaf.version}.jar:${KARAF_HOME}/system/org/apache/aries/blueprint/org.apache.aries.blueprint.api/${aries.blueprint.api.version}/org.apache.aries.blueprint.api-${aries.blueprint.api.version}.jar:${KARAF_HOME}/system/org/apache/aries/blueprint/org.apache.aries.blueprint.core/${aries.blueprint.core.version}/org.apache.aries.blueprint.core-${aries.blueprint.core.version}.jar:${KARAF_HOME}/system/org/apache/aries/blueprint/org.apache.aries.blueprint.cm/${aries.blueprint.cm.version}/org.apache.aries.blueprint.cm-${aries.blueprint.cm.version}.jar:${KARAF_HOME}/system/org/ops4j/pax/logging/pax-logging-api/${pax.logging.version}/pax-logging-api-${pax.logging.version}.jar:${KARAF_HOME}/system/org/apache/felix/org.apache.felix.framework/${felix.framework.version}/org.apache.felix.framework-${felix.framework.version}.jar:${KARAF_HOME}/system/jline/jline/${jline.version}/jline-${jline.version}.jar:$CLASSPATH"
-
- if $cygwin; then
- KARAF_HOME=`cygpath --path --windows "$KARAF_HOME"`
- KARAF_BASE=`cygpath --path --windows "$KARAF_BASE"`
- KARAF_DATA=`cygpath --path --windows "$KARAF_DATA"`
- KARAF_ETC=`cygpath --path --windows "$KARAF_ETC"`
- if [ ! -z "$CLASSPATH" ]; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- fi
- fi
-
- exec "$JAVA" $JAVA_OPTS -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.etc="$KARAF_ETC" -Djava.io.tmpdir="$KARAF_DATA/tmp" -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" $KARAF_OPTS $OPTS -classpath "$CLASSPATH" org.apache.karaf.instance.main.Execute "$@"
-}
-
-main() {
- init
- run "$@"
-}
-
-main "$@"
+++ /dev/null
-@echo off\r
-rem\r
-rem\r
-rem Licensed to the Apache Software Foundation (ASF) under one or more\r
-rem contributor license agreements. See the NOTICE file distributed with\r
-rem this work for additional information regarding copyright ownership.\r
-rem The ASF licenses this file to You under the Apache License, Version 2.0\r
-rem (the "License"); you may not use this file except in compliance with\r
-rem the License. You may obtain a copy of the License at\r
-rem\r
-rem http://www.apache.org/licenses/LICENSE-2.0\r
-rem\r
-rem Unless required by applicable law or agreed to in writing, software\r
-rem distributed under the License is distributed on an "AS IS" BASIS,\r
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-rem See the License for the specific language governing permissions and\r
-rem limitations under the License.\r
-rem\r
-\r
-if not "%ECHO%" == "" echo %ECHO%\r
-\r
-setlocal\r
-set DIRNAME=%~dp0%\r
-set PROGNAME=%~nx0%\r
-set ARGS=%*\r
-\r
-rem Sourcing environment settings for karaf similar to tomcats setenv\r
-SET KARAF_SCRIPT="instance.bat"\r
-if exist "%DIRNAME%setenv.bat" (\r
- call "%DIRNAME%setenv.bat"\r
-)\r
-\r
-rem Check console window title. Set to Karaf by default\r
-if not "%KARAF_TITLE%" == "" (\r
- title %KARAF_TITLE%\r
-) else (\r
- title Karaf\r
-)\r
-\r
-rem Check/Set up some easily accessible MIN/MAX params for JVM mem usage\r
-if "%JAVA_MIN_MEM%" == "" (\r
- set JAVA_MIN_MEM=128M\r
-)\r
-if "%JAVA_MAX_MEM%" == "" (\r
- set JAVA_MAX_MEM=512M\r
-)\r
-\r
-goto BEGIN\r
-\r
-:warn\r
- echo %PROGNAME%: %*\r
-goto :EOF\r
-\r
-:BEGIN\r
-\r
-rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r
-\r
-if not "%KARAF_HOME%" == "" (\r
- call :warn Ignoring predefined value for KARAF_HOME\r
-)\r
-set KARAF_HOME=%DIRNAME%..\r
-if not exist "%KARAF_HOME%" (\r
- call :warn KARAF_HOME is not valid: "%KARAF_HOME%"\r
- goto END\r
-)\r
-\r
-if not "%KARAF_BASE%" == "" (\r
- if not exist "%KARAF_BASE%" (\r
- call :warn KARAF_BASE is not valid: "%KARAF_BASE%"\r
- goto END\r
- )\r
-)\r
-if "%KARAF_BASE%" == "" (\r
- set "KARAF_BASE=%KARAF_HOME%"\r
-)\r
-\r
-if not "%KARAF_DATA%" == "" (\r
- if not exist "%KARAF_DATA%" (\r
- call :warn KARAF_DATA is not valid: "%KARAF_DATA%"\r
- goto END\r
- )\r
-)\r
-if "%KARAF_DATA%" == "" (\r
- set "KARAF_DATA=%KARAF_BASE%\data"\r
-)\r
-\r
-if not "%KARAF_ETC%" == "" (\r
- if not exist "%KARAF_ETC%" (\r
- call :warn KARAF_ETC is not valid: "%KARAF_ETC%"\r
- goto END\r
- )\r
-)\r
-if "%KARAF_ETC%" == "" (\r
- set "KARAF_ETC=%KARAF_BASE%\etc"\r
-)\r
-\r
-set DEFAULT_JAVA_OPTS=\r
-if not "%ODL_JAVA_SECURITY_PROPERTIES%" == "" (\r
- set DEFAULT_JAVA_OPTS=-Djava.security.properties="%ODL_JAVA_SECURITY_PROPERTIES%" %DEFAULT_JAVA_OPTS%\r
-) else (\r
- set DEFAULT_JAVA_OPTS=-Djava.security.properties="%KARAF_ETC%\odl.java.security" %DEFAULT_JAVA_OPTS%\r
-)\r
-\r
-set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005\r
-\r
-rem Support for loading native libraries\r
-set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib\r
-\r
-rem Setup the Java Virtual Machine\r
-if not "%JAVA%" == "" goto :Check_JAVA_END\r
- set JAVA=java\r
- if "%JAVA_HOME%" == "" call :warn JAVA_HOME not set; results may vary\r
- if not "%JAVA_HOME%" == "" set JAVA=%JAVA_HOME%\bin\java\r
- if not exist "%JAVA_HOME%" (\r
- call :warn JAVA_HOME is not valid: "%JAVA_HOME%"\r
- goto END\r
- )\r
-:Check_JAVA_END\r
-\r
-if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%\r
-\r
-if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END\r
- set JAVA_OPTS="%JAVA_OPTS% %EXTRA_JAVA_OPTS%"\r
-:KARAF_EXTRA_JAVA_OPTS_END\r
-\r
-if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END\r
- rem Use the defaults if JAVA_DEBUG_OPTS was not set\r
- if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%\r
-\r
- set JAVA_OPTS="%JAVA_DEBUG_OPTS% %JAVA_OPTS%"\r
- call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%\r
-:KARAF_DEBUG_END\r
-\r
-rem Setup the classpath\r
-pushd "%KARAF_HOME%\lib"\r
-for %%G in (karaf*.jar) do call:APPEND_TO_CLASSPATH %%G\r
-popd\r
-goto CLASSPATH_END\r
-\r
-: APPEND_TO_CLASSPATH\r
-set filename=%~1\r
-set suffix=%filename:~-4%\r
-if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%\r
-goto :EOF\r
-\r
-:CLASSPATH_END\r
-\r
-set CLASSPATH=%KARAF_HOME%\system\org\apache\karaf\instance\org.apache.karaf.instance.command\${karaf.version}\org.apache.karaf.instance.command-${karaf.version}.jar;%KARAF_HOME%\system\org\apache\karaf\instance\org.apache.karaf.instance.core\${karaf.version}\org.apache.karaf.instance.core-${karaf.version}.jar;%KARAF_HOME%\system\org\apache\karaf\shell\org.apache.karaf.shell.console\${karaf.version}\org.apache.karaf.shell.console-${karaf.version}.jar;%KARAF_HOME%\system\org\apache\karaf\shell\org.apache.karaf.shell.table\${karaf.version}\org.apache.karaf.shell.table-${karaf.version}.jar;%KARAF_HOME%\system\org\apache\aries\blueprint\org.apache.aries.blueprint.api\${aries.blueprint.api.version}\org.apache.aries.blueprint.api-${aries.blueprint.api.version}.jar;%KARAF_HOME%\system\org\apache\aries\blueprint\org.apache.aries.blueprint.core\${aries.blueprint.core.version}\org.apache.aries.blueprint.core-${aries.blueprint.core.version}.jar;%KARAF_HOME%\system\org\apache\aries\blueprint\org.apache.aries.blueprint.cm\${aries.blueprint.cm.version}\org.apache.aries.blueprint.cm-${aries.blueprint.cm.version}.jar;%KARAF_HOME%\system\org\ops4j\pax\logging\pax-logging-api\${pax.logging.version}\pax-logging-api-${pax.logging.version}.jar;%KARAF_HOME%\system\org\apache\felix\org.apache.felix.framework\${felix.framework.version}\org.apache.felix.framework-${felix.framework.version}.jar;%KARAF_HOME%\system\jline\jline\${jline.version}\jline-${jline.version}.jar;%CLASSPATH%\r
-\r
-:EXECUTE\r
- if "%SHIFT%" == "true" SET ARGS=%2 %3 %4 %5 %6 %7 %8\r
- if not "%SHIFT%" == "true" SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8\r
- rem Execute the Java Virtual Machine\r
- "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" -Djava.io.tmpdir="%KARAF_DATA%\tmp" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" %KARAF_OPTS% org.apache.karaf.instance.main.Execute %ARGS%\r
-\r
-rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r
-\r
-:END\r
-\r
-endlocal\r
+++ /dev/null
-#!/bin/bash
-#
-# 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.
-#
-
-realpath() {
- OURPWD="$PWD"
- cd "$(dirname "$1")"
- LINK=$(readlink "$(basename "$1")")
- while [ "$LINK" ]; do
- cd "$(dirname "$LINK")"
- LINK=$(readlink "$(basename "$1")")
- done
- REALPATH="$PWD/$(basename "$1")"
- cd "$OURPWD"
- echo "$REALPATH"
-}
-
-REALNAME=$(realpath "$0")
-DIRNAME=$(dirname "$REALNAME")
-PROGNAME=$(basename "$REALNAME")
-
-#
-# Sourcing environment settings for karaf similar to tomcats setenv
-#
-KARAF_SCRIPT="karaf"
-export KARAF_SCRIPT
-if [ -f "$DIRNAME/setenv" ]; then
- . "$DIRNAME/setenv"
-fi
-
-#
-# Set up some easily accessible MIN/MAX params for JVM mem usage
-#
-if [ "x$JAVA_MIN_MEM" = "x" ]; then
- JAVA_MIN_MEM=128M
- export JAVA_MIN_MEM
-fi
-if [ "x$JAVA_MAX_MEM" = "x" ]; then
- JAVA_MAX_MEM=512M
- export JAVA_MAX_MEM
-fi
-
-#
-# Check the mode that initiated the script
-#
-if [ "x$1" != "x" ]; then
- MODE=$1
-fi
-
-warn() {
- echo "${PROGNAME}: $*"
-}
-
-die() {
- warn "$*"
- exit 1
-}
-
-detectOS() {
- # OS specific support (must be 'true' or 'false').
- cygwin=false;
- darwin=false;
- aix=false;
- os400=false;
- case "`uname`" in
- CYGWIN*)
- cygwin=true
- ;;
- Darwin*)
- darwin=true
- ;;
- AIX*)
- aix=true
- ;;
- OS400*)
- os400=true
- ;;
- esac
- # For AIX, set an environment variable
- if $aix; then
- export LDR_CNTRL=MAXDATA=0xB0000000@DSA
- echo $LDR_CNTRL
- fi
-}
-
-unlimitFD() {
- # Use the maximum available, or set MAX_FD != -1 to use that
- if [ "x$MAX_FD" = "x" ]; then
- MAX_FD="maximum"
- fi
-
- # Increase the maximum file descriptors if we can
- if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ]; then
- # use the system max
- MAX_FD="$MAX_FD_LIMIT"
- else
- warn "Could not query system maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
- fi
- if [ "$MAX_FD" != 'unlimited' ]; then
- ulimit -n $MAX_FD > /dev/null
- if [ $? -ne 0 ]; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- fi
- fi
-}
-
-locateHome() {
- if [ "x$KARAF_HOME" = "x" ]; then
- # In POSIX shells, CDPATH may cause cd to write to stdout
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
- KARAF_HOME=`cd "$DIRNAME/.."; pwd`
- fi
-
- if [ ! -d "$KARAF_HOME" ]; then
- die "KARAF_HOME is not valid: $KARAF_HOME"
- fi
-}
-
-locateBase() {
- if [ "x$KARAF_BASE" != "x" ]; then
- if [ ! -d "$KARAF_BASE" ]; then
- die "KARAF_BASE is not valid: $KARAF_BASE"
- fi
- else
- KARAF_BASE=$KARAF_HOME
- fi
-}
-
-locateData() {
- if [ "x$KARAF_DATA" != "x" ]; then
- if [ ! -d "$KARAF_DATA" ]; then
- die "KARAF_DATA is not valid: $KARAF_DATA"
- fi
- else
- KARAF_DATA=$KARAF_BASE/data
- fi
-}
-
-locateEtc() {
- if [ "x$KARAF_ETC" != "x" ]; then
- if [ ! -d "$KARAF_ETC" ]; then
- die "KARAF_ETC is not valid: $KARAF_ETC"
- fi
- else
- KARAF_ETC=$KARAF_BASE/etc
- fi
-}
-
-setupNativePath() {
- # Support for loading native libraries
- LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$KARAF_BASE/lib:$KARAF_HOME/lib"
-
- # For Cygwin, set PATH from LD_LIBRARY_PATH
- if $cygwin; then
- LD_LIBRARY_PATH=`cygpath --path --windows "$LD_LIBRARY_PATH"`
- PATH="$PATH;$LD_LIBRARY_PATH"
- export PATH
- fi
- export LD_LIBRARY_PATH
-}
-
-pathCanonical() {
- dst="${1}"
- while [ -h "${dst}" ] ; do
- ls=`ls -ld "${dst}"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- dst="$link"
- else
- dst="`dirname "${dst}"`/$link"
- fi
- done
- bas=`basename "${dst}"`
- dir=`dirname "${dst}"`
- if [ "$bas" != "$dir" ]; then
- dst="`pathCanonical "$dir"`/$bas"
- fi
- echo "${dst}" | sed -e 's#//#/#g' -e 's#/./#/#g' -e 's#/[^/]*/../#/#g'
-}
-
-locateJava() {
- # Setup the Java Virtual Machine
- if $cygwin ; then
- [ -n "$JAVA" ] && JAVA=`cygpath --unix "$JAVA"`
- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- fi
-
- if [ "x$JAVA_HOME" = "x" ] && [ "$darwin" = "true" ]; then
- JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
- fi
- if [ "x$JAVA" = "x" ] && [ -r /etc/gentoo-release ] ; then
- JAVA_HOME=`java-config --jre-home`
- fi
- if [ "x$JAVA" = "x" ]; then
- if [ "x$JAVA_HOME" != "x" ]; then
- if [ ! -d "$JAVA_HOME" ]; then
- die "JAVA_HOME is not valid: $JAVA_HOME"
- fi
- JAVA="$JAVA_HOME/bin/java"
- else
- warn "JAVA_HOME not set; results may vary"
- JAVA=`type java`
- JAVA=`expr "$JAVA" : '.* \(/.*\)$'`
- if [ "x$JAVA" = "x" ]; then
- die "java command not found"
- fi
- fi
- fi
- if [ "x$JAVA_HOME" = "x" ]; then
- JAVA_HOME="$(dirname $(dirname $(pathCanonical "$JAVA")))"
- fi
-}
-
-detectJVM() {
- #echo "`$JAVA -version`"
- # This service should call `java -version`,
- # read stdout, and look for hints
- if $JAVA -version 2>&1 | grep "^IBM" ; then
- JVM_VENDOR="IBM"
- # on OS/400, java -version does not contain IBM explicitly
- elif $os400; then
- JVM_VENDOR="IBM"
- else
- JVM_VENDOR="SUN"
- fi
- # echo "JVM vendor is $JVM_VENDOR"
-}
-
-checkJvmVersion() {
- # echo "`$JAVA -version`"
- VERSION=`"$JAVA" -version 2>&1 | egrep '"([0-9]+\.[0-9]+\..*[0-9]).*"' | awk '{print substr($3,2,length($3)-2)}' | awk '{print substr($1, 3, 3)}' | sed -e 's;\.;;g'`
- # echo $VERSION
- if [ "$VERSION" -lt "80" ]; then
- die "JVM must be 1.8.0 or greater"
- fi
-}
-
-setupDebugOptions() {
- if [ "x$JAVA_OPTS" = "x" ]; then
- JAVA_OPTS="$DEFAULT_JAVA_OPTS"
- fi
- export JAVA_OPTS
-
- if [ "x$EXTRA_JAVA_OPTS" != "x" ]; then
- JAVA_OPTS="$JAVA_OPTS $EXTRA_JAVA_OPTS"
- fi
-
- # Set Debug options if enabled
- if [ "x$KARAF_DEBUG" != "x" ]; then
- # Ignore DEBUG in case of stop, client, or status mode
- if [ "x$MODE" = "xstop" ]; then
- return
- fi
- if [ "x$MODE" = "xclient" ]; then
- return
- fi
- if [ "x$MODE" = "xstatus" ]; then
- return
- fi
- # Use the defaults if JAVA_DEBUG_OPTS was not set
- if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then
- JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS"
- fi
-
- JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS"
- warn "Enabling Java debug options: $JAVA_DEBUG_OPTS"
- fi
-}
-
-setupDefaults() {
- DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -XX:+HeapDumpOnOutOfMemoryError"
-
- #Set the JVM_VENDOR specific JVM flags
- if [ "$JVM_VENDOR" = "SUN" ]; then
- DEFAULT_JAVA_OPTS="-server $DEFAULT_JAVA_OPTS -Dcom.sun.management.jmxremote"
- elif [ "$JVM_VENDOR" = "IBM" ]; then
- if $os400; then
- DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS"
- elif $aix; then
- DEFAULT_JAVA_OPTS="-Xverify:none -Xdump:heap -Xlp $DEFAULT_JAVA_OPTS"
- else
- DEFAULT_JAVA_OPTS="-Xverify:none $DEFAULT_JAVA_OPTS"
- fi
- fi
-
- # Add default security file option
- if [ "x$ODL_JAVA_SECURITY_PROPERTIES" != "x" ]; then
- DEFAULT_JAVA_OPTS="-Djava.security.properties="${ODL_JAVA_SECURITY_PROPERTIES}" $DEFAULT_JAVA_OPTS"
- else
- DEFAULT_JAVA_OPTS="-Djava.security.properties="${KARAF_ETC}/odl.java.security" $DEFAULT_JAVA_OPTS"
- fi
-
- # Add the jars in the lib dir
- for file in "$KARAF_HOME"/lib/karaf*.jar
- do
- if [ -z "$CLASSPATH" ]; then
- CLASSPATH="$file"
- else
- CLASSPATH="$CLASSPATH:$file"
- fi
- done
-
- DEFAULT_JAVA_DEBUG_PORT="5005"
- if [ "x$JAVA_DEBUG_PORT" = "x" ]; then
- JAVA_DEBUG_PORT="$DEFAULT_JAVA_DEBUG_PORT"
- fi
- DEFAULT_JAVA_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$JAVA_DEBUG_PORT"
-
- ##
- ## TODO: Move to conf/profiler/yourkit.{sh|cmd}
- ##
- # Uncomment to enable YourKit profiling
- #DEFAULT_JAVA_DEBUG_OPTS="-Xrunyjpagent"
-}
-
-init() {
- # Determine if there is special OS handling we must perform
- detectOS
-
- # Unlimit the number of file descriptors if possible
- unlimitFD
-
- # Locate the Karaf home directory
- locateHome
-
- # Locate the Karaf base directory
- locateBase
-
- # Locate the Karaf data directory
- locateData
-
- # Locate the Karaf etc directory
- locateEtc
-
- # Setup the native library path
- setupNativePath
-
- # Locate the Java VM to execute
- locateJava
-
- # Determine the JVM vendor
- detectJVM
-
- # Determine the JVM version >= 1.8
- checkJvmVersion
-
- # Setup default options
- setupDefaults
-
- # Install debug options
- setupDebugOptions
-
-}
-
-run() {
- OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true"
- MAIN=org.apache.karaf.main.Main
- while [ "$1" != "" ]; do
- case $1 in
- 'clean')
- rm -Rf "$KARAF_DATA"
- shift
- ;;
- 'debug')
- if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then
- JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS"
- fi
- JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS"
- shift
- ;;
- 'status')
- MAIN=org.apache.karaf.main.Status
- shift
- ;;
- 'stop')
- MAIN=org.apache.karaf.main.Stop
- shift
- ;;
- 'console')
- shift
- ;;
- 'server')
- OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true"
- shift
- ;;
- 'client')
- OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false"
- shift
- ;;
- *)
- break
- ;;
- esac
- done
-
- JAVA_ENDORSED_DIRS="$JAVA_HOME/jre/lib/endorsed:$JAVA_HOME/lib/endorsed:${KARAF_HOME}/lib/endorsed"
- JAVA_EXT_DIRS="$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/ext:${KARAF_HOME}/lib/ext"
- if $cygwin; then
- KARAF_HOME=`cygpath --path --windows "$KARAF_HOME"`
- KARAF_BASE=`cygpath --path --windows "$KARAF_BASE"`
- KARAF_DATA=`cygpath --path --windows "$KARAF_DATA"`
- KARAF_ETC=`cygpath --path --windows "$KARAF_ETC"`
- if [ ! -z "$CLASSPATH" ]; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- fi
- JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
- JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
- JAVA_EXT_DIRS=`cygpath --path --windows "$JAVA_EXT_DIRS"`
- fi
- cd "$KARAF_BASE"
-
- # Use /dev/urandom to avoid blocking on /dev/random
- # See http://www.2uo.de/myths-about-urandom/ to understand why this is safe (as long as your VM provisioning seeds
- # the PRNG)
- # The /dev/./urandom workaround is necessary because of https://bugs.openjdk.java.net/browse/JDK-6202721
- NON_BLOCKING_PRNG=
- [ -c /dev/urandom -a -r /dev/urandom ] && NON_BLOCKING_PRNG=-Djava.security.egd=file:/dev/./urandom
-
- # Using command line arguments as java arguments (as opposed to arguments for $MAIN).
- # FIXME: Document this in User Guide.
- exec "$JAVA" $JAVA_OPTS "${NON_BLOCKING_PRNG}" -Djava.endorsed.dirs="${JAVA_ENDORSED_DIRS}" -Djava.ext.dirs="${JAVA_EXT_DIRS}" -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.data="$KARAF_DATA" -Dkaraf.etc="$KARAF_ETC" -Djava.io.tmpdir="$KARAF_DATA/tmp" -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" $KARAF_OPTS $OPTS "$@" -classpath "$CLASSPATH" $MAIN
-}
-
-main() {
- init
- run "$@"
-}
-
-main "$@"
+++ /dev/null
-@echo off\r
-rem\r
-rem\r
-rem Licensed to the Apache Software Foundation (ASF) under one or more\r
-rem contributor license agreements. See the NOTICE file distributed with\r
-rem this work for additional information regarding copyright ownership.\r
-rem The ASF licenses this file to You under the Apache License, Version 2.0\r
-rem (the "License"); you may not use this file except in compliance with\r
-rem the License. You may obtain a copy of the License at\r
-rem\r
-rem http://www.apache.org/licenses/LICENSE-2.0\r
-rem\r
-rem Unless required by applicable law or agreed to in writing, software\r
-rem distributed under the License is distributed on an "AS IS" BASIS,\r
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-rem See the License for the specific language governing permissions and\r
-rem limitations under the License.\r
-rem\r
-\r
-if not "%ECHO%" == "" echo %ECHO%\r
-\r
-setlocal\r
-set DIRNAME=%~dp0%\r
-set PROGNAME=%~nx0%\r
-set ARGS=%*\r
-\r
-rem Sourcing environment settings for karaf similar to tomcats setenv\r
-SET KARAF_SCRIPT="karaf.bat"\r
-if exist "%DIRNAME%setenv.bat" (\r
- call "%DIRNAME%setenv.bat"\r
-)\r
-\r
-rem Check console window title. Set to Karaf by default\r
-if not "%KARAF_TITLE%" == "" (\r
- title %KARAF_TITLE%\r
-) else (\r
- title Karaf\r
-)\r
-\r
-rem Check/Set up some easily accessible MIN/MAX params for JVM mem usage\r
-if "%JAVA_MIN_MEM%" == "" (\r
- set JAVA_MIN_MEM=128M\r
-)\r
-if "%JAVA_MAX_MEM%" == "" (\r
- set JAVA_MAX_MEM=512M\r
-)\r
-\r
-rem Check if Windows version == 10.0 to override\r
-rem Equinox property fixing karaf startup\r
-rem TODO: Remove this hack when we update Karaf to a compatible version\r
-for /f "tokens=4-5 delims=. " %%i in ('ver') do set WIN_VERSION=%%i.%%j\r
-if "%WIN_VERSION%" == "10.0" set KARAF_WIN10_FIX=-Dorg.osgi.framework.os.name=Win32\r
-\r
-goto BEGIN\r
-\r
-:warn\r
- echo %PROGNAME%: %*\r
-goto :EOF\r
-\r
-:BEGIN\r
-\r
-rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r
-\r
-if not "%KARAF_HOME%" == "" (\r
- call :warn Ignoring predefined value for KARAF_HOME\r
-)\r
-set KARAF_HOME=%DIRNAME%..\r
-if not exist "%KARAF_HOME%" (\r
- call :warn KARAF_HOME is not valid: "%KARAF_HOME%"\r
- goto END\r
-)\r
-\r
-if not "%KARAF_BASE%" == "" (\r
- if not exist "%KARAF_BASE%" (\r
- call :warn KARAF_BASE is not valid: "%KARAF_BASE%"\r
- goto END\r
- )\r
-)\r
-if "%KARAF_BASE%" == "" (\r
- set "KARAF_BASE=%KARAF_HOME%"\r
-)\r
-\r
-if not "%KARAF_DATA%" == "" (\r
- if not exist "%KARAF_DATA%" (\r
- call :warn KARAF_DATA is not valid: "%KARAF_DATA%"\r
- goto END\r
- )\r
-)\r
-if "%KARAF_DATA%" == "" (\r
- set "KARAF_DATA=%KARAF_BASE%\data"\r
-)\r
-\r
-if not "%KARAF_ETC%" == "" (\r
- if not exist "%KARAF_ETC%" (\r
- call :warn KARAF_ETC is not valid: "%KARAF_ETC%"\r
- goto END\r
- )\r
-)\r
-if "%KARAF_ETC%" == "" (\r
- set "KARAF_ETC=%KARAF_BASE%\etc"\r
-)\r
-\r
-set LOCAL_CLASSPATH=%CLASSPATH%\r
-set JAVA_MODE=-server\r
-\r
-set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf\r
-set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005\r
-\r
-if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY\r
- set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf\r
- goto :KARAF_CLASSPATH_END\r
-:KARAF_CLASSPATH_EMPTY\r
- set CLASSPATH=%KARAF_BASE%\conf\r
-:KARAF_CLASSPATH_END\r
-\r
-rem Setup Karaf Home\r
-if exist "%KARAF_HOME%\conf\karaf-rc.cmd" call %KARAF_HOME%\conf\karaf-rc.cmd\r
-if exist "%HOME%\karaf-rc.cmd" call %HOME%\karaf-rc.cmd\r
-\r
-rem Support for loading native libraries\r
-set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib\r
-\r
-rem Setup the Java Virtual Machine\r
-if not "%JAVA%" == "" goto :Check_JAVA_END\r
- if not "%JAVA_HOME%" == "" goto :TryJDKEnd\r
- call :warn JAVA_HOME not set; results may vary\r
-:TryJRE\r
- start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"\r
- if not exist __reg1.txt goto :TryJDK\r
- type __reg1.txt | find "CurrentVersion" > __reg2.txt\r
- if errorlevel 1 goto :TryJDK\r
- for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x\r
- if errorlevel 1 goto :TryJDK\r
- set JavaTemp=%JavaTemp%##\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp:##=%\r
- del __reg1.txt\r
- del __reg2.txt\r
- start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%JavaTemp%"\r
- if not exist __reg1.txt goto :TryJDK\r
- type __reg1.txt | find "JavaHome" > __reg2.txt\r
- if errorlevel 1 goto :TryJDK\r
- for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x\r
- if errorlevel 1 goto :TryJDK\r
- del __reg1.txt\r
- del __reg2.txt\r
- goto TryJDKEnd\r
-:TryJDK\r
- start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit"\r
- if not exist __reg1.txt (\r
- goto TryRegJRE\r
- )\r
- type __reg1.txt | find "CurrentVersion" > __reg2.txt\r
- if errorlevel 1 (\r
- goto TryRegJRE\r
- )\r
- for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x\r
- if errorlevel 1 (\r
- goto TryRegJRE\r
- )\r
- set JavaTemp=%JavaTemp%##\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp: ##=##%\r
- set JavaTemp=%JavaTemp:##=%\r
- del __reg1.txt\r
- del __reg2.txt\r
- start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JavaTemp%"\r
- if not exist __reg1.txt (\r
- goto TryRegJRE\r
- )\r
- type __reg1.txt | find "JavaHome" > __reg2.txt\r
- if errorlevel 1 (\r
- goto TryRegJRE\r
- )\r
- for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x\r
- if errorlevel 1 (\r
- goto TryRegJRE\r
- )\r
- del __reg1.txt\r
- del __reg2.txt\r
-:TryRegJRE\r
- rem try getting the JAVA_HOME from registry\r
- FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion`) DO (\r
- set JAVA_VERSION=%%A\r
- )\r
- FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%JAVA_VERSION%" /v JavaHome`) DO (\r
- set JAVA_HOME=%%A %%B\r
- )\r
- if not exist "%JAVA_HOME%" (\r
- goto TryRegJDK\r
- )\r
- goto TryJDKEnd\r
-:TryRegJDK\r
- rem try getting the JAVA_HOME from registry\r
- FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit" /v CurrentVersion`) DO (\r
- set JAVA_VERSION=%%A\r
- )\r
- FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit\%JAVA_VERSION%" /v JavaHome`) DO (\r
- set JAVA_HOME=%%A %%B\r
- )\r
- if not exist "%JAVA_HOME%" (\r
- call :warn Unable to retrieve JAVA_HOME from Registry\r
- )\r
- goto TryJDKEnd\r
-:TryJDKEnd\r
- if not exist "%JAVA_HOME%" (\r
- call :warn JAVA_HOME is not valid: "%JAVA_HOME%"\r
- goto END\r
- )\r
- set JAVA=%JAVA_HOME%\bin\java\r
-:Check_JAVA_END\r
-\r
-if not exist "%JAVA_HOME%\bin\server\jvm.dll" (\r
- if not exist "%JAVA_HOME%\jre\bin\server\jvm.dll" (\r
- echo WARNING: Running Karaf on a Java HotSpot Client VM because server-mode is not available.\r
- echo Install Java Developer Kit to fix this.\r
- echo For more details see http://java.sun.com/products/hotspot/whitepaper.html#client\r
- set JAVA_MODE=-client\r
- )\r
-)\r
-\r
-set DEFAULT_JAVA_OPTS=%JAVA_MODE% -Xms%JAVA_MIN_MEM% -Xmx%JAVA_MAX_MEM% -Dcom.sun.management.jmxremote -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass\r
-\r
-if not "%ODL_JAVA_SECURITY_PROPERTIES%" == "" (\r
- set DEFAULT_JAVA_OPTS=-Djava.security.properties="%ODL_JAVA_SECURITY_PROPERTIES%" %DEFAULT_JAVA_OPTS%\r
-) else (\r
- set DEFAULT_JAVA_OPTS=-Djava.security.properties="%KARAF_ETC%\odl.java.security" %DEFAULT_JAVA_OPTS%\r
-)\r
-\r
-if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%\r
-\r
-if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END\r
- set JAVA_OPTS=%JAVA_OPTS% %EXTRA_JAVA_OPTS%\r
-:KARAF_EXTRA_JAVA_OPTS_END\r
-\r
-if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END\r
- if "%1" == "stop" goto :KARAF_DEBUG_END\r
- if "%1" == "client" goto :KARAF_DEBUG_END\r
- if "%1" == "status" goto :KARAF_DEBUG_END\r
- rem Use the defaults if JAVA_DEBUG_OPTS was not set\r
- if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%\r
-\r
- set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%\r
- call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%\r
-:KARAF_DEBUG_END\r
-\r
-if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END\r
- set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd\r
-\r
- if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END\r
- call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT%\r
- goto END\r
-:KARAF_PROFILER_END\r
-\r
-rem Setup the classpath\r
-pushd "%KARAF_HOME%\lib"\r
-for %%G in (karaf*.jar) do call:APPEND_TO_CLASSPATH %%G\r
-popd\r
-goto CLASSPATH_END\r
-\r
-: APPEND_TO_CLASSPATH\r
-set filename=%~1\r
-set suffix=%filename:~-4%\r
-if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%\r
-goto :EOF\r
-\r
-:CLASSPATH_END\r
-\r
-rem Execute the JVM or the load the profiler\r
-if "%KARAF_PROFILER%" == "" goto :RUN\r
- rem Execute the profiler if it has been configured\r
- call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT%\r
- call %KARAF_PROFILER_SCRIPT%\r
-\r
-:RUN\r
- SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true\r
- SET MAIN=org.apache.karaf.main.Main\r
- SET SHIFT=false\r
-\r
-:RUN_LOOP\r
- if "%1" == "stop" goto :EXECUTE_STOP\r
- if "%1" == "status" goto :EXECUTE_STATUS\r
- if "%1" == "console" goto :EXECUTE_CONSOLE\r
- if "%1" == "server" goto :EXECUTE_SERVER\r
- if "%1" == "client" goto :EXECUTE_CLIENT\r
- if "%1" == "clean" goto :EXECUTE_CLEAN\r
- if "%1" == "debug" goto :EXECUTE_DEBUG\r
- goto :EXECUTE\r
-\r
-:EXECUTE_STOP\r
- SET MAIN=org.apache.karaf.main.Stop\r
- shift\r
- goto :RUN_LOOP\r
-\r
-:EXECUTE_STATUS\r
- SET MAIN=org.apache.karaf.main.Status\r
- shift\r
- goto :RUN_LOOP\r
-\r
-:EXECUTE_CONSOLE\r
- shift\r
- goto :RUN_LOOP\r
-\r
-:EXECUTE_SERVER\r
- SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true\r
- shift\r
- goto :RUN_LOOP\r
-\r
-:EXECUTE_CLIENT\r
- SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false\r
- shift\r
- goto :RUN_LOOP\r
-\r
-:EXECUTE_CLEAN\r
- rmdir /S /Q "%KARAF_DATA%"\r
- shift\r
- goto :RUN_LOOP\r
-\r
-:EXECUTE_DEBUG\r
- if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%\r
- set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%\r
- shift\r
- goto :RUN_LOOP\r
-\r
-:EXECUTE\r
- SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8\r
- rem Execute the Java Virtual Machine\r
- cd "%KARAF_BASE%"\r
- "%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;%KARAF_HOME%\lib\endorsed" -Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;%KARAF_HOME%\lib\ext" -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" -Djava.io.tmpdir="%KARAF_DATA%\tmp" -Dkaraf.data="%KARAF_DATA%" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" %KARAF_WIN10_FIX% %KARAF_OPTS% %MAIN% %ARGS%\r
-\r
-rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r
-\r
-:END\r
-\r
-endlocal\r
-\r
-if not "%PAUSE%" == "" pause\r
-\r
-:END_NO_PAUSE\r
+++ /dev/null
-#!/bin/sh
-#
-# 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.
-#
-
-#
-# handle specific scripts; the SCRIPT_NAME is exactly the name of the Karaf
-# script: client, instance, shell, start, status, stop, karaf
-#
-# if [ "$KARAF_SCRIPT" == "SCRIPT_NAME" ]; then
-# Actions go here...
-# fi
-
-#
-# general settings which should be applied for all scripts go here; please keep
-# in mind that it is possible that scripts might be executed more than once, e.g.
-# in example of the start script where the start script is executed first and the
-# karaf script afterwards.
-#
-
-#
-# The following section shows the possible configuration options for the default
-# karaf scripts
-#
-# export JAVA_HOME # Location of Java installation
-# export JAVA_MIN_MEM # Minimum memory for the JVM
-# export JAVA_MAX_MEM # Maximum memory for the JVM
-# export JAVA_PERM_MEM # Minimum perm memory for the JVM
-# export JAVA_MAX_PERM_MEM # Maximum perm memory for the JVM
-# export EXTRA_JAVA_OPTS # Additional JVM options
-# export KARAF_HOME # Karaf home folder
-# export KARAF_DATA # Karaf data folder
-# export KARAF_BASE # Karaf base folder
-# export KARAF_ETC # Karaf etc folder
-# export KARAF_OPTS # Additional available Karaf options
-# export KARAF_DEBUG # Enable debug mode
-# export KARAF_REDIRECT # Enable/set the std/err redirection when using bin/start
-if [ "x$JAVA_MAX_PERM_MEM" = "x" ]; then
- export JAVA_MAX_PERM_MEM="512m"
-fi
-if [ "x$JAVA_MAX_MEM" = "x" ]; then
- export JAVA_MAX_MEM="2048m"
-fi
+++ /dev/null
-@echo off
-rem
-rem
-rem Licensed to the Apache Software Foundation (ASF) under one or more
-rem contributor license agreements. See the NOTICE file distributed with
-rem this work for additional information regarding copyright ownership.
-rem The ASF licenses this file to You under the Apache License, Version 2.0
-rem (the "License"); you may not use this file except in compliance with
-rem the License. You may obtain a copy of the License at
-rem
-rem http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem Unless required by applicable law or agreed to in writing, software
-rem distributed under the License is distributed on an "AS IS" BASIS,
-rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-rem See the License for the specific language governing permissions and
-rem limitations under the License.
-rem
-
-rem
-rem handle specific scripts; the SCRIPT_NAME is exactly the name of the Karaf
-rem script; for example karaf.bat, start.bat, stop.bat, admin.bat, client.bat, ...
-rem
-rem if "%KARAF_SCRIPT%" == "SCRIPT_NAME" (
-rem Actions go here...
-rem )
-
-rem
-rem general settings which should be applied for all scripts go here; please keep
-rem in mind that it is possible that scripts might be executed more than once, e.g.
-rem in example of the start script where the start script is executed first and the
-rem karaf script afterwards.
-rem
-
-rem
-rem The following section shows the possible configuration options for the default
-rem karaf scripts
-rem
-rem Window name of the windows console
-rem SET KARAF_TITLE
-rem Location of Java installation
-rem SET JAVA_HOME
-rem Minimum memory for the JVM
-rem SET JAVA_MIN_MEM
-rem Maximum memory for the JVM
-rem SET JAVA_MAX_MEM
-rem Minimum perm memory for the JVM
-rem SET JAVA_PERM_MEM
-rem Maximum perm memory for the JVM
-rem SET JAVA_MAX_PERM_MEM
-rem Additional JVM options
-rem SET EXTRA_JAVA_OPTS
-rem Karaf home folder
-rem SET KARAF_HOME
-rem Karaf data folder
-rem SET KARAF_DATA
-rem Karaf base folder
-rem SET KARAF_BASE
-rem Karaf etc folder
-rem SET KARAF_ETC
-rem Additional available Karaf options
-rem SET KARAF_OPTS
-rem Enable debug mode
-rem SET KARAF_DEBUG
-IF "%JAVA_MAX_PERM_MEM%"=="" SET JAVA_MAX_PERM_MEM=512m
-IF "%JAVA_MAX_MEM%"=="" SET JAVA_MAX_MEM=2048m
+++ /dev/null
-<Context crossContext="true" sessionCookiePath="/" useHttpOnly="false"/>
+++ /dev/null
- <configuration scan="true">
-
- <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{36} %X{akkaSource} - %msg%n</pattern>
- </encoder>
- </appender>
- <appender name="opendaylight.log" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>logs/opendaylight.log</file>
-
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>logs/opendaylight.%d.log.zip</fileNamePattern>
- <maxHistory>1</maxHistory>
- </rollingPolicy>
-
- <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
- <maxFileSize>10MB</maxFileSize>
- </triggeringPolicy>
-
- <encoder>
- <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{35} - %msg%n</pattern>
- </encoder>
- </appender>
- <appender name="audit-file" class="ch.qos.logback.core.FileAppender">
- <file>logs/audit.log</file>
- <append>true</append>
- <encoder>
- <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} %msg %n</pattern>
- </encoder>
- </appender>
- <root level="error">
- <appender-ref ref="STDOUT" />
- <appender-ref ref="opendaylight.log" />
- </root>
-
- <!-- Base log level -->
- <logger name="org.opendaylight" level="INFO"/>
-
-
- <!-- Controller log level -->
- <logger name="org.opendaylight.controller" level="INFO"/>
-
- <!-- OSGi logging bridge -->
- <logger name="org.opendaylight.controller.logging.bridge" level="WARN"/>
- <logger name="org.opendaylight.controller.logging.bridge.internal" level="WARN"/>
-
- <!-- Netty -->
- <logger name="io.netty" level="WARN"/>
-
- <!-- Openflow Protocol Plugin -->
- <logger name="org.opendaylight.controller.protocol_plugin.openflow" level="INFO"/>
- <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.DiscoveryService" level="INFO"/>
- <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.InventoryService" level="INFO"/>
- <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.InventoryServiceShim" level="INFO"/>
- <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.TopologyServices" level="INFO"/>
- <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.TopologyServiceShim" level="INFO"/>
- <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.Controller" level="INFO"/>
- <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.SwitchHandler" level="INFO"/>
- <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.SwitchIOSecureService" level="INFO"/>
- <!-- SAL -->
- <logger name="org.opendaylight.controller.sal" level="INFO"/>
- <logger name="org.opendaylight.controller.sal.implementation" level="INFO"/>
- <logger name="org.opendaylight.controller.sal.implementation.internal.Inventory" level="INFO"/>
- <logger name="org.opendaylight.controller.sal.implementation.internal.Topology" level="INFO"/>
- <!-- remoterpc router and remoterpc routing table -->
- <logger name="org.opendaylight.controller.sal.connector.remoterpc" level="INFO" />
- <!-- Functional Modules -->
- <logger name="org.opendaylight.controller.arphandler" level="INFO"/>
- <logger name="org.opendaylight.controller.hosttracker" level="INFO"/>
- <logger name="org.opendaylight.controller.routing" level="INFO"/>
- <logger name="org.opendaylight.controller.forwardingrulesmanager" level="INFO"/>
- <logger name="org.opendaylight.controller.forwarding.ipswitch" level="INFO"/>
- <logger name="org.opendaylight.controller.switchmanager" level="INFO"/>
- <logger name="org.opendaylight.controller.topologymanager" level="INFO"/>
- <logger name="org.opendaylight.controller.usermanager" level="INFO"/>
- <!-- Web modules -->
- <logger name="org.opendaylight.controller.web" level="INFO"/>
-
- <!-- Clustering -->
- <logger name="org.opendaylight.controller.cluster" level="INFO"/>
- <logger name="org.opendaylight.controller.cluster.datastore.node" level="INFO"/>
-
- <!--
- Unsynchronized controller startup causes models to crop up in random
- order, which results in temporary inability to fully resolve a model,
- which is usually resolved. Do not flood console, but keep the messages,
- as they may be indicating and error.
- -->
- <logger name="org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort" level="INFO" additivity="false">
- <appender-ref ref="opendaylight.log"/>
- </logger>
-
- <!-- To debug MD-SAL schema loading issues, uncomment this -->
- <!--logger name="org.opendaylight.yangtools.yang.parser.impl.util.URLSchemaContextResolver" level="DEBUG"/>
- <logger name="org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl" level="TRACE"/-->
-
- <!-- additivity=false ensures analytics data only goes to the analytics log -->
- <logger name="audit" level="INFO" additivity="false">
- <appender-ref ref="audit-file"/>
- </logger>
-</configuration>
+++ /dev/null
-############################################################
-# Configuration file for tomcat logging
-############################################################
-# Handlers:
-# "handlers" specifies a comma separated list of log Handler
-# classes. These handlers will be installed during VM startup.
-# Note that these classes must be on the system classpath.
-# Following line configures a ConsoleHandler and a FileHandler
-
-handlers= java.util.logging.FileHandler,java.util.logging.ConsoleHandler
-
-############################################################
-# Handler specific properties
-# Describes specific configuration info for Handlers
-# JUL does not support rolling file handler based on date
-# For now we will keep count of files to 5 with rolling size of 10MB
-############################################################
-
-java.util.logging.FileHandler.pattern = logs/tomcat%g.log
-java.util.logging.FileHandler.limit = 104857600
-java.util.logging.FileHandler.count = 5
-java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
-java.util.logging.FileHandler.append = true
-java.util.logging.FileHandler.level = INFO
-
-# Limit the message that are printed on the console to SEVERE and above.
-java.util.logging.ConsoleHandler.level = WARNING
-java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
-
-# SimpleFormatter output format to print one-line log message like this:
-# <YYYY>-<MM>-<DD> <HH>:<MM>:<SS> <TimeZone> [<SOURCE>] ><LOG_LEVEL> <LOGGER> <MESSAGE> <THROWABLE>
-#
-java.util.logging.SimpleFormatter.format=%1$tF %1$tT %1$tZ [%3$s] %4$s %2$s %5$s%6$s%n
-
-############################################################
-# Facility specific properties.
-# Provides extra control for each logger.
-############################################################
-
-# For example, set the com.xyz.foo logger to only log SEVERE
-# messages
-#org.apache.catalina = SEVERE
+++ /dev/null
-<?xml version='1.0' encoding='utf-8'?>
-<!--
- 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.
--->
-<Server>
- <!--APR library loader. Documentation at /docs/apr.html -->
- <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
- <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
- <Listener className="org.apache.catalina.core.JasperListener" />
- <!-- Prevent memory leaks due to use of particular java/javax APIs-->
- <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
- <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
-
- <Service name="Catalina">
- <Connector port="8282" protocol="HTTP/1.1"
- connectionTimeout="20000"
- redirectPort="8663" />
-
-<!--
- Please remove the comments around the following Connector tag to enable HTTPS Authentication support.
- Remember to add a valid keystore in the configuration folder.
- More info : http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration
--->
-
- <!--
- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
- maxThreads="150" scheme="https" secure="true"
- clientAuth="false" sslProtocol="TLS"
- keystoreFile="configuration/keystore"
- keystorePass="changeit"/>
- -->
-
- <Engine name="Catalina" defaultHost="localhost">
- <Host name="localhost" appBase=""
- unpackWARs="false" autoDeploy="false"
- deployOnStartup="false" createDirs="false">
- <Realm className="org.opendaylight.controller.karafsecurity.ControllerCustomRealm" />
- <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
- prefix="web_access_log_" suffix=".txt" resolveHosts="false"
- rotatable="true" fileDateFormat="yyyy-MM"
- pattern="%{yyyy-MM-dd HH:mm:ss.SSS z}t - [%a] - %r"/>
- </Host>
- </Engine>
- </Service>
-</Server>
+++ /dev/null
-# Extra packages to import from the boot class loader
-org.osgi.framework.system.packages.extra=org.apache.karaf.branding,sun.reflect,sun.reflect.misc,sun.misc,sun.nio.ch,com.sun.media.sound
-
-# https://bugs.eclipse.org/bugs/show_bug.cgi?id=325578
-# Extend the framework to avoid the resources to be presented with
-# a URL of type bundleresource: but to be presented as file:
-osgi.hook.configurators.include=org.eclipse.virgo.kernel.equinox.extensions.hooks.ExtensionsHookConfigurator
-
-# Embedded Tomcat configuration File
-org.eclipse.gemini.web.tomcat.config.path=configuration/tomcat-server.xml
-org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
-
-# Use Equinox as default OSGi Framework Implementation
-karaf.framework=equinox
-
-# Show a progress bar on startup and start the console when all bundles are up and running.
-# (If you are in a hurry you can still type enter to start the shell faster.)
-karaf.delay.console=true
-
-# Set security provider to BouncyCastle
-org.apache.karaf.security.providers = org.bouncycastle.jce.provider.BouncyCastleProvider
-
-# We set this to false to disable the Aries BlueprintExtender from doing its orderly container
-# shutdown so we can do it after the CSS has shut down all its modules. Otherwise Aries will
-# shutdown blueprint containers when the karaf framework starts shutdown (ie when bundle 0 is
-# stopped) which can cause failures on CSS module shutdown due to the core blueprint containers
-# and services already being shut down. This setting can be removed when/if CSS is removed
-# completely from ODL.
-org.apache.aries.blueprint.preemptiveShutdown=false
-
-netconf.config.persister.active=1
-
-netconf.config.persister.1.storageAdapterClass=org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter
-netconf.config.persister.1.properties.fileStorage=etc/opendaylight/current/controller.currentconfig.xml
-netconf.config.persister.1.properties.numberOfBackups=1
-
-# logback configuration
-logback.configurationFile=configuration/logback.xml
-
-# Container configuration
-container.profile = Container
-
-# Connection manager configuration
-connection.scheme = ANY_CONTROLLER_ONE_MASTER
-
-# OVSDB configuration
-# ovsdb plugin supports both active and passive connections. It listens on port 6640 by default for Active connections.
-ovsdb.listenPort=6640
-
-# ovsdb creates Openflow nodes/bridges. This configuration configures the bridge's Openflow version.
-# default Openflow version = 1.0, we also support 1.3.
-# ovsdb.of.version=1.3
-
-# ovsdb can be configured with ml2 to perform l3 forwarding. The config below enables that functionality, which is
-# disabled by default.
-# ovsdb.l3.fwd.enabled=yes
-
-# ovsdb can be configured with ml2 to perform arp responder, enabled by default.
-ovsdb.l3.arp.responder.disabled=no
-
-# ovsdb can be configured with ml2 to perform l3 forwarding. When used in that scenario, the mac address of the default
-# gateway --on the external subnet-- is expected to be resolved from its inet address. The config below overrides that
-# specific arp/neighDiscovery lookup.
-# ovsdb.l3gateway.mac=00:00:5E:00:02:01
-
-# TLS configuration
-# To enable TLS, set secureChannelEnabled=true and specify the location of controller Java KeyStore and TrustStore files.
-# The Java KeyStore contains controller's private key and certificate. The Java TrustStore contains the trusted certificate
-# entries, including switches' Certification Authority (CA) certificates. For example,
-# secureChannelEnabled=true
-# controllerKeyStore=./configuration/ctlKeyStore
-# controllerKeyStorePassword=xxxxxxxx (this password should match the password used for KeyStore generation and at least 6 characters)
-# controllerTrustStore=./configuration/ctlTrustStore
-# controllerTrustStorePassword=xxxxxxxx (this password should match the password used for TrustStore generation and at least 6 characters)
-
-secureChannelEnabled=false
-controllerKeyStore=
-controllerKeyStorePassword=
-controllerTrustStore=
-controllerTrustStorePassword=
-
-# User Manager configurations
-enableStrongPasswordCheck = false
-
-#Jolokia configurations
-#org.jolokia.listenForHttpService=false
-
-# Logging configuration for Tomcat-JUL logging
-java.util.logging.config.file=configuration/tomcat-logging.properties
-
-#Hosttracker hostsdb key scheme setting
-hosttracker.keyscheme=IP
-
-# LISP Flow Mapping configuration
-# Enable merging RLOC sets received from different xTR-IDs for the same EID (default: false)
-lisp.mappingMerge = false
-# Enable the Solicit-Map-Request (SMR) mechanism (default: true)
-lisp.smr = true
-# Choose policy for Explicit Locator Path (ELP) handling
-# There are three options:
-# default: don't add or remove locator records, return mapping as-is
-# both: keep the ELP, but add the next hop as a standalone non-LCAF locator with a lower priority
-# replace: remove the ELP, add the next hop as a standalone non-LCAF locator
-lisp.elpPolicy = default
-
+++ /dev/null
-<?xml version="1.0"?>
-<!--
- 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.
--->
-<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//
-DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
-
-<Configure class="org.eclipse.jetty.server.Server">
-
- <!-- =========================================================== -->
- <!-- Set connectors -->
- <!-- =========================================================== -->
- <!-- One of each type! -->
- <!-- =========================================================== -->
-
- <!-- Use this connector for many frequently idle connections and for
- threadless continuations. -->
- <Call name="addConnector">
- <Arg>
- <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
- <Set name="host">
- <Property name="jetty.host" />
- </Set>
- <Set name="port">
- <Property name="jetty.port" default="8181" />
- </Set>
- <Set name="maxIdleTime">300000</Set>
- <Set name="Acceptors">2</Set>
- <Set name="statsOn">false</Set>
- <Set name="confidentialPort">8543</Set>
- <Set name="lowResourcesConnections">20000</Set>
- <Set name="lowResourcesMaxIdleTime">5000</Set>
- </New>
- </Arg>
- </Call>
- <Call name="addConnector">
- <Arg>
- <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
- <Set name="host">
- <Property name="jetty.host" />
- </Set>
- <Set name="port">
- <Property name="jetty.port" default="8080" />
- </Set>
- <Set name="maxIdleTime">300000</Set>
- <Set name="Acceptors">2</Set>
- <Set name="statsOn">false</Set>
- <Set name="confidentialPort">8443</Set>
- <Set name="lowResourcesConnections">20000</Set>
- <Set name="lowResourcesMaxIdleTime">5000</Set>
- </New>
- </Arg>
- </Call>
-
- <!-- =========================================================== -->
- <!-- Configure Authentication Realms -->
- <!-- Realms may be configured for the entire server here, or -->
- <!-- they can be configured for a specific web app in a context -->
- <!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
- <!-- example). -->
- <!-- =========================================================== -->
- <Call name="addBean">
- <Arg>
- <New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
- <Set name="name">karaf</Set>
- <Set name="loginModuleName">karaf</Set>
- <Set name="roleClassNames">
- <Array type="java.lang.String">
- <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
- </Item>
- </Array>
- </Set>
- </New>
- </Arg>
- </Call>
- <Call name="addBean">
- <Arg>
- <New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
- <Set name="name">default</Set>
- <Set name="loginModuleName">karaf</Set>
- <Set name="roleClassNames">
- <Array type="java.lang.String">
- <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
- </Item>
- </Array>
- </Set>
- </New>
- </Arg>
- </Call>
-
-</Configure>
+++ /dev/null
-################################################################################
-#
-# 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.
-#
-################################################################################
-
-#
-# Java platform package export properties.
-#
-
-# Standard package set. Note that:
-# - javax.transaction* is exported with a mandatory attribute
-jre-1.6= \
- javax.accessibility, \
- javax.activation;version="1.1", \
- javax.activity, \
- javax.annotation;version="1.0", \
- javax.annotation.processing;version="1.6", \
- javax.crypto, \
- javax.crypto.interfaces, \
- javax.crypto.spec, \
- javax.imageio, \
- javax.imageio.event, \
- javax.imageio.metadata, \
- javax.imageio.plugins.bmp, \
- javax.imageio.plugins.jpeg, \
- javax.imageio.spi, \
- javax.imageio.stream, \
- javax.jws, \
- javax.jws.soap, \
- javax.lang.model, \
- javax.lang.model.element, \
- javax.lang.model.type, \
- javax.lang.model.util, \
- javax.management, \
- javax.management.loading, \
- javax.management.modelmbean, \
- javax.management.monitor, \
- javax.management.openmbean, \
- javax.management.relation, \
- javax.management.remote, \
- javax.management.remote.rmi, \
- javax.management.timer, \
- javax.naming, \
- javax.naming.directory, \
- javax.naming.event, \
- javax.naming.ldap, \
- javax.naming.spi, \
- javax.net, \
- javax.net.ssl, \
- javax.print, \
- javax.print.attribute, \
- javax.print.attribute.standard, \
- javax.print.event, \
- javax.rmi, \
- javax.rmi.CORBA, \
- javax.rmi.ssl, \
- javax.script, \
- javax.security.auth, \
- javax.security.auth.callback, \
- javax.security.auth.kerberos, \
- javax.security.auth.login, \
- javax.security.auth.spi, \
- javax.security.auth.x500, \
- javax.security.cert, \
- javax.security.sasl, \
- javax.sound.midi, \
- javax.sound.midi.spi, \
- javax.sound.sampled, \
- javax.sound.sampled.spi, \
- javax.sql, \
- javax.sql.rowset, \
- javax.sql.rowset.serial, \
- javax.sql.rowset.spi, \
- javax.swing, \
- javax.swing.border, \
- javax.swing.colorchooser, \
- javax.swing.event, \
- javax.swing.filechooser, \
- javax.swing.plaf, \
- javax.swing.plaf.basic, \
- javax.swing.plaf.metal, \
- javax.swing.plaf.multi, \
- javax.swing.plaf.synth, \
- javax.swing.table, \
- javax.swing.text, \
- javax.swing.text.html, \
- javax.swing.text.html.parser, \
- javax.swing.text.rtf, \
- javax.swing.tree, \
- javax.swing.undo, \
- javax.tools, \
- javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
- javax.xml, \
- javax.xml.bind;version="2.2.1", \
- javax.xml.bind.annotation;version="2.2.1", \
- javax.xml.bind.annotation.adapters;version="2.2.1", \
- javax.xml.bind.attachment;version="2.2.1", \
- javax.xml.bind.helpers;version="2.2.1", \
- javax.xml.bind.util;version="2.2.1", \
- javax.xml.crypto, \
- javax.xml.crypto.dom, \
- javax.xml.crypto.dsig, \
- javax.xml.crypto.dsig.dom, \
- javax.xml.crypto.dsig.keyinfo, \
- javax.xml.crypto.dsig.spec, \
- javax.xml.datatype, \
- javax.xml.namespace, \
- javax.xml.parsers, \
- javax.xml.soap;version="1.3", \
- javax.xml.stream;version="1.2", \
- javax.xml.stream.events;version="1.2", \
- javax.xml.stream.util;version="1.2", \
- javax.xml.transform, \
- javax.xml.transform.dom, \
- javax.xml.transform.sax, \
- javax.xml.transform.stax, \
- javax.xml.transform.stream, \
- javax.xml.validation, \
- javax.xml.ws;version="2.2", \
- javax.xml.ws.handler;version="2.2", \
- javax.xml.ws.handler.soap;version="2.2", \
- javax.xml.ws.http;version="2.2", \
- javax.xml.ws.soap;version="2.2", \
- javax.xml.ws.spi;version="2.2", \
- javax.xml.ws.wsaddressing;version="2.2", \
- javax.xml.ws.spi.http;version="2.2", \
- javax.xml.xpath, \
- org.ietf.jgss, \
- org.omg.CORBA, \
- org.omg.CORBA_2_3, \
- org.omg.CORBA_2_3.portable, \
- org.omg.CORBA.DynAnyPackage, \
- org.omg.CORBA.ORBPackage, \
- org.omg.CORBA.portable, \
- org.omg.CORBA.TypeCodePackage, \
- org.omg.CosNaming, \
- org.omg.CosNaming.NamingContextExtPackage, \
- org.omg.CosNaming.NamingContextPackage, \
- org.omg.Dynamic, \
- org.omg.DynamicAny, \
- org.omg.DynamicAny.DynAnyFactoryPackage, \
- org.omg.DynamicAny.DynAnyPackage, \
- org.omg.IOP, \
- org.omg.IOP.CodecFactoryPackage, \
- org.omg.IOP.CodecPackage, \
- org.omg.Messaging, \
- org.omg.PortableInterceptor, \
- org.omg.PortableInterceptor.ORBInitInfoPackage, \
- org.omg.PortableServer, \
- org.omg.PortableServer.CurrentPackage, \
- org.omg.PortableServer.POAManagerPackage, \
- org.omg.PortableServer.POAPackage, \
- org.omg.PortableServer.portable, \
- org.omg.PortableServer.ServantLocatorPackage, \
- org.omg.SendingContext, \
- org.omg.stub.java.rmi, \
- org.omg.stub.javax.management.remote.rmi, \
- org.w3c.dom, \
- org.w3c.dom.bootstrap, \
- org.w3c.dom.css, \
- org.w3c.dom.events, \
- org.w3c.dom.html, \
- org.w3c.dom.ls, \
- org.w3c.dom.ranges, \
- org.w3c.dom.stylesheets, \
- org.w3c.dom.traversal, \
- org.w3c.dom.views, \
- org.w3c.dom.xpath, \
- org.xml.sax, \
- org.xml.sax.ext, \
- org.xml.sax.helpers, \
- sun.misc, \
- sun.reflect
-
-# Standard package set. Note that:
-# - javax.transaction* is exported with a mandatory attribute
-jre-1.7= \
- javax.accessibility, \
- javax.activation;version="1.1", \
- javax.activity, \
- javax.annotation;version="1.0", \
- javax.annotation.processing;version="1.6", \
- javax.crypto, \
- javax.crypto.interfaces, \
- javax.crypto.spec, \
- javax.imageio, \
- javax.imageio.event, \
- javax.imageio.metadata, \
- javax.imageio.plugins.bmp, \
- javax.imageio.plugins.jpeg, \
- javax.imageio.spi, \
- javax.imageio.stream, \
- javax.jws, \
- javax.jws.soap, \
- javax.lang.model, \
- javax.lang.model.element, \
- javax.lang.model.type, \
- javax.lang.model.util, \
- javax.management, \
- javax.management.loading, \
- javax.management.modelmbean, \
- javax.management.monitor, \
- javax.management.openmbean, \
- javax.management.relation, \
- javax.management.remote, \
- javax.management.remote.rmi, \
- javax.management.timer, \
- javax.naming, \
- javax.naming.directory, \
- javax.naming.event, \
- javax.naming.ldap, \
- javax.naming.spi, \
- javax.net, \
- javax.net.ssl, \
- javax.print, \
- javax.print.attribute, \
- javax.print.attribute.standard, \
- javax.print.event, \
- javax.rmi, \
- javax.rmi.CORBA, \
- javax.rmi.ssl, \
- javax.script, \
- javax.security.auth, \
- javax.security.auth.callback, \
- javax.security.auth.kerberos, \
- javax.security.auth.login, \
- javax.security.auth.spi, \
- javax.security.auth.x500, \
- javax.security.cert, \
- javax.security.sasl, \
- javax.sound.midi, \
- javax.sound.midi.spi, \
- javax.sound.sampled, \
- javax.sound.sampled.spi, \
- javax.sql, \
- javax.sql.rowset, \
- javax.sql.rowset.serial, \
- javax.sql.rowset.spi, \
- javax.swing, \
- javax.swing.border, \
- javax.swing.colorchooser, \
- javax.swing.event, \
- javax.swing.filechooser, \
- javax.swing.plaf, \
- javax.swing.plaf.basic, \
- javax.swing.plaf.metal, \
- javax.swing.plaf.multi, \
- javax.swing.plaf.synth, \
- javax.swing.table, \
- javax.swing.text, \
- javax.swing.text.html, \
- javax.swing.text.html.parser, \
- javax.swing.text.rtf, \
- javax.swing.tree, \
- javax.swing.undo, \
- javax.tools, \
- javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
- javax.xml, \
- javax.xml.bind;version="2.2.1", \
- javax.xml.bind.annotation;version="2.2.1", \
- javax.xml.bind.annotation.adapters;version="2.2.1", \
- javax.xml.bind.attachment;version="2.2.1", \
- javax.xml.bind.helpers;version="2.2.1", \
- javax.xml.bind.util;version="2.2.1", \
- javax.xml.crypto, \
- javax.xml.crypto.dom, \
- javax.xml.crypto.dsig, \
- javax.xml.crypto.dsig.dom, \
- javax.xml.crypto.dsig.keyinfo, \
- javax.xml.crypto.dsig.spec, \
- javax.xml.datatype, \
- javax.xml.namespace, \
- javax.xml.parsers, \
- javax.xml.soap;version="1.3", \
- javax.xml.stream;version="1.2", \
- javax.xml.stream.events;version="1.2", \
- javax.xml.stream.util;version="1.2", \
- javax.xml.transform, \
- javax.xml.transform.dom, \
- javax.xml.transform.sax, \
- javax.xml.transform.stax, \
- javax.xml.transform.stream, \
- javax.xml.validation, \
- javax.xml.ws;version="2.2", \
- javax.xml.ws.handler;version="2.2", \
- javax.xml.ws.handler.soap;version="2.2", \
- javax.xml.ws.http;version="2.2", \
- javax.xml.ws.soap;version="2.2", \
- javax.xml.ws.spi;version="2.2", \
- javax.xml.ws.wsaddressing;version="2.2", \
- javax.xml.ws.spi.http;version="2.2", \
- javax.xml.xpath, \
- org.ietf.jgss, \
- org.omg.CORBA, \
- org.omg.CORBA_2_3, \
- org.omg.CORBA_2_3.portable, \
- org.omg.CORBA.DynAnyPackage, \
- org.omg.CORBA.ORBPackage, \
- org.omg.CORBA.portable, \
- org.omg.CORBA.TypeCodePackage, \
- org.omg.CosNaming, \
- org.omg.CosNaming.NamingContextExtPackage, \
- org.omg.CosNaming.NamingContextPackage, \
- org.omg.Dynamic, \
- org.omg.DynamicAny, \
- org.omg.DynamicAny.DynAnyFactoryPackage, \
- org.omg.DynamicAny.DynAnyPackage, \
- org.omg.IOP, \
- org.omg.IOP.CodecFactoryPackage, \
- org.omg.IOP.CodecPackage, \
- org.omg.Messaging, \
- org.omg.PortableInterceptor, \
- org.omg.PortableInterceptor.ORBInitInfoPackage, \
- org.omg.PortableServer, \
- org.omg.PortableServer.CurrentPackage, \
- org.omg.PortableServer.POAManagerPackage, \
- org.omg.PortableServer.POAPackage, \
- org.omg.PortableServer.portable, \
- org.omg.PortableServer.ServantLocatorPackage, \
- org.omg.SendingContext, \
- org.omg.stub.java.rmi, \
- org.omg.stub.javax.management.remote.rmi, \
- org.w3c.dom, \
- org.w3c.dom.bootstrap, \
- org.w3c.dom.css, \
- org.w3c.dom.events, \
- org.w3c.dom.html, \
- org.w3c.dom.ls, \
- org.w3c.dom.ranges, \
- org.w3c.dom.stylesheets, \
- org.w3c.dom.traversal, \
- org.w3c.dom.views, \
- org.w3c.dom.xpath, \
- org.xml.sax, \
- org.xml.sax.ext, \
- org.xml.sax.helpers, \
- sun.misc, \
- sun.reflect
-
-jre-1.8= \
- javax.accessibility, \
- javax.activation;version="1.1", \
- javax.activity, \
- javax.annotation;version="1.0", \
- javax.annotation.processing;version="1.6", \
- javax.crypto, \
- javax.crypto.interfaces, \
- javax.crypto.spec, \
- javax.imageio, \
- javax.imageio.event, \
- javax.imageio.metadata, \
- javax.imageio.plugins.bmp, \
- javax.imageio.plugins.jpeg, \
- javax.imageio.spi, \
- javax.imageio.stream, \
- javax.jws, \
- javax.jws.soap, \
- javax.lang.model, \
- javax.lang.model.element, \
- javax.lang.model.type, \
- javax.lang.model.util, \
- javax.management, \
- javax.management.loading, \
- javax.management.modelmbean, \
- javax.management.monitor, \
- javax.management.openmbean, \
- javax.management.relation, \
- javax.management.remote, \
- javax.management.remote.rmi, \
- javax.management.timer, \
- javax.naming, \
- javax.naming.directory, \
- javax.naming.event, \
- javax.naming.ldap, \
- javax.naming.spi, \
- javax.net, \
- javax.net.ssl, \
- javax.print, \
- javax.print.attribute, \
- javax.print.attribute.standard, \
- javax.print.event, \
- javax.rmi, \
- javax.rmi.CORBA, \
- javax.rmi.ssl, \
- javax.script, \
- javax.security.auth, \
- javax.security.auth.callback, \
- javax.security.auth.kerberos, \
- javax.security.auth.login, \
- javax.security.auth.spi, \
- javax.security.auth.x500, \
- javax.security.cert, \
- javax.security.sasl, \
- javax.sound.midi, \
- javax.sound.midi.spi, \
- javax.sound.sampled, \
- javax.sound.sampled.spi, \
- javax.sql, \
- javax.sql.rowset, \
- javax.sql.rowset.serial, \
- javax.sql.rowset.spi, \
- javax.swing, \
- javax.swing.border, \
- javax.swing.colorchooser, \
- javax.swing.event, \
- javax.swing.filechooser, \
- javax.swing.plaf, \
- javax.swing.plaf.basic, \
- javax.swing.plaf.metal, \
- javax.swing.plaf.multi, \
- javax.swing.plaf.synth, \
- javax.swing.table, \
- javax.swing.text, \
- javax.swing.text.html, \
- javax.swing.text.html.parser, \
- javax.swing.text.rtf, \
- javax.swing.tree, \
- javax.swing.undo, \
- javax.tools, \
- javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
- javax.xml, \
- javax.xml.bind;version="2.2.1", \
- javax.xml.bind.annotation;version="2.2.1", \
- javax.xml.bind.annotation.adapters;version="2.2.1", \
- javax.xml.bind.attachment;version="2.2.1", \
- javax.xml.bind.helpers;version="2.2.1", \
- javax.xml.bind.util;version="2.2.1", \
- javax.xml.crypto, \
- javax.xml.crypto.dom, \
- javax.xml.crypto.dsig, \
- javax.xml.crypto.dsig.dom, \
- javax.xml.crypto.dsig.keyinfo, \
- javax.xml.crypto.dsig.spec, \
- javax.xml.datatype, \
- javax.xml.namespace, \
- javax.xml.parsers, \
- javax.xml.soap;version="1.3", \
- javax.xml.stream;version="1.2", \
- javax.xml.stream.events;version="1.2", \
- javax.xml.stream.util;version="1.2", \
- javax.xml.transform, \
- javax.xml.transform.dom, \
- javax.xml.transform.sax, \
- javax.xml.transform.stax, \
- javax.xml.transform.stream, \
- javax.xml.validation, \
- javax.xml.ws;version="2.2", \
- javax.xml.ws.handler;version="2.2", \
- javax.xml.ws.handler.soap;version="2.2", \
- javax.xml.ws.http;version="2.2", \
- javax.xml.ws.soap;version="2.2", \
- javax.xml.ws.spi;version="2.2", \
- javax.xml.ws.wsaddressing;version="2.2", \
- javax.xml.ws.spi.http;version="2.2", \
- javax.xml.xpath, \
- javafx.animation, \
- javafx.application, \
- javafx.beans, \
- javafx.beans.binding, \
- javafx.beans.property, \
- javafx.beans.property.adapter, \
- javafx.beans.value, \
- javafx.collections, \
- javafx.concurrent, \
- javafx.css, \
- javafx.embed.swing, \
- javafx.embed.swt, \
- javafx.event, \
- javafx.fxml, \
- javafx.geometry, \
- javafx.scene, \
- javafx.scene.canvas, \
- javafx.scene.chart, \
- javafx.scene.control, \
- javafx.scene.control.cell, \
- javafx.scene.effect, \
- javafx.scene.image, \
- javafx.scene.input, \
- javafx.scene.layout, \
- javafx.scene.media, \
- javafx.scene.paint, \
- javafx.scene.shape, \
- javafx.scene.text, \
- javafx.scene.transform, \
- javafx.scene.web, \
- javafx.stage, \
- javafx.util, \
- javafx.util.converter, \
- org.ietf.jgss, \
- org.omg.CORBA, \
- org.omg.CORBA_2_3, \
- org.omg.CORBA_2_3.portable, \
- org.omg.CORBA.DynAnyPackage, \
- org.omg.CORBA.ORBPackage, \
- org.omg.CORBA.portable, \
- org.omg.CORBA.TypeCodePackage, \
- org.omg.CosNaming, \
- org.omg.CosNaming.NamingContextExtPackage, \
- org.omg.CosNaming.NamingContextPackage, \
- org.omg.Dynamic, \
- org.omg.DynamicAny, \
- org.omg.DynamicAny.DynAnyFactoryPackage, \
- org.omg.DynamicAny.DynAnyPackage, \
- org.omg.IOP, \
- org.omg.IOP.CodecFactoryPackage, \
- org.omg.IOP.CodecPackage, \
- org.omg.Messaging, \
- org.omg.PortableInterceptor, \
- org.omg.PortableInterceptor.ORBInitInfoPackage, \
- org.omg.PortableServer, \
- org.omg.PortableServer.CurrentPackage, \
- org.omg.PortableServer.POAManagerPackage, \
- org.omg.PortableServer.POAPackage, \
- org.omg.PortableServer.portable, \
- org.omg.PortableServer.ServantLocatorPackage, \
- org.omg.SendingContext, \
- org.omg.stub.java.rmi, \
- org.omg.stub.javax.management.remote.rmi, \
- org.w3c.dom, \
- org.w3c.dom.bootstrap, \
- org.w3c.dom.css, \
- org.w3c.dom.events, \
- org.w3c.dom.html, \
- org.w3c.dom.ls, \
- org.w3c.dom.ranges, \
- org.w3c.dom.stylesheets, \
- org.w3c.dom.traversal, \
- org.w3c.dom.views, \
- org.w3c.dom.xpath, \
- org.xml.sax, \
- org.xml.sax.ext, \
- org.xml.sax.helpers, \
- sun.misc, \
- sun.reflect
+++ /dev/null
-# Custom java.security config file for odl. This file augmnets the defult java.security config file provided by the JRE itself
-# Documentation: https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#DisabledAlgorithms
-# Additional information can also be found in the default java.security file: JAVA_HOME/jre/lib/security/java.security
-
-# Disable weak ciphers and ciphers vulnerable to the Logjam exploit, more information can be found here https://bugs.opendaylight.org/show_bug.cgi?id=3552
-jdk.tls.disabledAlgorithms=EXPORT, RC4, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, DESede, anon
+++ /dev/null
-################################################################################
-#
-# 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.
-#
-################################################################################
-
-# Root logger
-log4j.rootLogger=INFO, async, osgi:*
-log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
-
-# CONSOLE appender not used by default
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
-
-# Async appender forwarding to file appender
-log4j.appender.async=org.apache.log4j.AsyncAppender
-log4j.appender.async.appenders=out
-
-# File appender
-log4j.appender.out=org.apache.log4j.RollingFileAppender
-log4j.appender.out.layout=org.apache.log4j.PatternLayout
-log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
-log4j.appender.out.file=${karaf.data}/log/karaf.log
-log4j.appender.out.append=true
-log4j.appender.out.maxFileSize=1MB
-log4j.appender.out.maxBackupIndex=10
-
-# Sift appender
-log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
-log4j.appender.sift.key=bundle.name
-log4j.appender.sift.default=karaf
-log4j.appender.sift.appender=org.apache.log4j.FileAppender
-log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
-log4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %m%n
-log4j.appender.sift.appender.file=${karaf.data}/log/$\\{bundle.name\\}.log
-log4j.appender.sift.appender.append=true
-
-# syslog appender for exporting karaf messages to a syslog server
-# To enable the syslog appender, add it to the log4j.rootLogger list above.
-#
-# Make sure to set log4j.appender.syslog.syslogHost in the format:
-# <syslogHost>:<syslogPort>
-# If no port is specified, the default, 514, is assumed.
-log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
-log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
-log4j.appender.syslog.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
-log4j.appender.syslog.syslogHost=127.0.0.1
-log4J.appender.syslog.facility=KARAF
-log4j.appender.syslog.facilityPrinting=false
<name>ODL :: odlparent :: ${project.artifactId}</name>
<modules>
<module>karaf-branding</module>
- <module>opendaylight-karaf-resources</module>
- <module>opendaylight-karaf-empty</module>
- <module>karaf-parent</module>
<module>karaf4-parent</module>
<module>opendaylight-karaf4-resources</module>
<module>opendaylight-karaf4-empty</module>
</dependency>
<dependency>
<groupId>org.opendaylight.odlparent</groupId>
- <artifactId>features-test</artifactId>
+ <artifactId>features4-test</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<jacoco.version>0.7.7.201606060606</jacoco.version>
<!-- Used in aaa, controller, coretutorials, integration/distribution, l2switch, lacp, lispflowmapping, netide,
nic, openflowplugin, ovsdb, persistence, sfc, snbi, snmp4sdn?, sxp, topoprocessing, unimgr, vtn -->
- <karaf.version>3.0.8</karaf.version>
+ <karaf.version>4.0.9</karaf.version>
+ <!-- TODO As part of a future drop of the *4 suffix everywhere, this property should eventually be removed -->
<karaf4.version>4.0.9</karaf4.version>
<karaf4.plugin.version>4.0.9</karaf4.plugin.version>
<!-- Used in lispflowmapping, snmp4sdn, vtn -->
<module>license</module>
<module>bundles-test-lib</module>
- <module>bundles-test</module>
<module>bundles4-test</module>
- <module>features-test</module>
<module>features4-test</module>
<!-- Karaf integration -->
<module>karaf</module>
- <module>karaf-plugin</module>
<module>karaf4-plugin</module>
<!-- Parent POMs -->
<module>aggregator-parent</module>
<module>bundle-parent</module>
- <module>features-parent</module>
- <module>single-feature3-parent</module>
<module>untested-single-feature-parent</module>
<module>single-feature-parent</module>
- <module>feature3-repo-parent</module>
<module>feature-repo-parent</module>
<module>odlparent</module>
<module>odlparent-lite</module>
<!-- Features -->
- <module>features</module>
<module>features4</module>
<!-- Artifacts -->
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016 Red Hat, Inc. and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
-<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>
-
- <!--
- Base parent POM for building and packaging single Karaf features.
- Karaf features are generated based on the POM dependencies; they can be supplemented by a base
- feature.xml file in src/main/feature.
-
- By default, such single features aren't tested for loadability; they're supposed to be aggregated
- in a feature repository (see feature-repo-parent), which is tested using SingleFeatureTest. The
- sft profile can be used to enforce SingleFeatureTest on single features too.
-
- Single features which aren't part of a repository can not be considered part of a project's API.
- In any case, refer to each project's declared features to determine their API and future
- availability.
-
- Users should do the following:
-
- - specify this as their parent
- - make sure the packaging is set to feature
- - setup projects <dependencies/> as needed for their features
- -->
-
- <parent>
- <groupId>org.opendaylight.odlparent</groupId>
- <artifactId>odlparent</artifactId>
- <version>1.9.1-SNAPSHOT</version>
- <relativePath>../odlparent</relativePath>
- </parent>
-
- <artifactId>single-feature3-parent</artifactId>
- <packaging>pom</packaging>
- <name>ODL :: odlparent :: ${project.artifactId}</name>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.karaf.tooling</groupId>
- <artifactId>karaf-maven-plugin</artifactId>
- <version>${karaf.version}</version>
- <extensions>true</extensions>
- <configuration>
- <excludedArtifactIds>
- <excludedArtifactId>slf4j-api</excludedArtifactId>
- </excludedArtifactIds>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-</project>