diff --git a/pom.xml b/pom.xml
index 48de62f..4d8ef14 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,6 @@
itests
archetypes
manual
- obr
diff --git a/tooling/karaf-maven-plugin/pom.xml b/tooling/karaf-maven-plugin/pom.xml
index a852723..064f40f 100644
--- a/tooling/karaf-maven-plugin/pom.xml
+++ b/tooling/karaf-maven-plugin/pom.xml
@@ -152,32 +152,53 @@
easymock
test
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ ci-build-profile
+
+
+
+ org.apache.maven.plugins
+ maven-invoker-plugin
+ 1.6
+
+ true
+ src/it
+ ${project.build.directory}/it
+
+ */pom.xml
+
+ verify
+ ${project.build.directory}/local-repo
+
+ -Djava.io.tmpdir=${project.build.directory}
+
+ install
+
+
+
+
+ integration-test
+
+ install
+ run
+
+
+
+
+
+ xmlunit
+ xmlunit
+ 1.3
+
+
+
+
+
+
+
diff --git a/tooling/karaf-maven-plugin/src/it/test-basic-generation/pom.xml b/tooling/karaf-maven-plugin/src/it/test-basic-generation/pom.xml
new file mode 100644
index 0000000..684788d
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-basic-generation/pom.xml
@@ -0,0 +1,63 @@
+
+
+
+ 4.0.0
+
+ test
+ test-basic-generation
+ @pom.version@
+ bundle
+
+
+ UTF-8
+
+
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.7
+ true
+
+
+ org.apache.karaf.tooling
+ karaf-maven-plugin
+ @pom.version@
+
+
+ generate-features-file
+ package
+
+ features-generate-descriptor
+
+
+ false
+
+
+
+
+
+
+
diff --git a/tooling/karaf-maven-plugin/src/it/test-basic-generation/src/main/java/test/App.java b/tooling/karaf-maven-plugin/src/it/test-basic-generation/src/main/java/test/App.java
new file mode 100644
index 0000000..fedb5da
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-basic-generation/src/main/java/test/App.java
@@ -0,0 +1,32 @@
+/*
+ * 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!" );
+ }
+}
diff --git a/tooling/karaf-maven-plugin/src/it/test-basic-generation/verify.bsh b/tooling/karaf-maven-plugin/src/it/test-basic-generation/verify.bsh
new file mode 100644
index 0000000..e813719
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-basic-generation/verify.bsh
@@ -0,0 +1,34 @@
+/*
+ * 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.*;
+
+String control = "";
+
+File generated = new File( basedir, "target/feature/feature.xml" );
+StringReader sr = new StringReader(control);
+try {
+ XMLAssert.assertXMLEqual(sr, new FileReader(generated));
+} catch (AssertionError ignored) {
+ return false;
+}
+
+return true;
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/pom.xml b/tooling/karaf-maven-plugin/src/it/test-recursive/pom.xml
new file mode 100644
index 0000000..e3bcef7
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/pom.xml
@@ -0,0 +1,65 @@
+
+
+
+
+ 4.0.0
+ test
+ test-recursive
+ 1.0-SNAPSHOT
+ pom
+
+
+ UTF-8
+
+
+
+ recursive-module-a
+ recursive-module-b
+ recursive-module-c
+ recursive-module-d
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ true
+
+
+ org.apache.karaf.tooling
+ karaf-maven-plugin
+ @pom.version@
+
+
+ generate-features-file
+ package
+
+ features-generate-descriptor
+
+
+ false
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-a/pom.xml b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-a/pom.xml
new file mode 100644
index 0000000..b68e49e
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-a/pom.xml
@@ -0,0 +1,53 @@
+
+
+
+
+ 4.0.0
+
+ test
+ test-recursive
+ 1.0-SNAPSHOT
+ ../pom.xml
+
+
+ test
+ recursive-module-a
+ 1.0-SNAPSHOT
+ bundle
+
+
+ UTF-8
+
+
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.7
+ true
+
+
+
+
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-a/src/main/java/test/A.java b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-a/src/main/java/test/A.java
new file mode 100644
index 0000000..9aa5496
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-a/src/main/java/test/A.java
@@ -0,0 +1,25 @@
+/*
+ * 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.a;
+
+public class A
+{
+ public static String ASTRING = "A-string";
+}
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-b/pom.xml b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-b/pom.xml
new file mode 100644
index 0000000..824de19
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-b/pom.xml
@@ -0,0 +1,54 @@
+
+
+
+
+ 4.0.0
+
+ test
+ test-recursive
+ 1.0-SNAPSHOT
+ ../pom.xml
+
+
+ test
+ recursive-module-b
+ 1.0-SNAPSHOT
+
+ bundle
+
+
+ UTF-8
+
+
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.7
+ true
+
+
+
+
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-b/src/main/java/test/B.java b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-b/src/main/java/test/B.java
new file mode 100644
index 0000000..b66ddea
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-b/src/main/java/test/B.java
@@ -0,0 +1,25 @@
+/*
+ * 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.b;
+
+public class B
+{
+ public static String BSTRING = "B-string";
+}
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-c/pom.xml b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-c/pom.xml
new file mode 100644
index 0000000..664147d
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-c/pom.xml
@@ -0,0 +1,64 @@
+
+
+
+
+ 4.0.0
+
+ test
+ test-recursive
+ 1.0-SNAPSHOT
+ ../pom.xml
+
+
+ test
+ recursive-module-c
+ 1.0-SNAPSHOT
+
+ bundle
+
+
+ UTF-8
+
+
+
+
+ test
+ recursive-module-a
+ 1.0-SNAPSHOT
+
+
+ test
+ recursive-module-b
+ 1.0-SNAPSHOT
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.7
+ true
+
+
+
+
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-c/src/main/java/test/C.java b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-c/src/main/java/test/C.java
new file mode 100644
index 0000000..630440f
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-c/src/main/java/test/C.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.c;
+
+import test.a.*;
+import test.b.*;
+
+public class C
+{
+ public static String createStringWithDependencies() {
+ return A.ASTRING + " " + B.BSTRING + " " + "C-string";
+ }
+}
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-d/pom.xml b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-d/pom.xml
new file mode 100644
index 0000000..b1f8097
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-d/pom.xml
@@ -0,0 +1,59 @@
+
+
+
+
+ 4.0.0
+
+ test
+ test-recursive
+ 1.0-SNAPSHOT
+ ../pom.xml
+
+
+ test
+ recursive-module-d
+ 1.0-SNAPSHOT
+
+ bundle
+
+
+ UTF-8
+
+
+
+
+ test
+ recursive-module-c
+ 1.0-SNAPSHOT
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+ 2.3.7
+ true
+
+
+
+
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-d/src/main/java/test/D.java b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-d/src/main/java/test/D.java
new file mode 100644
index 0000000..370fad8
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/recursive-module-d/src/main/java/test/D.java
@@ -0,0 +1,29 @@
+/*
+ * 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.d;
+
+import test.c.*;
+
+public class D
+{
+ public String createStringWithDependencies() {
+ return C.createStringWithDependencies() + " " + "D-string";
+ }
+}
diff --git a/tooling/karaf-maven-plugin/src/it/test-recursive/verify.bsh b/tooling/karaf-maven-plugin/src/it/test-recursive/verify.bsh
new file mode 100644
index 0000000..c2b765a
--- /dev/null
+++ b/tooling/karaf-maven-plugin/src/it/test-recursive/verify.bsh
@@ -0,0 +1,34 @@
+/*
+ * 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.*;
+
+//String control = "";
+//
+//File generated = new File( basedir, "target/feature/feature.xml" );
+//StringReader sr = new StringReader(control);
+//try {
+// XMLAssert.assertXMLEqual(sr, new FileReader(generated));
+//} catch (AssertionError ignored) {
+// return false;
+//}
+
+return true;