Commit the new iPOJO version (0.7.6).

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@642265 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ipojo/examples/tutorial-maven/hello.client.annotation/metadata.xml b/ipojo/examples/tutorial-maven/hello.client.annotation/metadata.xml
new file mode 100644
index 0000000..134250d
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.client.annotation/metadata.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<iPOJO>

+  <instance component="AnnotatedHelloClient" name="HelloClient"/>

+</iPOJO>
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.client.annotation/pom.xml b/ipojo/examples/tutorial-maven/hello.client.annotation/pom.xml
new file mode 100644
index 0000000..eee6444
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.client.annotation/pom.xml
@@ -0,0 +1,66 @@
+<project>

+  <modelVersion>4.0.0</modelVersion>

+  <packaging>bundle</packaging>

+  <groupId>ipojo.examples</groupId>

+  <artifactId>hello.client.annotation</artifactId>

+   <version>0.7.6-SNAPSHOT</version>

+  <name>Hello Service Client using Annotations</name>

+  

+  <dependencies>

+    <dependency>

+      <groupId>ipojo.examples</groupId>

+      <artifactId>hello.service</artifactId>

+      <version>${pom.version}</version>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.felix</groupId>

+      <artifactId>org.apache.felix.ipojo.annotations</artifactId>

+      <version>0.7.6-SNAPSHOT</version>

+    </dependency>

+  </dependencies>

+  

+  <pluginRepositories>

+    <pluginRepository>

+      <id>apache.snapshots</id>

+      <name>snapshot plugins</name>

+      <url>

+        http://people.apache.org/repo/m2-snapshot-repository

+      </url>

+    </pluginRepository>

+  </pluginRepositories>

+  

+  <build>

+    <plugins>

+     <plugin>

+		<groupId>org.apache.maven.plugins</groupId>

+		<artifactId>maven-compiler-plugin</artifactId>

+		<configuration>

+		<source>1.5</source>

+		<target>1.5</target>

+		</configuration>

+	  </plugin>

+      <plugin>

+        <groupId>org.apache.felix</groupId>

+        <artifactId>maven-bundle-plugin</artifactId>

+        <extensions>true</extensions>

+        <configuration>

+          <instructions>

+            <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>

+            <Private-Package>ipojo.example.hello.client</Private-Package>

+          </instructions>

+        </configuration>

+      </plugin>

+      <plugin>

+	      <groupId>org.apache.felix</groupId>

+	      <artifactId>maven-ipojo-plugin</artifactId>

+		  <executions>

+          	<execution>

+            	<goals>

+	              <goal>ipojo-bundle</goal>

+               </goals>

+          </execution>

+        </executions>

+      </plugin>

+    </plugins>

+  </build>

+</project>

diff --git a/ipojo/examples/tutorial-maven/hello.client.annotation/src/main/java/ipojo/example/hello/client/HelloClient.java b/ipojo/examples/tutorial-maven/hello.client.annotation/src/main/java/ipojo/example/hello/client/HelloClient.java
new file mode 100644
index 0000000..2c3697c
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.client.annotation/src/main/java/ipojo/example/hello/client/HelloClient.java
@@ -0,0 +1,90 @@
+/* 

+ * 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 ipojo.example.hello.client;

+

+import ipojo.example.hello.Hello;

+

+import org.apache.felix.ipojo.annotations.Component;

+import org.apache.felix.ipojo.annotations.Invalidate;

+import org.apache.felix.ipojo.annotations.Requires;

+import org.apache.felix.ipojo.annotations.Validate;

+

+/**

+ * A simple Hello service client. This client use annotation instead of XML metadata.

+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

+ */

+@Component(name = "AnnotatedHelloClient", architecture = true)

+public class HelloClient implements Runnable {

+    

+    /** Delay between two invocations. */

+    private static final int DELAY = 10000;

+

+    /**

+     * Hello services. Injected by the container.

+     */

+    @Requires

+    private Hello[] m_hello;

+

+    /**

+     *  End flag.

+     */

+    private boolean m_end;

+

+    /**

+     * Run method.

+     * @see java.lang.Runnable#run()

+     */

+    public void run() {

+        while (!m_end) {

+            try {

+                invokeHelloServices();

+                Thread.sleep(DELAY);

+            } catch (InterruptedException ie) {

+                /* will recheck end */

+            }

+        }

+    }

+

+    /**

+     * Invoke hello services.

+     */

+    public void invokeHelloServices() {

+        for (int i = 0; i < m_hello.length; i++) {

+            System.out.println(i + " :" + m_hello[i].sayHello("Clement"));

+        }

+    }

+

+    /**

+     * Starting.

+     */

+    @Validate

+    public void starting() {

+        Thread thread = new Thread(this);

+        m_end = false;

+        thread.start();

+    }

+

+    /**

+     * Stopping.

+     */

+    @Invalidate

+    public void stopping() {

+        m_end = true;

+    }

+}

