Renaming dirs, use blueprint-maven-plugin
diff --git a/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/README.md b/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/README.md
deleted file mode 100644
index 02f255e..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-== karaf-boot-sample-service-blueprint-annotation ==
-
-This sample exposes an OSGi service using blueprint annotations.
-
-= Design
-
-TODO
-
-= Build
-
-To build, simply do:
-
-  mvn clean install
-
-= Deploy
-
-* you can drop the generated jar file (target/karaf-boot-sample-service-blueprint-annotation-1.0.jar) in the
-Karaf deploy folder
-* in the Karaf shell console, do:
-
-  bundle:install -s mvn:org.apache.karaf.boot/karaf-boot-sample-service-blueprint-annotation/1.0
diff --git a/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/pom.xml b/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/pom.xml
deleted file mode 100644
index cc629dc..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/pom.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?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>org.apache.karaf.boot</groupId>
-    <artifactId>karaf-boot-sample-service-blueprint-annotation</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-starter-blueprint</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.boot</groupId>
-                <artifactId>karaf-boot-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java b/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java
deleted file mode 100644
index f46b5da..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java
+++ /dev/null
@@ -1,35 +0,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.
- */
-package sample.blueprint.service.provider;
-
-import org.apache.aries.blueprint.annotation.Bean;
-import org.apache.aries.blueprint.annotation.Service;
-
-@Bean(id = "HelloServiceImpl")
-@Service(autoExport = "interfaces")
-public class HelloServiceImpl implements HelloService{
-
-    public String hello(String message) {
-        return "Hello " + message + " !";
-    }
-
-    public void startUp() {
-        System.out.println("I'm starting up!");
-    }
-
-
-}
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/pom.xml b/karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/pom.xml
deleted file mode 100644
index eee6bb9..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?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>org.apache.karaf.boot</groupId>
-    <artifactId>karaf-boot-sample-service-consumer-blueprint</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-starter</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-sample-service-provider-blueprint</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.boot</groupId>
-                <artifactId>karaf-boot-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/src/main/resources/OSGI-INF/blueprint/config.xml b/karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/src/main/resources/OSGI-INF/blueprint/config.xml
deleted file mode 100644
index ccd26d8..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/src/main/resources/OSGI-INF/blueprint/config.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
-        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.
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <reference id="helloservice"
-               interface="sample.blueprint.service.provider.HelloService" />
-
-
-    <bean id="helloclient" class="sample.blueprint.service.consumer.HelloClient"
-          init-method="startUp">
-        <property name="helloWorldService" ref="helloservice" />
-    </bean>
-</blueprint>
\ No newline at end of file
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/README.md b/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/README.md
deleted file mode 100644
index 062348f..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-== karaf-boot-sample-service-consumer-osgi ==
-
-This sample uses an OSGi service using the Karaf util classe and annotation.
-
-= Design
-
-The service "contract" is exposed by another artifact (the karaf-boot-sample-service-provider-osgi module).
-
-The hello service is retrieved in the Activator of this artifact, and uses it directly.
-
-This Activator overrides the doStart() method, where we retrieve the HelloService using the getTrackedService() method. Karaf
-deals with all service lookup and tracking.
-
-= Build
-
-To build, simply do:
-
-  mvn clean install
-
-= Deploy
-
-You have to install a hello service provider first. Please deploy the karaf-boot-sample-service-provider-osgi first.
-
-To deploy in Karaf:
-
-* you can drop the generated jar file (target/karaf-boot-sample-service-provider-osgi-1.0.jar) in the
-Karaf deploy folder
-* in the Karaf shell console, do:
-
-  bundle:install -s mvn:org.apache.karaf.boot/karaf-boot-sample-service-consumer-osgi/1.0
\ No newline at end of file
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/pom.xml b/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/pom.xml
deleted file mode 100644
index 2a18273..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?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>org.apache.karaf.boot</groupId>
-    <artifactId>karaf-boot-sample-service-consumer-osgi</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-starter-karaf</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-sample-service-provider-osgi</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.boot</groupId>
-                <artifactId>karaf-boot-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
\ No newline at end of file
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/src/main/java/sample/osgi/service/consumer/Activator.java b/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/src/main/java/sample/osgi/service/consumer/Activator.java
deleted file mode 100644
index fffd850..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-consumer-osgi/src/main/java/sample/osgi/service/consumer/Activator.java
+++ /dev/null
@@ -1,48 +0,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.
- */
-package sample.osgi.service.consumer;
-
-import org.apache.karaf.util.tracker.BaseActivator;
-import org.apache.karaf.util.tracker.annotation.RequireService;
-import org.apache.karaf.util.tracker.annotation.Services;
-import sample.osgi.service.provider.HelloService;
-
-/**
- * Simple activator that retrieve the hello service and use it.
- */
-@Services(
-        requires = {
-                @RequireService(HelloService.class)
-        }
-)
-public class Activator extends BaseActivator {
-
-    @Override
-    public void doStart() throws Exception {
-        HelloService helloService = getTrackedService(HelloService.class);
-
-        // basic usage, in real life, it could be injected and used in a bean or whatever
-        System.out.println("Hello " + helloService.hello("World"));
-    }
-
-    @Override
-    public void doStop() {
-        super.doStop();
-    }
-
-
-}
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/pom.xml b/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/pom.xml
deleted file mode 100644
index a9bfaac..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/pom.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?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>org.apache.karaf.boot</groupId>
-    <artifactId>karaf-boot-sample-service-provider-blueprint</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-starter</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.boot</groupId>
-                <artifactId>karaf-boot-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/java/sample/blueprint/service/provider/HelloService.java b/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/java/sample/blueprint/service/provider/HelloService.java
deleted file mode 100644
index 2555069..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/java/sample/blueprint/service/provider/HelloService.java
+++ /dev/null
@@ -1,25 +0,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.
- */
-package sample.blueprint.service.provider;
-
-public interface HelloService {
-
-    public String hello(String message);
-
-    public void startUp();
-
-}
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/resources/OSGI-INF/blueprint/config.xml b/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/resources/OSGI-INF/blueprint/config.xml
deleted file mode 100644
index f85ae0a..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/resources/OSGI-INF/blueprint/config.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
-        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.
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
-    <bean id="helloservice"
-          class="sample.blueprint.service.provider.HelloServiceImpl"
-          init-method="startUp" >
-    </bean>
-
-    <service ref="helloservice"
-             interface="sample.blueprint.service.provider.HelloService" />
-
-</blueprint>
\ No newline at end of file
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/README.md b/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/README.md
deleted file mode 100644
index 092d350..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-== karaf-boot-sample-service-provider-osgi ==
-
-This sample exposes an OSGi service using the Karaf util classe and annotation.
-
-= Design
-
-The service "contract" is describe by the Hello interface. It's a very simple service that expose one operation (hello).
-The service client send a message (String) to the hello service and he gets a response.
-
-The HelloServiceImpl is very simple: it prefixes the message with "Hello".
-
-In order to expose this service, we create an Activator, extending Karaf util BaseActivator.
-Our activator contains the @Services annotation describing the provided services (@ProvideService annotation).
-
-In this activator, we override the doStart() method, where we instantiate the HelloServiceImpl bean and register the
-HelloService service using the register() method (provided by Karaf). The Karaf BaseActivator manages the service
-registration, so you don't have to take care about the unregistration of the service, etc.
-
-= Build
-
-To build, simply do:
-
-  mvn clean install
-
-= Deploy
-
-To deploy in Karaf:
-
-* you can drop the generated jar file (target/karaf-boot-sample-service-provider-osgi-1.0.jar) in the
-Karaf deploy folder
-* in the Karaf shell console, do:
-
-  bundle:install -s mvn:org.apache.karaf.boot/karaf-boot-sample-service-provider-osgi/1.0
\ No newline at end of file
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/pom.xml b/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/pom.xml
deleted file mode 100644
index 507828a..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/pom.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?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>org.apache.karaf.boot</groupId>
-    <artifactId>karaf-boot-sample-service-provider-osgi</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-starter-karaf</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.boot</groupId>
-                <artifactId>karaf-boot-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/Activator.java b/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/Activator.java
deleted file mode 100644
index 9bc9b20..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/Activator.java
+++ /dev/null
@@ -1,41 +0,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.
- */
-package sample.osgi.service.provider;
-
-import org.apache.karaf.util.tracker.BaseActivator;
-import org.apache.karaf.util.tracker.annotation.ProvideService;
-import org.apache.karaf.util.tracker.annotation.Services;
-
-/**
- * Simple activator registering the hello service.
- */
-@Services(
-        provides = {
-                @ProvideService(HelloService.class)
-        }
-)
-public class Activator extends BaseActivator {
-
-    @Override
-    public void doStart() throws Exception {
-        // create hello service bean
-        HelloServiceImpl bean = new HelloServiceImpl();
-        // register the hello service
-        register(HelloService.class, bean);
-    }
-
-}
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/HelloService.java b/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/HelloService.java
deleted file mode 100644
index fc0a357..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/HelloService.java
+++ /dev/null
@@ -1,26 +0,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.
- */
-package sample.osgi.service.provider;
-
-/**
- * Simple hello service contract.
- */
-public interface HelloService {
-
-    public String hello(String message);
-
-}
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/HelloServiceImpl.java b/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/HelloServiceImpl.java
deleted file mode 100644
index c212205..0000000
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-osgi/src/main/java/sample/osgi/service/provider/HelloServiceImpl.java
+++ /dev/null
@@ -1,28 +0,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.
- */
-package sample.osgi.service.provider;
-
-/**
- * Simple implementation of the hello service..
- */
-public class HelloServiceImpl implements HelloService {
-
-    public String hello(String message) {
-        return "Hello " + message + " !";
-    }
-
-}
diff --git a/pom.xml b/pom.xml
index eea3146..9127ab0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,14 +37,15 @@
 
     <modules>
         <!-- Core karaf-boot -->
