diff --git a/osgi/intro/osgi-intro-sample-activator/pom.xml b/osgi/intro/osgi-intro-sample-activator/pom.xml
deleted file mode 100644
index 1584913627..0000000000
--- a/osgi/intro/osgi-intro-sample-activator/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
- osgi-intro
- com.baeldung
- 1.0-SNAPSHOT
-
- 4.0.0
-
-
- bundle
-
- osgi-intro-sample-activator
-
-
-
- org.osgi
- org.osgi.core
-
-
-
-
-
-
- org.apache.felix
- maven-bundle-plugin
- true
-
-
- ${project.groupId}.${project.artifactId}
- ${project.artifactId}
- ${project.version}
-
-
- com.baeldung.osgi.sample.activator.HelloWorld
-
-
-
- com.baeldung.osgi.sample.activator
-
-
-
-
-
-
-
-
diff --git a/osgi/intro/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java b/osgi/intro/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java
deleted file mode 100644
index 72fe624bac..0000000000
--- a/osgi/intro/osgi-intro-sample-activator/src/main/java/com/baeldung/osgi/sample/activator/HelloWorld.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.baeldung.osgi.sample.activator;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class HelloWorld implements BundleActivator {
-
- public void start(BundleContext ctx) {
- System.out.println("Hello World.");
- }
-
- public void stop(BundleContext bundleContext) {
- System.out.println("Goodbye World.");
- }
-
-}
\ No newline at end of file
diff --git a/osgi/intro/osgi-intro-sample-client/pom.xml b/osgi/intro/osgi-intro-sample-client/pom.xml
deleted file mode 100644
index 4096674d7d..0000000000
--- a/osgi/intro/osgi-intro-sample-client/pom.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
- osgi-intro
- com.baeldung
- 1.0-SNAPSHOT
-
- 4.0.0
-
-
- osgi-intro-sample-client
-
- bundle
-
-
-
- com.baeldung
- osgi-intro-sample-service
- 1.0-SNAPSHOT
-
-
- org.osgi
- org.osgi.core
-
-
-
-
-
-
- org.apache.felix
- maven-bundle-plugin
-
-
- ${project.groupId}.${project.artifactId}
- ${project.artifactId}
- ${project.version}
- com.baeldung.osgi.sample.client.Client
-
- com.baeldung.osgi.sample.client
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osgi/intro/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java b/osgi/intro/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java
deleted file mode 100644
index a82ed63fa7..0000000000
--- a/osgi/intro/osgi-intro-sample-client/src/main/java/com/baeldung/osgi/sample/client/Client.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.baeldung.osgi.sample.client;
-
-import com.baeldung.osgi.sample.service.definition.Greeter;
-import org.osgi.framework.*;
-
-public class Client implements BundleActivator, ServiceListener {
-
- private BundleContext ctx;
- private ServiceReference serviceReference;
-
- public void start(BundleContext ctx) {
- this.ctx = ctx;
- try {
- ctx.addServiceListener(this, "(objectclass=" + Greeter.class.getName() + ")");
- } catch (InvalidSyntaxException ise) {
- ise.printStackTrace();
- }
- }
-
- public void stop(BundleContext bundleContext) {
- if (serviceReference != null) {
- ctx.ungetService(serviceReference);
- }
- this.ctx = null;
- }
-
- public void serviceChanged(ServiceEvent serviceEvent) {
- int type = serviceEvent.getType();
- switch (type) {
- case (ServiceEvent.REGISTERED):
- System.out.println("Notification of service registered.");
- serviceReference = serviceEvent.getServiceReference();
- Greeter service = (Greeter) (ctx.getService(serviceReference));
- System.out.println(service.sayHiTo("John"));
- break;
- case (ServiceEvent.UNREGISTERING):
- System.out.println("Notification of service unregistered.");
- ctx.ungetService(serviceEvent.getServiceReference());
- break;
- default:
- break;
- }
- }
-}
diff --git a/osgi/intro/osgi-intro-sample-service/pom.xml b/osgi/intro/osgi-intro-sample-service/pom.xml
deleted file mode 100644
index cbc660bb74..0000000000
--- a/osgi/intro/osgi-intro-sample-service/pom.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
- osgi-intro
- com.baeldung
- 1.0-SNAPSHOT
-
- 4.0.0
-
- osgi-intro-sample-service
-
-
- bundle
-
-
-
- org.osgi
- org.osgi.core
-
-
-
-
-
-
- org.apache.felix
- maven-bundle-plugin
- true
-
-
- ${project.groupId}.${project.artifactId}
- ${project.artifactId}
- ${project.version}
- com.baeldung.osgi.sample.service.implementation.GreeterImpl
- com.baeldung.osgi.sample.service.implementation
- com.baeldung.osgi.sample.service.definition
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java b/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java
deleted file mode 100644
index f1e82a3465..0000000000
--- a/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/definition/Greeter.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.baeldung.osgi.sample.service.definition;
-
-public interface Greeter {
-
- public String sayHiTo(String name);
-
-}
diff --git a/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java b/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java
deleted file mode 100644
index 48e26e3e6b..0000000000
--- a/osgi/intro/osgi-intro-sample-service/src/main/java/com/baeldung/osgi/sample/service/implementation/GreeterImpl.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.baeldung.osgi.sample.service.implementation;
-
-import com.baeldung.osgi.sample.service.definition.Greeter;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-
-import java.util.Hashtable;
-
-public class GreeterImpl implements Greeter, BundleActivator {
-
- private ServiceReference reference;
- private ServiceRegistration registration;
-
- @Override public String sayHiTo(String name) {
- return "Hello " + name;
- }
-
- @Override public void start(BundleContext context) throws Exception {
- System.out.println("Registering service.");
- registration = context.registerService(Greeter.class, new GreeterImpl(), new Hashtable());
- reference = registration.getReference();
- }
-
- @Override public void stop(BundleContext context) throws Exception {
- System.out.println("Unregistering service.");
- registration.unregister();
- }
-}
diff --git a/osgi/intro/pom.xml b/osgi/intro/pom.xml
deleted file mode 100644
index 83db90d19e..0000000000
--- a/osgi/intro/pom.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
-
- 4.0.0
-
- osgi-intro
- pom
- 1.0-SNAPSHOT
-
- osgi-intro-sample-activator
- osgi-intro-sample-service
- osgi-intro-sample-client
-
-
-
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
- ../..
-
-
-
-
-
-
- ${project.groupId}
- osgi-intro-client
- ${project.version}
-
-
-
- ${project.groupId}
- osgi-intro-service
- ${project.version}
-
-
-
- ${project.groupId}
- osgi-intro-gxyz
- ${project.version}
-
-
-
- ${project.groupId}
- osgi-intro-mapquest
- ${project.version}
-
-
-
- com.squareup.okhttp3
- okhttp
- 3.9.0
-
-
- javax.json
- javax.json-api
- 1.1
-
-
- org.glassfish
- javax.json
- 1.1
-
-
- org.osgi
- org.osgi.core
- 5.0.0
- provided
-
-
-
-
-
-
-
-
- org.apache.felix
- maven-bundle-plugin
- 1.4.0
- true
-
-
-
-
-
-
\ No newline at end of file
diff --git a/osgi/intro/readme.md b/osgi/readme.md
similarity index 100%
rename from osgi/intro/readme.md
rename to osgi/readme.md
diff --git a/pom.xml b/pom.xml
index 631a2c9b26..5af1dab012 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,6 +118,7 @@
mustache
noexception
+ osgi
orika
patterns