diff --git a/ipojo/examples/tutorial-maven/hello.client.annotation/src/main/java/ipojo/example/source.txt b/ipojo/examples/tutorial-maven/hello.client.annotation/src/main/java/ipojo/example/source.txt
new file mode 100644
index 0000000..0198756
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.client.annotation/src/main/java/ipojo/example/source.txt
@@ -0,0 +1 @@
+PUT YOUR SOURCE FILES HERE
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.client/metadata.xml b/ipojo/examples/tutorial-maven/hello.client/metadata.xml
new file mode 100644
index 0000000..4141c34
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.client/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<iPOJO>

+	<component className="ipojo.example.hello.client.HelloClient"

+		architecture="true">

+		<requires field="m_hello" />

+		<callback transition="validate" method="starting" />

+		<callback transition="invalidate" method="stopping" />

+		<properties>

+			<property field="m_name" name="name" />

+		</properties>

+	</component>

+	<instance component="ipojo.example.hello.client.HelloClient">

+		<property name="name" value="clement" />

+	</instance>

+</iPOJO>
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.client/pom.xml b/ipojo/examples/tutorial-maven/hello.client/pom.xml
new file mode 100644
index 0000000..91cbe69
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.client/pom.xml
@@ -0,0 +1,82 @@
+<!--

+	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.

+-->

+<project>

+	<modelVersion>4.0.0</modelVersion>

+	<packaging>bundle</packaging><!-- Use the BND Maven plug-in -->

+	<groupId>ipojo.examples</groupId>

+	<artifactId>hello.client</artifactId>

+	<version>0.7.6-SNAPSHOT</version>

+	<name>Hello Service Client</name>

+	<dependencies>

+		<dependency>

+			<groupId>ipojo.examples</groupId>

+			<artifactId>hello.service</artifactId>

+			<version>${pom.version}</version>

+		</dependency>

+	</dependencies>

+

+	<pluginRepositories>

+		<pluginRepository>

+			<id>apache.snapshots</id>

+			<name>snapshot plugins</name>

+			<url>

+				http://people.apache.org/repo/m2-snapshot-repository

+			</url>

+			<releases>

+				<enabled>false</enabled>

+			</releases>

+			<snapshots>

+				<enabled>true</enabled>

+			</snapshots>

+		</pluginRepository>

+	</pluginRepositories>

+

+	<build>

+		<plugins>

+			<plugin>

+				<groupId>org.apache.felix</groupId>

+				<artifactId>maven-bundle-plugin</artifactId>

+				<extensions>true</extensions>

+				<version>1.4.0</version>

+				<configuration>

+					<instructions>

+						<Bundle-SymbolicName>

+							${pom.artifactId}

+						</Bundle-SymbolicName>

+						<Private-Package>

+							ipojo.example.hello.client

+						</Private-Package>

+					</instructions>

+				</configuration>

+			</plugin>

+			<plugin>

+				<groupId>org.apache.felix</groupId>

+				<artifactId>maven-ipojo-plugin</artifactId>

+				<version>0.7.6-SNAPSHOT</version>

+				<executions>

+					<execution>

+						<goals>

+							<goal>ipojo-bundle</goal>

+						</goals>

+					</execution>

+				</executions>

+			</plugin>

+		</plugins>

+	</build>

+</project>

diff --git a/ipojo/examples/tutorial-maven/hello.client/src/main/java/ipojo/example/hello/client/HelloClient.java b/ipojo/examples/tutorial-maven/hello.client/src/main/java/ipojo/example/hello/client/HelloClient.java
new file mode 100644
index 0000000..023db3f
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.client/src/main/java/ipojo/example/hello/client/HelloClient.java
@@ -0,0 +1,90 @@
+/* 

+ * 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 ipojo.example.hello.client;

+

+import ipojo.example.hello.Hello;

+

+/**

+ * Hello Service simple client.

+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

+ */