-        <module>karaf-boot-starters</module>
-        <module>karaf-boot-tools</module>
+        <module>starters</module>
+        <module>tools</module>
         <!-- embedded mode -->
 
         <!-- Archetypes -->
         <!-- TODO archetypes -->
  
         <!-- Demos -->
+        <module>samples</module> 
         <!-- TODO complete library demos -->
     </modules>
 
@@ -61,37 +62,5 @@
         </plugins>
     </build>
 
-    <profiles>
-        <profile>
-            <id>samples</id>
-            <modules>
-                <!-- Samples -->
-                <!-- services -->
-                <module>karaf-boot-samples/karaf-boot-sample-service-provider-osgi</module>
-                <module>karaf-boot-samples/karaf-boot-sample-service-consumer-osgi</module>
-                <module>karaf-boot-samples/karaf-boot-sample-service-provider-ds</module>
-                <module>karaf-boot-samples/karaf-boot-sample-service-consumer-ds</module>
-                <!-- blueprint -->
-                <module>karaf-boot-samples/karaf-boot-sample-service-provider-blueprint</module>
-                <module>karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint</module>
-                <!-- blueprint annotations -->
-                <module>karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation</module>
-                <!-- cdi -->
-                <module>karaf-boot-samples/karaf-boot-sample-cdi</module>
-                <!-- shell -->
-                <module>karaf-boot-samples/karaf-boot-sample-shell</module>
-                <!-- config -->
-                <module>karaf-boot-samples/karaf-boot-sample-config</module>
-                <!-- jpa -->
-                <module>karaf-boot-samples/karaf-boot-sample-jpa</module>
-                <!-- servlet -->
-                <module>karaf-boot-samples/karaf-boot-sample-servlet</module>
-                <!-- webui / angular -->
-                <!-- test -->
-                <!-- rest & soap -->
-                <!-- camel -->
-            </modules>
-        </profile>
-    </profiles>
-
 </project>
