Bug 3011: Changed scope of karaf:standard feature to runtime 42/18542/6
authorTony Tkacik <ttkacik@cisco.com>
Fri, 17 Apr 2015 13:34:36 +0000 (15:34 +0200)
committerTom Pantelis <tpanteli@brocade.com>
Sun, 24 Apr 2016 22:37:12 +0000 (22:37 +0000)
Compile time scope of karaf standard feature caused
Karaf to install tomcat, jetty and lot of other features
via the startup.properties.

In Karaf 3.0.3 the tomcat feature works fine if installed
via the boot features in the features.cfg but if installed
via startup.properties, it prevents Karaf from starting.

Also added the eventadmin feature to the startupFeatures so it is
included in the startup.properties as the bundle does not work
properly for some reason if installed as a boot feature.

Change-Id: I309f7b116976493ba1377b442fb46f5a88f68361
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
Signed-off-by: Ryan Goulding <ryandgoulding@gmail.com>
karaf/karaf-parent/pom.xml
karaf/opendaylight-karaf/pom.xml

index 433ae823ac0c5d9c87c88366d4443f7f01925946..3ff6930096e6f3e5dfe55f7e0637b92c6876ce44 100644 (file)
@@ -59,13 +59,17 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     </dependencies>
   </dependencyManagement>
   <dependencies>
-    <!-- karaf standard features -->
+    <!-- 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>
@@ -208,7 +212,12 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
           <version>${karaf.maven.version}</version>
           <extensions>true</extensions>
           <configuration>
-            <!-- no startupFeatures -->
+            <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>
index a34361970dd19101b4ac773a6a43500910247c59..2364bed8addd1382a6645ff1ce28ac193dc55e53 100644 (file)
@@ -3,9 +3,9 @@
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.opendaylight.controller</groupId>
-    <artifactId>commons.opendaylight</artifactId>
+    <artifactId>karaf-parent</artifactId>
     <version>1.7.0-SNAPSHOT</version>
-    <relativePath>../../opendaylight/commons/opendaylight</relativePath>
+    <relativePath>../karaf-parent</relativePath>
   </parent>
   <artifactId>distribution.opendaylight-karaf</artifactId>
   <packaging>pom</packaging>
   <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 -->
+                 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>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>karaf.branding</artifactId>
-      <scope>compile</scope>
-    </dependency>
-
-    <!-- Resources needed -->
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>opendaylight-karaf-resources</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-
-    <!-- scope is not runtime so the feature repo is pulled into the local
-    repo on build and thus you actually run.  Failure to do so can lead
-    to very confusing errors for devs -->
-    <dependency>
-      <groupId>org.apache.karaf.features</groupId>
-      <artifactId>standard</artifactId>
-      <version>${karaf.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </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>
 
     <!--
           controller provided features:
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>features-mdsal</artifactId>
+      <version>1.4.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>features-extras</artifactId>
+      <version>${project.version}</version>
       <classifier>features</classifier>
       <type>xml</type>
       <scope>runtime</scope>
     </dependency>
-      <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>features-extras</artifactId>
-          <version>${project.version}</version>
-          <classifier>features</classifier>
-          <type>xml</type>
-          <scope>runtime</scope>
-      </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>features-mdsal</artifactId>
+      <version>2.1.0-SNAPSHOT</version>
       <classifier>features</classifier>
       <type>xml</type>
       <scope>runtime</scope>
     <dependency>
       <groupId>org.opendaylight.mdsal.model</groupId>
       <artifactId>features-mdsal-model</artifactId>
+      <version>0.9.0-SNAPSHOT</version>
       <classifier>features</classifier>
       <type>xml</type>
       <scope>runtime</scope>
     </dependency>
 
-    <!-- Netconf connector features. When this is included, users can test the netconf connector using netconf-testtool -->
-<!--     <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-netconf-connector</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </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>
-                    </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>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.karaf.tooling</groupId>
-        <artifactId>karaf-maven-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <!-- no startupFeatures -->
-          <bootFeatures>
-            <feature>standard</feature>
-          </bootFeatures>
-          <!-- no installedFeatures -->
-        </configuration>
-        <executions>
-          <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>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <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.controller</groupId>
-                  <artifactId>karaf.branding</artifactId>
-                  <version>${karaf.branding.version}</version>
-                  <outputDirectory>target/assembly/lib</outputDirectory>
-                  <destFileName>karaf.branding-${branding.version}.jar</destFileName>
-                </artifactItem>
-                  <!-- 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/assembly/lib/ext</outputDirectory>
-                  <destFileName>bcprov-jdk15on-${bouncycastle.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.controller</groupId>
-             <includeArtifactIds>opendaylight-karaf-resources</includeArtifactIds>
-             <excludes>META-INF\/**</excludes>
-             <excludeTransitive>true</excludeTransitive>
-             <ignorePermissions>false</ignorePermissions>
-            </configuration>
-          </execution>
-          <execution>
-              <id>copy-dependencies</id>
-              <phase>prepare-package</phase>
-              <goals>
-                <goal>copy-dependencies</goal>
-              </goals>
-              <configuration>
-                <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
-                <excludeArtifactIds>distribution.vtn-coordinator</excludeArtifactIds>
-                <overWriteReleases>false</overWriteReleases>
-                <overWriteSnapshots>true</overWriteSnapshots>
-                <overWriteIfNewer>true</overWriteIfNewer>
-                <useRepositoryLayout>true</useRepositoryLayout>
-                <addParentPoms>true</addParentPoms>
-                <copyPom>true</copyPom>
-              </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>
-                  <tasks>
-                    <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>
-                  </tasks>
-                </configuration>
-            </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
   <scm>
     <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
     <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>