+public class HelloClient implements Runnable {

+

+    /**

+     *  Delay between two invocations. 

+     */

+    private static final int DELAY = 10000;

+    

+    /** 

+     * Hello services. 

+     * Injected by the container.

+     * */

+    private Hello[] m_hello; // Service Requirement

+

+    /** 

+     * End flag.

+     *  */

+    private boolean m_end;

+

+    /** 

+     * Name property.

+     * Injected by the container.

+     * */

+    private String m_name;

+

+    /**

+     * Run method.

+     * @see java.lang.Runnable#run()

+     */

+    public void run() {

+        while (!m_end) {

+            try {

+                invokeHelloServices();

+                Thread.sleep(DELAY);

+            } catch (InterruptedException ie) {

+                /* will recheck end */

+            }

+        }

+    }

+

+    /**

+     * Invoke hello services.

+     */

+    public void invokeHelloServices() {

+        for (int i = 0; i < m_hello.length; i++) {

+            System.out.println(m_hello[i].sayHello(m_name));

+        }

+    }

+

+    /**

+     * Starting.

+     */

+    public void starting() {

+        Thread thread = new Thread(this);

+        m_end = false;

+        thread.start();

+    }

+

+    /**

+     * Stopping.

+     */

+    public void stopping() {

+        m_end = true;

+    }

+}

diff --git a/ipojo/examples/tutorial-maven/hello.client/src/main/java/ipojo/example/source.txt b/ipojo/examples/tutorial-maven/hello.client/src/main/java/ipojo/example/source.txt
new file mode 100644
index 0000000..0198756
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.client/src/main/java/ipojo/example/source.txt
@@ -0,0 +1 @@
+PUT YOUR SOURCE FILES HERE
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.impl.annotation/pom.xml b/ipojo/examples/tutorial-maven/hello.impl.annotation/pom.xml
new file mode 100644
index 0000000..2281a57
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.impl.annotation/pom.xml
@@ -0,0 +1,88 @@
+<!--

+	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.

+-->

+<project>

+	<modelVersion>4.0.0</modelVersion>

+	<packaging>bundle</packaging>

+	<groupId>ipojo.examples</groupId>

+	<artifactId>hello.impl.annotation</artifactId>

+	<version>0.7.6-SNAPSHOT</version>

+	<name>Hello Service Provider using Annotations</name>

+

+	<pluginRepositories>

+		<pluginRepository>

+			<id>apache.snapshots</id>

+			<name>snapshot plugins</name>

+			<url>

+				http://people.apache.org/repo/m2-snapshot-repository

+			</url>

+		</pluginRepository>

+	</pluginRepositories>

+

+	<dependencies>

+		<dependency>

+			<groupId>ipojo.examples</groupId>

+			<artifactId>hello.service</artifactId>

+			<version>${pom.version}</version>

+		</dependency>

+		<dependency>

+			<groupId>org.apache.felix</groupId>

+			<artifactId>org.apache.felix.ipojo.annotations</artifactId>

+			<version>0.7.6-SNAPSHOT</version>

+		</dependency>

+	</dependencies>

+

+	<build>

+		<plugins>

+			<plugin>

+				<groupId>org.apache.maven.plugins</groupId>

+				<artifactId>maven-compiler-plugin</artifactId>

+				<configuration>

+					<source>1.5</source>

+					<target>1.5</target>

+				</configuration>

+			</plugin>

+			<plugin>

+				<groupId>org.apache.felix</groupId>

+				<artifactId>maven-bundle-plugin</artifactId>

+				<extensions>true</extensions>

+				<configuration>

+					<instructions>

+						<Bundle-SymbolicName>

+							${pom.artifactId}

+						</Bundle-SymbolicName>

+						<Private-Package>

+							ipojo.example.hello.impl

+						</Private-Package>

+					</instructions>

+				</configuration>

+			</plugin>

+			<plugin>

+				<groupId>org.apache.felix</groupId>

+				<artifactId>maven-ipojo-plugin</artifactId>

+				<executions>

+					<execution>

+						<goals>

+							<goal>ipojo-bundle</goal>

+						</goals>

+					</execution>

+				</executions>

+			</plugin>

+		</plugins>

+	</build>

+</project>

diff --git a/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/java/ipojo/example/hello/impl/HelloImpl.java b/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/java/ipojo/example/hello/impl/HelloImpl.java
new file mode 100644
index 0000000..8b37c2f
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/java/ipojo/example/hello/impl/HelloImpl.java
@@ -0,0 +1,42 @@
+/* 

+ * 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 ipojo.example.hello.impl;

+

+import ipojo.example.hello.Hello;

+

+import org.apache.felix.ipojo.annotations.Component;

+import org.apache.felix.ipojo.annotations.Provides;

+

+/**

+ * Component implementing the Hello service.

+ * This class used annotations to describe the component type. 

+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

+ */

+@Component

+@Provides