+
diff --git a/karaf-boot-samples/README.md b/samples/README.md
similarity index 100%
rename from karaf-boot-samples/README.md
rename to samples/README.md
diff --git a/karaf-boot-samples/karaf-boot-sample-cdi/pom.xml b/samples/blueprint/pom.xml
similarity index 66%
rename from karaf-boot-samples/karaf-boot-sample-cdi/pom.xml
rename to samples/blueprint/pom.xml
index d627b6e..680358a 100644
--- a/karaf-boot-samples/karaf-boot-sample-cdi/pom.xml
+++ b/samples/blueprint/pom.xml
@@ -22,26 +22,13 @@
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>org.apache.karaf.boot</groupId>
-    <artifactId>karaf-boot-sample-cdi</artifactId>
+    <artifactId>karaf-boot-samples-blueprint</artifactId>
     <version>1.0.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-starter-cdi</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.boot</groupId>
-                <artifactId>karaf-boot-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
+    <modules>
+        <module>service-consumer</module>
+        <module>service-provider</module>
+    </modules>
 
 </project>
diff --git a/samples/blueprint/service-consumer/pom.xml b/samples/blueprint/service-consumer/pom.xml
new file mode 100644
index 0000000..d482686
--- /dev/null
+++ b/samples/blueprint/service-consumer/pom.xml
@@ -0,0 +1,90 @@
+<?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>org.apache.karaf.boot</groupId>
+    <artifactId>karaf-boot-sample-service-consumer-blueprint</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.karaf.boot</groupId>
+            <artifactId>karaf-boot-starter</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.cdi</groupId>
+            <artifactId>pax-cdi-api</artifactId>
+            <version>0.5.0</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+            <version>1</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.boot</groupId>
+            <artifactId>karaf-boot-sample-service-provider-blueprint</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.karaf.boot</groupId>
+                <artifactId>karaf-boot-maven-plugin</artifactId>
+                <version>${project.version}</version>
+                <extensions>true</extensions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.aries.blueprint</groupId>
+                <artifactId>blueprint-maven-plugin</artifactId>
+                <version>1.3.0</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>blueprint-generate</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+                <configuration>
+                    <scanPaths>
+                        <scanPath>sample</scanPath>
+                    </scanPaths>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.3</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/src/main/java/sample/blueprint/service/consumer/HelloClient.java b/samples/blueprint/service-consumer/src/main/java/sample/blueprint/service/consumer/HelloClient.java
similarity index 80%
rename from karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/src/main/java/sample/blueprint/service/consumer/HelloClient.java
rename to samples/blueprint/service-consumer/src/main/java/sample/blueprint/service/consumer/HelloClient.java
index 0459ab9..ff568f8 100644
--- a/karaf-boot-samples/karaf-boot-sample-service-consumer-blueprint/src/main/java/sample/blueprint/service/consumer/HelloClient.java
+++ b/samples/blueprint/service-consumer/src/main/java/sample/blueprint/service/consumer/HelloClient.java
@@ -16,23 +16,23 @@
  */
 package sample.blueprint.service.consumer;
 
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import org.ops4j.pax.cdi.api.OsgiService;
+
 import sample.blueprint.service.provider.HelloService;
 
