You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2015/11/09 17:03:36 UTC

karaf git commit: KARAF-4102: add parameter to set the name of the primary feature.

Repository: karaf
Updated Branches:
  refs/heads/master 27f895eb2 -> 6da94cb93


KARAF-4102: add parameter to set the name of the primary feature.


Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/6da94cb9
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/6da94cb9
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/6da94cb9

Branch: refs/heads/master
Commit: 6da94cb937996ffef8273b5f4c7a4fd622218fae
Parents: 27f895e
Author: Benson Margulies <be...@basistech.com>
Authored: Mon Nov 9 10:29:32 2015 -0500
Committer: Benson Margulies <be...@basistech.com>
Committed: Mon Nov 9 10:29:32 2015 -0500

----------------------------------------------------------------------
 .../src/it/test-rename-main-feature/control.xml |  6 ++
 .../src/it/test-rename-main-feature/pom.xml     | 61 ++++++++++++++++++++
 .../src/main/java/test/App.java                 | 30 ++++++++++
 .../src/it/test-rename-main-feature/verify.bsh  | 35 +++++++++++
 .../features/GenerateDescriptorMojo.java        | 20 +++++--
 5 files changed, 146 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/6da94cb9/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/control.xml
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/control.xml b/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/control.xml
new file mode 100644
index 0000000..816f56d
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/control.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" name="test-rename-project-artifact">
+    <feature name="test-feature" description="test-rename-project-artifact" version="1.0.0.SNAPSHOT">
+        <bundle>mvn:test/test-rename-project-artifact/1.0-SNAPSHOT</bundle>
+    </feature>
+</features>

http://git-wip-us.apache.org/repos/asf/karaf/blob/6da94cb9/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/pom.xml b/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/pom.xml
new file mode 100644
index 0000000..afd6990
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/pom.xml
@@ -0,0 +1,61 @@
+<?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">
+
+    <!--
+
+        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.
+    -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>test</groupId>
+    <artifactId>test-rename-project-artifact</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.karaf.tooling</groupId>
+                <artifactId>karaf-maven-plugin</artifactId>
+                <version>@pom.version@</version>
+                <executions>
+                    <execution>
+                        <id>generate-features-file</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>features-generate-descriptor</goal>
+                        </goals>
+                        <configuration>
+                            <primaryFeatureName>test-feature</primaryFeatureName>
+                            <includeProjectArtifact>true</includeProjectArtifact>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/karaf/blob/6da94cb9/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/src/main/java/test/App.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/src/main/java/test/App.java b/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/src/main/java/test/App.java
new file mode 100644
index 0000000..c95d245
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/src/main/java/test/App.java
@@ -0,0 +1,30 @@
+/*
+ * 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 test;
+
+/**
+ * Hello world!
+ */
+public class App {
+
+    public static void main( String[] args ) {
+        System.out.println( "Hello World!" );
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/6da94cb9/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/verify.bsh
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/verify.bsh b/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/verify.bsh
new file mode 100644
index 0000000..6af1a7c
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-rename-main-feature/verify.bsh
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+
+import org.custommonkey.xmlunit.*;
+import java.io.*;
+import java.lang.*;
+
+Reader r = new FileReader(new File(basedir, "control.xml"));
+
+// load the features file pushed to the repository
+File generated = new File(basedir, "target/feature/feature.xml" );
+if (generated.exists()) {
+    try {
+        XMLAssert.assertXMLEqual(r, new FileReader(generated));
+        return true;
+    } catch (Throwable ignored) { }
+}
+
+return false;

http://git-wip-us.apache.org/repos/asf/karaf/blob/6da94cb9/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java
----------------------------------------------------------------------
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java
index 168a639..c786e40 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/features/GenerateDescriptorMojo.java
@@ -213,6 +213,15 @@ public class GenerateDescriptorMojo extends MojoSupport {
     @Parameter(defaultValue = "false")
     private boolean includeProjectArtifact;
 
+    /**
+     * The name of the primary feature. This is the feature that will be created or modified to include the
+     * main project artifact and/or the bundles.
+     * @see #addBundlesToPrimaryFeature
+     * @see #includeProjectArtifact
+     */
+    @Parameter(defaultValue = "${project.artifactId}")
+    private String primaryFeatureName;
+
     // *************************************************
     // READ-ONLY MAVEN PLUGIN PARAMETERS
     // *************************************************
@@ -289,13 +298,13 @@ public class GenerateDescriptorMojo extends MojoSupport {
 
         Feature feature = null;
         for (Feature test : features.getFeature()) {
-            if (test.getName().equals(project.getArtifactId())) {
+            if (test.getName().equals(primaryFeatureName)) {
                 feature = test;
             }
         }
         if (feature == null) {
             feature = objectFactory.createFeature();
-            feature.setName(project.getArtifactId());
+            feature.setName(primaryFeatureName);
         }
         if (!feature.hasVersion()) {
             feature.setVersion(project.getArtifact().getBaseVersion());
@@ -397,7 +406,7 @@ public class GenerateDescriptorMojo extends MojoSupport {
      */
 
     private Manifest getManifest(File file) throws IOException {
-        InputStream is = null;
+        InputStream is;
         try {
             is = new BufferedInputStream(new FileInputStream(file));
         } catch (Exception e) {
@@ -415,9 +424,8 @@ public class GenerateDescriptorMojo extends MojoSupport {
             jar.close();
             return m;
         } finally {
-            if (is != null) { // just in case when we did not open bundle
-                is.close();
-            }
+            // just in case when we did not open bundle
+            is.close();
         }
     }