+public class HelloImpl implements Hello {

+    

+    /**

+     * Returns an 'Hello' message.

+     * @param name : name

+     * @return Hello message

+     * @see ipojo.example.hello.Hello#sayHello(java.lang.String)

+     */

+    public String sayHello(String name) { return "hello " + name + " @";  }

+}

diff --git a/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/java/ipojo/example/hello/impl/source.txt b/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/java/ipojo/example/hello/impl/source.txt
new file mode 100644
index 0000000..0198756
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/java/ipojo/example/hello/impl/source.txt
@@ -0,0 +1 @@
+PUT YOUR SOURCE FILES HERE
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/resources/metadata.xml b/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/resources/metadata.xml
new file mode 100644
index 0000000..559b556
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.impl.annotation/src/main/resources/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<iPOJO>

+	<instance component="ipojo.example.hello.impl.HelloImpl"

+		name="HelloService2" />

+</iPOJO>
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.impl/metadata.xml b/ipojo/examples/tutorial-maven/hello.impl/metadata.xml
new file mode 100644
index 0000000..59d9666
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.impl/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<iPOJO>

+	<component className="ipojo.example.hello.impl.HelloImpl"

+		name="HelloProvider" architecture="true">

+		<provides />

+	</component>

+	<instance component="HelloProvider" name="HelloService" />

+</iPOJO>
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.impl/pom.xml b/ipojo/examples/tutorial-maven/hello.impl/pom.xml
new file mode 100644
index 0000000..3cf4551
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.impl/pom.xml
@@ -0,0 +1,65 @@
+<project>

+	<modelVersion>4.0.0</modelVersion>

+	<packaging>bundle</packaging>

+	<groupId>ipojo.examples</groupId>

+	<artifactId>hello.impl</artifactId>

+	<version>0.7.6-SNAPSHOT</version>

+	<name>Hello Service Provider</name>

+

+	<pluginRepositories>

+		<pluginRepository>

+			<id>apache.snapshots</id>

+			<name>snapshot plugins</name>

+			<url>

+				http://people.apache.org/repo/m2-snapshot-repository

+			</url>

+			<releases>

+				<enabled>false</enabled>

+			</releases>

+			<snapshots>

+				<enabled>true</enabled>

+			</snapshots>

+		</pluginRepository>

+	</pluginRepositories>

+

+	<dependencies>

+		<dependency>

+			<groupId>ipojo.examples</groupId>

+			<artifactId>hello.service</artifactId>

+			<version>${pom.version}</version>

+		</dependency>

+	</dependencies>

+

+	<build>

+		<plugins>

+			<plugin>

+				<groupId>org.apache.felix</groupId>

+				<artifactId>maven-bundle-plugin</artifactId>

+				<version>1.4.0</version>

+				<extensions>true</extensions>

+				<configuration>

+					<instructions>

+						<Bundle-SymbolicName>

+							${pom.artifactId}

+						</Bundle-SymbolicName>

+						<Private-Package>

+							ipojo.example.hello.impl

+						</Private-Package>

+					</instructions>

+				</configuration>

+			</plugin>

+			<plugin>

+				<groupId>org.apache.felix</groupId>

+				<artifactId>maven-ipojo-plugin</artifactId>

+				<version>0.7.6-SNAPSHOT</version>

+				<executions>

+					<execution>

+						<goals>

+							<goal>ipojo-bundle</goal>

+						</goals>

+					</execution>

+				</executions>

+			</plugin>

+		</plugins>

+	</build>

+</project>

diff --git a/ipojo/examples/tutorial-maven/hello.impl/src/main/java/ipojo/example/hello/impl/HelloImpl.java b/ipojo/examples/tutorial-maven/hello.impl/src/main/java/ipojo/example/hello/impl/HelloImpl.java
new file mode 100644
index 0000000..8008fa9
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.impl/src/main/java/ipojo/example/hello/impl/HelloImpl.java
@@ -0,0 +1,36 @@
+/* 

+ * 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 ipojo.example.hello.impl;

+

+import ipojo.example.hello.Hello;

+

+/**

+ * Component implementing the Hello service.

+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

+ */

+public class HelloImpl implements Hello {

+    

+    /**

+     * Returns an 'Hello' message.

+     * @param name : name

+     * @return Hello message

+     * @see ipojo.example.hello.Hello#sayHello(java.lang.String)

+     */

+    public String sayHello(String name) { return "hello " + name;  }

+}