+@Singleton
 public class HelloClient {
 
-    HelloService helloService = null;
+    @Inject @OsgiService
+    HelloService helloService;
 
+    @PostConstruct
     public void startUp() {
         System.out.println(helloService.hello("World"));
     }
 
-    public HelloService getHelloWorldService() {
-        return helloService;
-    }
-
-    public void setHelloWorldService(HelloService helloWorldService) {
-        this.helloService = helloWorldService;
-
-    }
-
-}
\ No newline at end of file
+}
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/README.md b/samples/blueprint/service-provider/README.md
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/README.md
rename to samples/blueprint/service-provider/README.md
diff --git a/samples/blueprint/service-provider/pom.xml b/samples/blueprint/service-provider/pom.xml
new file mode 100644
index 0000000..de9ab62
--- /dev/null
+++ b/samples/blueprint/service-provider/pom.xml
@@ -0,0 +1,80 @@
+<?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>org.apache.karaf.boot</groupId>
+    <artifactId>karaf-boot-sample-service-provider-blueprint</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.karaf.boot</groupId>
+            <artifactId>karaf-boot-starter</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.cdi</groupId>
+            <artifactId>pax-cdi-api</artifactId>
+            <version>0.5.0</version>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+            <version>1</version>
+            <optional>true</optional>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.karaf.boot</groupId>
+                <artifactId>karaf-boot-maven-plugin</artifactId>
+                <version>${project.version}</version>
+                <extensions>true</extensions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.aries.blueprint</groupId>
+                <artifactId>blueprint-maven-plugin</artifactId>
+                <version>1.3.0</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>blueprint-generate</goal>
+                        </goals>
+                        <phase>process-classes</phase>
+                    </execution>
+                </executions>
+                <configuration>
+                    <scanPaths>
+                        <scanPath>sample</scanPath>
+                    </scanPaths>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.3</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/src/main/java/sample/blueprint/service/provider/HelloService.java b/samples/blueprint/service-provider/src/main/java/sample/blueprint/service/provider/HelloService.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-blueprint-annotation/src/main/java/sample/blueprint/service/provider/HelloService.java
rename to samples/blueprint/service-provider/src/main/java/sample/blueprint/service/provider/HelloService.java
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java b/samples/blueprint/service-provider/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java
similarity index 84%
rename from karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java
rename to samples/blueprint/service-provider/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java
index 4f97468..8287891 100644
--- a/karaf-boot-samples/karaf-boot-sample-service-provider-blueprint/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java
+++ b/samples/blueprint/service-provider/src/main/java/sample/blueprint/service/provider/HelloServiceImpl.java
@@ -16,12 +16,20 @@
  */
 package sample.blueprint.service.provider;
 