diff --git a/ipojo/examples/tutorial-maven/hello.impl/src/main/java/ipojo/example/hello/impl/source.txt b/ipojo/examples/tutorial-maven/hello.impl/src/main/java/ipojo/example/hello/impl/source.txt
new file mode 100644
index 0000000..0198756
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.impl/src/main/java/ipojo/example/hello/impl/source.txt
@@ -0,0 +1 @@
+PUT YOUR SOURCE FILES HERE
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.service/metadata.xml b/ipojo/examples/tutorial-maven/hello.service/metadata.xml
new file mode 100644
index 0000000..89547bc
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.service/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<iPOJO>

+  <component className="ipojo.example.hello.impl.HelloImpl" name="HelloProvider" architecture="true">

+    <provides/>

+  </component>

+  <instance component="HelloProvider" name="HelloService"/>

+</iPOJO>
\ No newline at end of file
diff --git a/ipojo/examples/tutorial-maven/hello.service/pom.xml b/ipojo/examples/tutorial-maven/hello.service/pom.xml
new file mode 100644
index 0000000..084989d
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.service/pom.xml
@@ -0,0 +1,63 @@
+<!--

+	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.

+-->

+<project>

+	<modelVersion>4.0.0</modelVersion>

+	<packaging>bundle</packaging>

+	<groupId>ipojo.examples</groupId>

+	<artifactId>hello.service</artifactId>

+	<version>0.7.6-SNAPSHOT</version>

+	<name>Hello Service</name>

+

+	<pluginRepositories>

+		<pluginRepository>

+			<id>apache.snapshots</id>

+			<name>snapshot plugins</name>

+			<url>

+				http://people.apache.org/repo/m2-snapshot-repository

+			</url>

+			<releases>

+				<enabled>false</enabled>

+			</releases>

+			<snapshots>

+				<enabled>true</enabled>

+			</snapshots>

+		</pluginRepository>

+	</pluginRepositories>

+

+	<build>

+		<plugins>

+			<plugin>

+				<groupId>org.apache.felix</groupId>

+				<artifactId>maven-bundle-plugin</artifactId>

+				<version>1.4.0</version>

+				<extensions>true</extensions>

+				<configuration>

+					<instructions>

+						<Bundle-SymbolicName>

+							${pom.artifactId}

+						</Bundle-SymbolicName>

+						<Export-Package>

+							ipojo.example.hello

+						</Export-Package>

+					</instructions>

+				</configuration>

+			</plugin>

+		</plugins>

+	</build>

+</project>

diff --git a/ipojo/examples/tutorial-maven/hello.service/src/main/java/ipojo/example/hello/Hello.java b/ipojo/examples/tutorial-maven/hello.service/src/main/java/ipojo/example/hello/Hello.java
new file mode 100644
index 0000000..e0c25da
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/hello.service/src/main/java/ipojo/example/hello/Hello.java
@@ -0,0 +1,33 @@
+/* 

+ * 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 ipojo.example.hello;

+

+/**

+ * Hello Interface.

+ * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>

+ */

+public interface Hello {

+

+    /**

+     * Returns a message like: "Hello $user_name".

+     * @param name the name

+     * @return the hello message

+     */

+    String sayHello(String name);

+}

diff --git a/ipojo/examples/tutorial-maven/pom.xml b/ipojo/examples/tutorial-maven/pom.xml
new file mode 100644
index 0000000..99d12ac
--- /dev/null
+++ b/ipojo/examples/tutorial-maven/pom.xml
@@ -0,0 +1,40 @@
+<project>

+  <parent>

+    <groupId>ipojo.examples</groupId>

+  	<artifactId>ipojo.examples</artifactId>

+  	<version>0.7.6-SNAPSHOT</version>

+    <relativePath>../pom.xml</relativePath>

+  </parent>

+  <modelVersion>4.0.0</modelVersion>

+  <artifactId>ipojo.tutorial</artifactId>

+  <name>Apache Felix iPOJO Tutorial</name>

+  <packaging>pom</packaging>

+  <modules>

+	<module>hello.service</module>

+	<module>hello.impl</module>

+	<module>hello.client</module>

+  </modules>

+  

+  <profiles>

+	<profile>

+		<id>java5</id>

+		<activation>

+			<jdk>1.5</jdk>

+		</activation>

+		<modules>

+			<module>hello.impl.annotation</module>

+			<module>hello.client.annotation</module>

+		</modules>

+	</profile>

+	<profile>

+		<id>java6</id>

+		<activation>

+			<jdk>1.6</jdk>

+		</activation>

+		<modules>

+			<module>hello.impl.annotation</module>

+			<module>hello.client.annotation</module>

+		</modules>

+	</profile>

+  </profiles>

+</project>
\ No newline at end of file