+import javax.annotation.PostConstruct;
+import javax.inject.Singleton;
+
+import org.ops4j.pax.cdi.api.OsgiServiceProvider;
+
+@OsgiServiceProvider(classes = HelloService.class)
+@Singleton
 public class HelloServiceImpl implements HelloService{
 
     public String hello(String message) {
         return "Hello " + message + " !";
     }
 
+    @PostConstruct
     public void startUp() {
         System.out.println("I'm starting up!");
     }
diff --git a/karaf-boot-samples/karaf-boot-sample-cdi/README.md b/samples/cdi/README.md
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-cdi/README.md
rename to samples/cdi/README.md
diff --git a/samples/cdi/pom.xml b/samples/cdi/pom.xml
new file mode 100644
index 0000000..1c4fac4
--- /dev/null
+++ b/samples/cdi/pom.xml
@@ -0,0 +1,50 @@
+<?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>org.apache.karaf.boot</groupId>
+    <artifactId>karaf-boot-sample-cdi</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.karaf.boot</groupId>
+            <artifactId>karaf-boot-starter-cdi</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.karaf.boot</groupId>
+                <artifactId>karaf-boot-maven-plugin</artifactId>
+                <version>${project.version}</version>
+                <extensions>true</extensions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.3</version>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/karaf-boot-samples/karaf-boot-sample-cdi/src/main/java/sample/cdi/IceCreamService.java b/samples/cdi/src/main/java/sample/cdi/IceCreamService.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-cdi/src/main/java/sample/cdi/IceCreamService.java
rename to samples/cdi/src/main/java/sample/cdi/IceCreamService.java
diff --git a/karaf-boot-samples/karaf-boot-sample-cdi/src/main/java/sample/cdi/impl/VanillaService.java b/samples/cdi/src/main/java/sample/cdi/impl/VanillaService.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-cdi/src/main/java/sample/cdi/impl/VanillaService.java
rename to samples/cdi/src/main/java/sample/cdi/impl/VanillaService.java
diff --git a/karaf-boot-samples/karaf-boot-sample-config/README.md b/samples/ds/config/README.md
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-config/README.md
rename to samples/ds/config/README.md
diff --git a/karaf-boot-samples/karaf-boot-sample-config/pom.xml b/samples/ds/config/pom.xml
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-config/pom.xml
rename to samples/ds/config/pom.xml
diff --git a/karaf-boot-samples/karaf-boot-sample-config/src/main/java/sample/config/ConfigComponent.java b/samples/ds/config/src/main/java/sample/config/ConfigComponent.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-config/src/main/java/sample/config/ConfigComponent.java
rename to samples/ds/config/src/main/java/sample/config/ConfigComponent.java
diff --git a/karaf-boot-samples/karaf-boot-sample-cdi/pom.xml b/samples/ds/pom.xml
similarity index 66%
copy from karaf-boot-samples/karaf-boot-sample-cdi/pom.xml
copy to samples/ds/pom.xml
index d627b6e..f031e88 100644
--- a/karaf-boot-samples/karaf-boot-sample-cdi/pom.xml
+++ b/samples/ds/pom.xml
@@ -22,26 +22,15 @@
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>org.apache.karaf.boot</groupId>
-    <artifactId>karaf-boot-sample-cdi</artifactId>
+    <artifactId>karaf-boot-samples-ds</artifactId>
     <version>1.0.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-starter-cdi</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.boot</groupId>
-                <artifactId>karaf-boot-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
+    <modules>
+        <module>config</module>
+        <module>service-consumer</module>
+        <module>service-provider</module>
+        <module>shell</module>
+    </modules>
 
 </project>
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-ds/README.md b/samples/ds/service-consumer/README.md
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-consumer-ds/README.md
rename to samples/ds/service-consumer/README.md
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-ds/pom.xml b/samples/ds/service-consumer/pom.xml
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-consumer-ds/pom.xml
rename to samples/ds/service-consumer/pom.xml
diff --git a/karaf-boot-samples/karaf-boot-sample-service-consumer-ds/src/main/java/sample/ds/service/consumer/HelloServiceClient.java b/samples/ds/service-consumer/src/main/java/sample/ds/service/consumer/HelloServiceClient.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-consumer-ds/src/main/java/sample/ds/service/consumer/HelloServiceClient.java
rename to samples/ds/service-consumer/src/main/java/sample/ds/service/consumer/HelloServiceClient.java
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-ds/README.md b/samples/ds/service-provider/README.md
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-provider-ds/README.md
rename to samples/ds/service-provider/README.md
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-ds/pom.xml b/samples/ds/service-provider/pom.xml
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-provider-ds/pom.xml
rename to samples/ds/service-provider/pom.xml
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-ds/src/main/java/sample/ds/service/provider/HelloService.java b/samples/ds/service-provider/src/main/java/sample/ds/service/provider/HelloService.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-provider-ds/src/main/java/sample/ds/service/provider/HelloService.java
rename to samples/ds/service-provider/src/main/java/sample/ds/service/provider/HelloService.java
diff --git a/karaf-boot-samples/karaf-boot-sample-service-provider-ds/src/main/java/sample/ds/service/provider/HelloServiceImpl.java b/samples/ds/service-provider/src/main/java/sample/ds/service/provider/HelloServiceImpl.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-service-provider-ds/src/main/java/sample/ds/service/provider/HelloServiceImpl.java
rename to samples/ds/service-provider/src/main/java/sample/ds/service/provider/HelloServiceImpl.java
diff --git a/karaf-boot-samples/karaf-boot-sample-shell/README.md b/samples/ds/shell/README.md
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-shell/README.md
rename to samples/ds/shell/README.md
diff --git a/karaf-boot-samples/karaf-boot-sample-shell/pom.xml b/samples/ds/shell/pom.xml
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-shell/pom.xml
rename to samples/ds/shell/pom.xml
diff --git a/karaf-boot-samples/karaf-boot-sample-shell/src/main/java/sample/shell/HelloCommand.java b/samples/ds/shell/src/main/java/sample/shell/HelloCommand.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-shell/src/main/java/sample/shell/HelloCommand.java
rename to samples/ds/shell/src/main/java/sample/shell/HelloCommand.java
diff --git a/karaf-boot-samples/karaf-boot-sample-jpa/README.md b/samples/jpa/README.md
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-jpa/README.md
rename to samples/jpa/README.md
diff --git a/karaf-boot-samples/karaf-boot-sample-jpa/pom.xml b/samples/jpa/pom.xml
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-jpa/pom.xml
rename to samples/jpa/pom.xml
diff --git a/karaf-boot-samples/karaf-boot-sample-jpa/src/main/java/sample/jpa/Task.java b/samples/jpa/src/main/java/sample/jpa/Task.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-jpa/src/main/java/sample/jpa/Task.java
rename to samples/jpa/src/main/java/sample/jpa/Task.java
diff --git a/karaf-boot-samples/karaf-boot-sample-cdi/pom.xml b/samples/pom.xml
similarity index 66%
copy from karaf-boot-samples/karaf-boot-sample-cdi/pom.xml
copy to samples/pom.xml
index d627b6e..bdb5fee 100644
--- a/karaf-boot-samples/karaf-boot-sample-cdi/pom.xml
+++ b/samples/pom.xml
@@ -22,26 +22,16 @@
     <modelVersion>4.0.0</modelVersion>
 
     <groupId>org.apache.karaf.boot</groupId>
-    <artifactId>karaf-boot-sample-cdi</artifactId>
+    <artifactId>karaf-boot-samples</artifactId>
     <version>1.0.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.karaf.boot</groupId>
-            <artifactId>karaf-boot-starter-cdi</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.karaf.boot</groupId>
-                <artifactId>karaf-boot-maven-plugin</artifactId>
-                <version>${project.version}</version>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
+    <modules>
+        <module>blueprint</module>
+        <module>cdi</module>
+        <module>ds</module>
+        <module>jpa</module>
+        <module>servlet</module>
+    </modules>
 
 </project>
diff --git a/karaf-boot-samples/karaf-boot-sample-servlet/README.md b/samples/servlet/README.md
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-servlet/README.md
rename to samples/servlet/README.md
diff --git a/karaf-boot-samples/karaf-boot-sample-servlet/pom.xml b/samples/servlet/pom.xml
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-servlet/pom.xml
rename to samples/servlet/pom.xml
diff --git a/karaf-boot-samples/karaf-boot-sample-servlet/src/main/java/sample/servlet/SampleServlet.java b/samples/servlet/src/main/java/sample/servlet/SampleServlet.java
similarity index 100%
rename from karaf-boot-samples/karaf-boot-sample-servlet/src/main/java/sample/servlet/SampleServlet.java
rename to samples/servlet/src/main/java/sample/servlet/SampleServlet.java
diff --git a/karaf-boot-starters/karaf-boot-starter-blueprint/pom.xml b/starters/karaf-boot-starter-blueprint/pom.xml
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-blueprint/pom.xml
rename to starters/karaf-boot-starter-blueprint/pom.xml
diff --git a/karaf-boot-starters/karaf-boot-starter-blueprint/src/main/java/org/apache/karaf/boot/blueprint/impl/BlueprintProcessor.java b/starters/karaf-boot-starter-blueprint/src/main/java/org/apache/karaf/boot/blueprint/impl/BlueprintProcessor.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-blueprint/src/main/java/org/apache/karaf/boot/blueprint/impl/BlueprintProcessor.java
rename to starters/karaf-boot-starter-blueprint/src/main/java/org/apache/karaf/boot/blueprint/impl/BlueprintProcessor.java
diff --git a/karaf-boot-starters/karaf-boot-starter-blueprint/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/starters/karaf-boot-starter-blueprint/src/main/resources/META-INF/services/javax.annotation.processing.Processor
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-blueprint/src/main/resources/META-INF/services/javax.annotation.processing.Processor
rename to starters/karaf-boot-starter-blueprint/src/main/resources/META-INF/services/javax.annotation.processing.Processor
diff --git a/karaf-boot-starters/karaf-boot-starter-cdi/pom.xml b/starters/karaf-boot-starter-cdi/pom.xml
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-cdi/pom.xml
rename to starters/karaf-boot-starter-cdi/pom.xml
diff --git a/karaf-boot-starters/karaf-boot-starter-cdi/src/main/java/org/apache/karaf/boot/cdi/impl/CdiProcessor.java b/starters/karaf-boot-starter-cdi/src/main/java/org/apache/karaf/boot/cdi/impl/CdiProcessor.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-cdi/src/main/java/org/apache/karaf/boot/cdi/impl/CdiProcessor.java
rename to starters/karaf-boot-starter-cdi/src/main/java/org/apache/karaf/boot/cdi/impl/CdiProcessor.java
diff --git a/karaf-boot-starters/karaf-boot-starter-cdi/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/starters/karaf-boot-starter-cdi/src/main/resources/META-INF/services/javax.annotation.processing.Processor
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-cdi/src/main/resources/META-INF/services/javax.annotation.processing.Processor
rename to starters/karaf-boot-starter-cdi/src/main/resources/META-INF/services/javax.annotation.processing.Processor
diff --git a/karaf-boot-starters/karaf-boot-starter-ds/pom.xml b/starters/karaf-boot-starter-ds/pom.xml
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-ds/pom.xml
rename to starters/karaf-boot-starter-ds/pom.xml
diff --git a/karaf-boot-starters/karaf-boot-starter-ds/src/main/java/org/apache/karaf/boot/ds/impl/DsProcessor.java b/starters/karaf-boot-starter-ds/src/main/java/org/apache/karaf/boot/ds/impl/DsProcessor.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-ds/src/main/java/org/apache/karaf/boot/ds/impl/DsProcessor.java
rename to starters/karaf-boot-starter-ds/src/main/java/org/apache/karaf/boot/ds/impl/DsProcessor.java
diff --git a/karaf-boot-starters/karaf-boot-starter-ds/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/starters/karaf-boot-starter-ds/src/main/resources/META-INF/services/javax.annotation.processing.Processor
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-ds/src/main/resources/META-INF/services/javax.annotation.processing.Processor
rename to starters/karaf-boot-starter-ds/src/main/resources/META-INF/services/javax.annotation.processing.Processor
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/pom.xml b/starters/karaf-boot-starter-jpa/pom.xml
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/pom.xml
rename to starters/karaf-boot-starter-jpa/pom.xml
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/EclipseLink.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/EclipseLink.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/EclipseLink.java
rename to starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/EclipseLink.java
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Hibernate.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Hibernate.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Hibernate.java
rename to starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Hibernate.java
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/OpenJpa.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/OpenJpa.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/OpenJpa.java
rename to starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/OpenJpa.java
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/PersistentUnit.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/PersistentUnit.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/PersistentUnit.java
rename to starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/PersistentUnit.java
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Property.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Property.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Property.java
rename to starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Property.java
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Provider.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Provider.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Provider.java
rename to starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/Provider.java
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/TransactionType.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/TransactionType.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/TransactionType.java
rename to starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/TransactionType.java
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java b/starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java
rename to starters/karaf-boot-starter-jpa/src/main/java/org/apache/karaf/boot/jpa/impl/JpaProcessor.java
diff --git a/karaf-boot-starters/karaf-boot-starter-jpa/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/starters/karaf-boot-starter-jpa/src/main/resources/META-INF/services/javax.annotation.processing.Processor
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-jpa/src/main/resources/META-INF/services/javax.annotation.processing.Processor
rename to starters/karaf-boot-starter-jpa/src/main/resources/META-INF/services/javax.annotation.processing.Processor
diff --git a/karaf-boot-starters/karaf-boot-starter-karaf/pom.xml b/starters/karaf-boot-starter-karaf/pom.xml
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-karaf/pom.xml
rename to starters/karaf-boot-starter-karaf/pom.xml
diff --git a/karaf-boot-starters/karaf-boot-starter-karaf/src/main/java/org/apache/karaf/boot/karaf/impl/KarafProcessor.java b/starters/karaf-boot-starter-karaf/src/main/java/org/apache/karaf/boot/karaf/impl/KarafProcessor.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-karaf/src/main/java/org/apache/karaf/boot/karaf/impl/KarafProcessor.java
rename to starters/karaf-boot-starter-karaf/src/main/java/org/apache/karaf/boot/karaf/impl/KarafProcessor.java
diff --git a/karaf-boot-starters/karaf-boot-starter-karaf/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/starters/karaf-boot-starter-karaf/src/main/resources/META-INF/services/javax.annotation.processing.Processor
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-karaf/src/main/resources/META-INF/services/javax.annotation.processing.Processor
rename to starters/karaf-boot-starter-karaf/src/main/resources/META-INF/services/javax.annotation.processing.Processor
diff --git a/karaf-boot-starters/karaf-boot-starter-shell/pom.xml b/starters/karaf-boot-starter-shell/pom.xml
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-shell/pom.xml
rename to starters/karaf-boot-starter-shell/pom.xml
diff --git a/karaf-boot-starters/karaf-boot-starter-shell/src/main/java/org/apache/karaf/boot/shell/impl/ShellProcessor.java b/starters/karaf-boot-starter-shell/src/main/java/org/apache/karaf/boot/shell/impl/ShellProcessor.java
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-shell/src/main/java/org/apache/karaf/boot/shell/impl/ShellProcessor.java
rename to starters/karaf-boot-starter-shell/src/main/java/org/apache/karaf/boot/shell/impl/ShellProcessor.java
diff --git a/karaf-boot-starters/karaf-boot-starter-shell/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/starters/karaf-boot-starter-shell/src/main/resources/META-INF/services/javax.annotation.processing.Processor
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-shell/src/main/resources/META-INF/services/javax.annotation.processing.Processor
rename to starters/karaf-boot-starter-shell/src/main/resources/META-INF/services/javax.annotation.processing.Processor
diff --git a/karaf-boot-starters/karaf-boot-starter-web/pom.xml b/starters/karaf-boot-starter-web/pom.xml
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter-web/pom.xml
rename to starters/karaf-boot-starter-web/pom.xml
diff --git a/karaf-boot-starters/karaf-boot-starter/pom.xml b/starters/karaf-boot-starter/pom.xml
similarity index 100%
rename from karaf-boot-starters/karaf-boot-starter/pom.xml
rename to starters/karaf-boot-starter/pom.xml
diff --git a/karaf-boot-starters/pom.xml b/starters/pom.xml
similarity index 100%
rename from karaf-boot-starters/pom.xml
rename to starters/pom.xml
diff --git a/karaf-boot-tools/karaf-boot-maven-plugin/pom.xml b/tools/karaf-boot-maven-plugin/pom.xml
similarity index 100%
rename from karaf-boot-tools/karaf-boot-maven-plugin/pom.xml
rename to tools/karaf-boot-maven-plugin/pom.xml
diff --git a/karaf-boot-tools/karaf-boot-maven-plugin/src/main/java/org/apache/karaf/boot/maven/GenerateMojo.java b/tools/karaf-boot-maven-plugin/src/main/java/org/apache/karaf/boot/maven/GenerateMojo.java
similarity index 100%
rename from karaf-boot-tools/karaf-boot-maven-plugin/src/main/java/org/apache/karaf/boot/maven/GenerateMojo.java
rename to tools/karaf-boot-maven-plugin/src/main/java/org/apache/karaf/boot/maven/GenerateMojo.java
diff --git a/karaf-boot-tools/karaf-boot-maven-plugin/src/main/resources/META-INF/plexus/components.xml b/tools/karaf-boot-maven-plugin/src/main/resources/META-INF/plexus/components.xml
similarity index 100%
rename from karaf-boot-tools/karaf-boot-maven-plugin/src/main/resources/META-INF/plexus/components.xml
rename to tools/karaf-boot-maven-plugin/src/main/resources/META-INF/plexus/components.xml
diff --git a/karaf-boot-tools/pom.xml b/tools/pom.xml
similarity index 100%
rename from karaf-boot-tools/pom.xml
rename to tools/pom.xml