IGNITE-13570 Move OSGi to the Ignite Extensions project (#10146)

diff --git a/assembly/dependencies-apache-ignite-slim.xml b/assembly/dependencies-apache-ignite-slim.xml
index bcc7554..2e1faef 100644
--- a/assembly/dependencies-apache-ignite-slim.xml
+++ b/assembly/dependencies-apache-ignite-slim.xml
@@ -148,9 +148,6 @@
                 <exclude>${project.groupId}:ignite-ml-spark-model-parser</exclude>
                 <exclude>${project.groupId}:ignite-ml-xgboost-model-parser</exclude>
                 <exclude>${project.groupId}:ignite-ml-catboost-model-parser</exclude>
-                <exclude>${project.groupId}:ignite-osgi</exclude>
-                <exclude>${project.groupId}:ignite-osgi-karaf</exclude>
-                <exclude>${project.groupId}:ignite-osgi-paxlogging</exclude>
                 <exclude>${project.groupId}:ignite-ssh</exclude>
                 <exclude>${project.groupId}:ignite-web</exclude>
                 <exclude>${project.groupId}:ignite-zookeeper</exclude>
diff --git a/assembly/libs/README.txt b/assembly/libs/README.txt
index 743c1f0..cdfd223 100644
--- a/assembly/libs/README.txt
+++ b/assembly/libs/README.txt
@@ -77,9 +77,6 @@
 - ignite-jta (for XA integration)
 - ignite-logj4 (for Log4j logging)
 - ignite-log4j2 (for Log4j 2 logging)
-- ignite-osgi (to allow Ignite run seemlessly in OSGI containers)
-- ignite-osgi-karaf (to seemlessly intall ignite into Apache Karaf container)
-- ignite-osgi-paxlogging (to expose PAX Logging API to Log4j if needed)
 - ignite-rest-http (for HTTP REST messages)
 - ignite-schedule (for Cron-based task scheduling)
 - ignite-sl4j (for SL4J logging)
diff --git a/docs/_docs/setup.adoc b/docs/_docs/setup.adoc
index 7e352e1..fcbc2ad 100644
--- a/docs/_docs/setup.adoc
+++ b/docs/_docs/setup.adoc
@@ -222,19 +222,6 @@
 |ignite-ml | Ignite ML Grid provides machine learning features and relevant data structures and methods of linear algebra, including on heap and off heap, dense and sparse, local and distributed implementations.
 Refer to the link:machine-learning/ml[Machine Learning] documentation for details.
 
-|ignite-osgi | This module provides bridging components to make Ignite run seamlessly inside an OSGi container such as Apache Karaf.
-
-|ignite-osgi-karaf | This module contains a feature repository to facilitate installing Ignite into an Apache Karaf container.
-
-|ignite-osgi-paxlogging a|
-This module is an OSGi fragment that exposes the following packages from the Pax Logging API bundle:
-
-- org.apache.log4j.varia
-- org.apache.log4j.xml
-
-These packages are required when installing the ignite-log4j bundle, and are not exposed by default
-by the Pax Logging API - the logging framework used by Apache Karaf.
-
 |ignite-rest-http | Ignite REST-HTTP starts a Jetty-based server within a node that can be used to execute tasks and/or cache commands in grid using HTTP-based link:restapi[RESTful APIs].
 
 |ignite-schedule | This  module provides functionality for scheduling jobs locally using UNIX cron-based syntax.
@@ -268,6 +255,10 @@
 
 |ignite-cloud-ext | Ignite Cloud provides Apache jclouds implementations of the IP finder for TCP discovery.
 
+|ignite-osgi-ext | This module provides bridging components to make Ignite run seamlessly inside an OSGi container such as Apache Karaf.
+
+|ignite-osgi-karaf-ext | This module contains a feature repository to facilitate installing Ignite into an Apache Karaf container.
+
 |ignite-gce-ext | Ignite GCE provides Google Cloud Storage based implementations of IP finder for TCP discovery.
 
 |ignite-spark-ext | This module provides an implementation of Spark RDD abstraction that enables easy access to Ignite caches.
diff --git a/modules/calcite/pom.xml b/modules/calcite/pom.xml
index 14a5582..acaaee4 100644
--- a/modules/calcite/pom.xml
+++ b/modules/calcite/pom.xml
@@ -216,11 +216,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 58504b2..4d4f28f 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -34,22 +34,6 @@
 
     <properties>
         <ignite.update.notifier.product>apache-ignite</ignite.update.notifier.product>
-
-        <!-- Imports:
-                - com.sun.jmx.mbeanserver => only used from TCKMBeanServerBuilder which has no usages within Ignite's
-                  runtime codebase. Therefore, it's likely that code will not be hit during normal operation and we exclude it.
-                - javax.enterprise.util is optional.
-        -->
-        <osgi.import.package>
-            javax.enterprise.util;resolution:=optional,
-            !com.sun.jmx.mbeanserver,
-            *
-        </osgi.import.package>
-        <osgi.export.package>
-            org.apache.ignite.*,
-            org.jsr166.*;version=1.0.0;
-            {local-packages}
-        </osgi.export.package>
     </properties>
 
     <dependencies>
@@ -292,12 +276,6 @@
                 </executions>
             </plugin>
 
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/jcl/pom.xml b/modules/jcl/pom.xml
index f81cb46..f948eec 100644
--- a/modules/jcl/pom.xml
+++ b/modules/jcl/pom.xml
@@ -62,12 +62,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/log4j/pom.xml b/modules/log4j/pom.xml
index dff3c32..0379cc4 100644
--- a/modules/log4j/pom.xml
+++ b/modules/log4j/pom.xml
@@ -61,12 +61,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/log4j2/pom.xml b/modules/log4j2/pom.xml
index 896dc28..fb9faae 100644
--- a/modules/log4j2/pom.xml
+++ b/modules/log4j2/pom.xml
@@ -68,12 +68,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/osgi-karaf/README.txt b/modules/osgi-karaf/README.txt
deleted file mode 100644
index 6bd1555..0000000
--- a/modules/osgi-karaf/README.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-Apache Ignite OSGi Karaf Integration Module
--------------------------------------------
-
-This module contains a feature repository to facilitate installing Apache Ignite into an Apache Karaf container.
-
-Use the following Karaf command:
-
-    karaf@root()> feature:repo-add mvn:org.apache.ignite/ignite-osgi-karaf/${ignite.version}/xml/features
-
-Replacing ${ignite.version} with the Apache Ignite version you woudl like to install.
-
-You may now list the Ignite features that are available for installation:
-
-    karaf@root()> feature:list | grep ignite
-
-Each feature installs the corresponding ignite module + its dependencies.
-
-We include an global feature with name 'ignite-all' that collectively installs all Ignite features at once.
diff --git a/modules/osgi-karaf/licenses/apache-2.0.txt b/modules/osgi-karaf/licenses/apache-2.0.txt
deleted file mode 100644
index d645695..0000000
--- a/modules/osgi-karaf/licenses/apache-2.0.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
diff --git a/modules/osgi-karaf/pom.xml b/modules/osgi-karaf/pom.xml
deleted file mode 100644
index 5ff6843..0000000
--- a/modules/osgi-karaf/pom.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  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.
--->
-
-<!--
-    POM file.
--->
-<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">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.ignite</groupId>
-        <artifactId>ignite-parent-internal</artifactId>
-        <version>${revision}</version>
-        <relativePath>../../parent-internal/pom.xml</relativePath>
-    </parent>
-
-    <artifactId>ignite-osgi-karaf</artifactId>
-
-    <packaging>pom</packaging>
-
-    <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-            </resource>
-        </resources>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-resources-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>filter</id>
-                        <phase>generate-resources</phase>
-                        <goals>
-                            <goal>resources</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-artifacts</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>attach-artifact</goal>
-                        </goals>
-                        <configuration>
-                            <artifacts>
-                                <artifact>
-                                    <file>target/classes/features.xml</file>
-                                    <type>xml</type>
-                                    <classifier>features</classifier>
-                                </artifact>
-                            </artifacts>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <version>2.8.2</version>
-                <configuration>
-                    <skip>false</skip>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/modules/osgi-karaf/src/main/resources/features.xml b/modules/osgi-karaf/src/main/resources/features.xml
deleted file mode 100644
index 6cc0d31..0000000
--- a/modules/osgi-karaf/src/main/resources/features.xml
+++ /dev/null
@@ -1,284 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<features name="ignite" xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
-
-    <feature name="ignite-all" version="${project.version}" description="Apache Ignite :: All">
-        <details>
-            <![CDATA[Aggregate feature for installing all Apache Ignite module + their dependencies.
-            
-            NOTE #1: Due to a bug in Apache Karaf (KARAF-4129), you must install the ignite-log4j feature explicitly and then either:
-            - manually refresh the pax-logging-api framework bundle  - or - 
-            - restart the Apache Karaf container.
-            You may safely ignore the 'Resource has no uri' exception if you follow this method.
-
-            NOTE #2: This feature *does not* include components that depend on LGPL software.]]>
-        </details>
-        <feature>ignite-core</feature>
-        <feature>ignite-camel-ext</feature>
-        <feature>ignite-flume-ext</feature>
-        <feature>ignite-indexing</feature>
-        <feature>ignite-jcl</feature>
-        <feature>ignite-jms11-ext</feature>
-        <feature>ignite-jta</feature>
-        <feature>ignite-kafka-ext</feature>
-        <feature>ignite-mqtt-ext</feature>
-        <!-- KARAF-4129 Karaf feature containing a fragment that attaches to pax-logging-api cannot be installed
-        <feature>ignite-log4j</feature>-->
-        <feature>ignite-rest-http</feature>
-        <feature>ignite-schedule</feature>
-        <feature>ignite-slf4j</feature>
-        <feature>ignite-spring</feature>
-        <feature>ignite-ssh</feature>
-        <feature>ignite-twitter-ext</feature>
-        <feature>ignite-urideploy</feature>
-        <feature>ignite-web</feature>
-        <feature>ignite-zookeeper</feature>
-    </feature>
-
-    <feature name="ignite-core" version="${project.version}" description="Apache Ignite :: Core">
-        <details><![CDATA[The Apache Ignite core module. This feature also installs the JCache 1.0 specification API.]]></details>
-        <bundle start="true" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-cache-api/${javax.cache.bundle.version}</bundle>
-        <bundle dependency="true">mvn:org.apache.ignite/ignite-osgi/${project.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-core/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-camel-ext" version="${ignite-camel-ext.version}" description="Apache Ignite :: Camel">
-        <details>
-            <![CDATA[The Apache Ignite Camel module.
-
-            Make sure to install the Apache Camel feature repository before installing this feature.
-
-                mvn:org.apache.camel.karaf/apache-camel/\${camel.version}/xml/features
-            
-            Installing this feature will trigger the installation of the 'camel-core' feature from the Camel repository.]]>
-        </details>
-        <feature>camel-core</feature>
-        <bundle start="true">mvn:org.apache.ignite/ignite-camel-ext/${ignite-camel-ext.version}</bundle>
-    </feature>
-
-    <feature name="ignite-flume-ext" version="${ignite-flume-ext.version}" description="Apache Ignite :: Flume">
-        <details>
-            <![CDATA[The Apache Ignite Flume module + dependencies.]]>
-        </details>
-        <feature prerequisite="true">wrap</feature>
-        <bundle start="true" dependency="true">wrap:mvn:org.apache.flume/flume-ng-core/${flume.ng.version}$Bundle-SymbolicName=flume-ng-core&amp;Bundle-Version=${flume.ng.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-flume-ext/${ignite-flume-ext.version}</bundle>
-    </feature>
-
-    <feature name="ignite-indexing" version="${project.version}" description="Apache Ignite :: Indexing">
-        <details>
-            <![CDATA[The Apache Ignite Indexing module + dependencies. This module is a fragment of ignite-core. 
-            
-            Be sure to refresh ignite-core manually in case it is not refreshed automatically.]]>
-        </details>
-        <feature prerequisite="true">wrap</feature>
-        <bundle start="true" dependency="true">mvn:org.osgi/org.osgi.enterprise/${osgi.enterprise.version}</bundle>
-        <bundle start="true" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene/${lucene.bundle.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:com.h2database/h2/${h2.version}$overwrite=merge&amp;Export-Package=*;version=&quot;${h2.version}&quot;</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:org.apache.lucene/lucene-analyzers-common/${lucene.version}$Bundle-SymbolicName=lucene-analyzers-common&amp;Bundle-Version=${lucene.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:org.apache.lucene/lucene-queryparser/${lucene.version}$Bundle-SymbolicName=lucene-queryparser&amp;Bundle-Version=${lucene.version}</bundle>
-        <bundle start="false">mvn:org.apache.ignite/ignite-indexing/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-jcl" version="${project.version}" description="Apache Ignite :: JCL">
-        <details>
-            <![CDATA[The Apache Ignite JCL integration module. In Apache Karaf, this module will integrate with Pax Logging.]]>
-        </details>
-        <bundle start="true">mvn:org.apache.ignite/ignite-jcl/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-jms11-ext" version="${ignite-jms11-ext.version}" description="Apache Ignite :: JMS 1.1">
-        <details>
-            <![CDATA[The Apache Ignite JMS 1.1 module. Make sure to install your broker's JMS client bundle as well.]]>
-        </details>
-        <bundle start="true" dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${jms.spec.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-jms11-ext/${ignite-jms11-ext.version}</bundle>
-    </feature>
-
-    <feature name="ignite-jta" version="${project.version}" description="Apache Ignite :: JTA">
-        <details>
-            <![CDATA[The Apache Ignite JTA module + dependencies. This module is a fragment of ignite-core. 
-            
-            Be sure to refresh ignite-core manually in case it is not refreshed automatically.
-            
-            Installing this feature will trigger the installation of the 'transaction' feature from the Apache Karaf distribution.]]>
-        </details>
-        <feature dependency="true">transaction</feature>
-        <bundle start="true">mvn:org.apache.ignite/ignite-jta/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-kafka-ext" version="${ignite-kafka-ext.version}" description="Apache Ignite :: Kafka">
-        <details>
-            <![CDATA[The Apache Ignite Kafka module + dependencies. This module installs the Scala 2.11 library bundle.]]>
-        </details>
-        <feature prerequisite="true">wrap</feature>
-        <bundle start="true" dependency="true">mvn:org.scala-lang/scala-library/${scala.library.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:com.yammer.metrics/metrics-core/${yammer.metrics.core.version}$Bundle-SymbolicName=yammer-metrics-core&amp;Bundle-Version=2.2.0&amp;Export-Package=*;-noimport:=true;version=${yammer.metrics.core.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:com.yammer.metrics/metrics-annotation/${yammer.metrics.annotation.version}$Bundle-SymbolicName=yammer-metrics-annotation&amp;Bundle-Version=2.2.0&amp;Export-Package=*;-noimport:=true;version=${yammer.metrics.annotation.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:org.apache.kafka/connect-api/${kafka.version}$Bundle-SymbolicName=connect-api&amp;Bundle-Version=${kafka.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:org.apache.kafka/kafka_2.11/${kafka.version}$Bundle-SymbolicName=kafka_2.11&amp;Bundle-Version=${kafka.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:org.apache.kafka/kafka-clients/${kafka.version}$Bundle-SymbolicName=kafka-clients&amp;Bundle-Version=${kafka.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-kafka-ext/${ignite-kafka-ext.version}</bundle>
-    </feature>
-
-    <feature name="ignite-log4j" version="${project.version}" description="Apache Ignite :: log4j">
-        <details>
-            <![CDATA[The Apache Ignite log4j module + dependencies. 
-            
-            This module installs an OSGi fragment that exposes extra packages from the Pax Logging bundle required by Ignite. 
-            
-            Be sure to refresh the Pax Logging bundles manually in case this does not happen automatically.]]>
-        </details>
-        <bundle dependency="true" start-level="8">mvn:org.apache.ignite/ignite-osgi-paxlogging/${project.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-log4j/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-mqtt-ext" version="${ignite-mqtt-ext.version}" description="Apache Ignite :: MQTT">
-        <details>
-            <![CDATA[The Apache Ignite MQTT module + dependencies.]]>
-        </details>
-        <feature prerequisite="true">wrap</feature>
-        <bundle start="true" dependency="true">mvn:com.google.guava/guava/${guava.version}</bundle>
-        <bundle start="true" dependency="true">mvn:org.eclipse.paho/org.eclipse.paho.client.mqttv3/${paho.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:com.github.rholder/guava-retrying/${guava.retrying.version}$Bundle-SymbolicName=guava-retrying&amp;Bundle-SymbolicName=guava-retrying&amp;Bundle-Version=${guava.retrying.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-mqtt-ext/${ignite-mqtt-ext.version}</bundle>
-    </feature>   
-
-    <feature name="ignite-rest-http" version="${project.version}" description="Apache Ignite :: REST HTTP">
-         <!-- NOTICE: XOM cannot be included by default due to an incompatible license;
-                      please review its license model and install the dependency manually if you agree. -->
-        <details>
-            <![CDATA[The Apache Ignite REST HTTP module + dependencies.
-
-            Installing this feature will trigger the installation of the 'http' feature from the Apache Karaf distribution.
-
-            NOTE: Before using this feature you must review the license of the XOM bundle and install it manually if you accept it:
-            install -s mvn:xom/xom/1.2.5]]>
-        </details>
-        <feature dependency="true">http</feature>
-        <bundle start="true" dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/${jackson.version}</bundle>
-        <bundle start="true" dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${jackson.version}</bundle>
-        <bundle start="true" dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson.version}</bundle>
-        <bundle start="true" dependency="true">mvn:commons-lang/commons-lang/${commons.lang.version}</bundle>
-        <bundle start="true" dependency="true">mvn:commons-collections/commons-collections/${commons.collections.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-rest-http/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-schedule" version="${project.version}" description="Apache Ignite :: Schedule">
-        <details>
-            <![CDATA[The Apache Ignite Schedule module + dependencies. This module is a fragment of ignite-core.]]>
-        </details>
-        <feature prerequisite="true">wrap</feature>
-        <bundle start="true" dependency="true">wrap:mvn:it.sauronsoftware.cron4j/cron4j/${cron4j.version}$Bundle-SymbolicName=cron4j&amp;Bundle-Version=${cron4j.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-schedule/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-slf4j" version="${project.version}" description="Apache Ignite :: slf4j">
-        <details>
-            <![CDATA[The Apache Ignite slf4j module.]]>
-        </details>
-        <bundle start="true">mvn:org.apache.ignite/ignite-slf4j/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-spring" version="${project.version}" description="Apache Ignite :: Spring Support">
-        <details>
-            <![CDATA[The Apache Ignite Spring integration module + dependencies. This module is a fragment of ignite-core. 
-            
-            Be sure to refresh ignite-core in case it is not refreshed automatically.
-            
-            This feature installs the following features from the Apache Karaf distribution:
-              - spring
-              - spring-aspects
-              - spring-tx
-              - spring-jdbc
-              
-            With version range: [${spring41.osgi.feature.version},4.2).]]>
-        </details>
-        <feature dependency="true" version="[${spring41.osgi.feature.version},4.2)">spring</feature>
-        <feature dependency="true" version="[${spring41.osgi.feature.version},4.2)">spring-aspects</feature>
-        <feature dependency="true" version="[${spring41.osgi.feature.version},4.2)">spring-tx</feature>
-        <feature dependency="true" version="[${spring41.osgi.feature.version},4.2)">spring-jdbc</feature>
-        <bundle start="true">mvn:org.apache.ignite/ignite-spring/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-ssh" version="${project.version}" description="Apache Ignite :: SSH">
-        <details>
-            <![CDATA[The Apache Ignite SSH module + dependencies.]]>
-        </details>
-        <bundle start="true" dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch.bundle.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-ssh/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-twitter-ext" version="${ignite-twitter-ext.version}" description="Apache Ignite :: Twitter">
-        <details>
-            <![CDATA[The Apache Ignite Twitter module + dependencies.]]>
-        </details>
-        <feature prerequisite="true">wrap</feature>
-        <bundle start="true" dependency="true">mvn:com.google.guava/guava/${guava14.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:com.twitter/hbc-core/${twitter.hbc.version}$Bundle-SymbolicName=Hosebird Client Core&amp;Bundle-Version=${twitter.hbc.version}</bundle>
-        <bundle start="true" dependency="true">wrap:mvn:com.twitter/hbc-twitter4j/${twitter.hbc.version}$Bundle-SymbolicName=Hosebird Client Twitter4J&amp;Bundle-Version=${twitter.hbc.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-twitter-ext/${ignite-twitter-ext.version}</bundle>
-    </feature>
-
-    <feature name="ignite-urideploy" version="${project.version}" description="Apache Ignite :: URI Deploy">
-        <details>
-            <![CDATA[The Apache Ignite URI Deploy module + dependencies.
-            
-            This feature installs the following features from the Apache Karaf distribution:
-              - spring
-              - spring-aspects
-              - spring-tx
-              
-            With version range: [${spring41.osgi.feature.version},4.2).]]>
-        </details>
-        <feature prerequisite="true">wrap</feature>
-        <feature dependency="true" version="[${spring41.osgi.feature.version},4.2)">spring</feature>
-        <feature dependency="true" version="[${spring41.osgi.feature.version},4.2)">spring-aspects</feature>
-        <feature dependency="true" version="[${spring41.osgi.feature.version},4.2)">spring-tx</feature>
-        <bundle start="true" dependency="true">wrap:mvn:net.sf.jtidy/jtidy/${jtidy.version}$Bundle-SymbolicName=JTidy&amp;Bundle-Version=938</bundle>
-        <bundle start="true" dependency="true">mvn:commons-codec/commons-codec/${commons.codec.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-urideploy/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-web" version="${project.version}" description="Apache Ignite :: Web">
-        <details>
-            <![CDATA[The Apache Ignite Web module + dependencies.
-            
-            This feature installs the 'http' feature from the Apache Karaf distribution.]]>
-        </details>
-        <feature dependency="true">http</feature>
-        <bundle start="true">mvn:org.apache.ignite/ignite-web/${project.version}</bundle>
-    </feature>
-
-    <feature name="ignite-zookeeper" version="${project.version}" description="Apache Ignite :: ZooKeeper">
-        <details>
-            <![CDATA[The Apache Ignite ZooKeeper module + dependencies.]]>
-        </details>
-        <bundle start="true" dependency="true">mvn:org.apache.zookeeper/zookeeper/${zookeeper.version}</bundle>
-        <bundle start="true" dependency="true">mvn:com.google.guava/guava/${guava16.version}</bundle>
-        <bundle start="true" dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/${jackson.version}</bundle>
-        <bundle start="true" dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${jackson.version}</bundle>
-        <bundle start="true" dependency="true">mvn:org.apache.curator/curator-client/${curator.version}</bundle>
-        <bundle start="true" dependency="true">mvn:org.apache.curator/curator-framework/${curator.version}</bundle>
-        <bundle start="true" dependency="true">mvn:org.apache.curator/curator-recipes/${curator.version}</bundle>
-        <bundle start="true" dependency="true">mvn:org.apache.curator/curator-x-discovery/${curator.version}</bundle>
-        <bundle start="true">mvn:org.apache.ignite/ignite-zookeeper/${project.version}</bundle>
-    </feature>
-
-</features>
diff --git a/modules/osgi-paxlogging/README.txt b/modules/osgi-paxlogging/README.txt
deleted file mode 100644
index f6346f1..0000000
--- a/modules/osgi-paxlogging/README.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Apache Ignite OSGi Pax Logging Fragment Module
-----------------------------------------------
-
-This module is an OSGi fragment that exposes the following packages from the Pax Logging API bundle:
-
-  - org.apache.log4j.varia
-  - org.apache.log4j.xml
-
-These packages are required when installing the ignite-log4j bundle, and are not exposed by default
-by the Pax Logging API - the logging framework used by Apache Karaf.
-
-This fragment exposes them.
diff --git a/modules/osgi-paxlogging/licenses/apache-2.0.txt b/modules/osgi-paxlogging/licenses/apache-2.0.txt
deleted file mode 100644
index d645695..0000000
--- a/modules/osgi-paxlogging/licenses/apache-2.0.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
diff --git a/modules/osgi-paxlogging/pom.xml b/modules/osgi-paxlogging/pom.xml
deleted file mode 100644
index 09a9bf7..0000000
--- a/modules/osgi-paxlogging/pom.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  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.
--->
-
-<!--
-    POM file.
--->
-<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">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.ignite</groupId>
-        <artifactId>ignite-parent-internal</artifactId>
-        <version>${revision}</version>
-        <relativePath>../../parent-internal/pom.xml</relativePath>
-    </parent>
-
-    <artifactId>ignite-osgi-paxlogging</artifactId>
-
-    <packaging>jar</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <version>${maven.bundle.plugin.version}</version>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Fragment-Host>org.ops4j.pax.logging.pax-logging-api</Fragment-Host>
-                        <Export-Package>
-                            org.apache.log4j.varia;-noimport:=true,
-                            org.apache.log4j.xml;-noimport:=true
-                        </Export-Package>
-                        <Import-Package>!*</Import-Package>
-                        <_invalidfilenames />
-                        <_nodefaultversion>true</_nodefaultversion>
-                    </instructions>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <version>2.8.2</version>
-                <configuration>
-                    <skip>false</skip>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/modules/osgi/README.txt b/modules/osgi/README.txt
deleted file mode 100644
index 439c450..0000000
--- a/modules/osgi/README.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Apache Ignite OSGi Integration Module
--------------------------------------
-
-This module provides the bridging components to make Apache Ignite run seamlessly inside an OSGi container
-like Apache Karaf. It provides a Bundle Activator to initialize Ignite, along with different classloaders
-facilitate class resolution within an OSGi environment.
-
-If using Ignite within Apache Karaf, please refer to the osgi-karaf and osgi-paxlogging modules too:
-
-  - osgi-karaf contains a feature repository to facilitate installing Ignite into a Karaf container.
-  - osgi-paxlogging contains an OSGi fragment required to make pax-logging-api expose certain log4j packages
-    required by ignite-log4j
-
-Importing the ignite-osgi module in a Maven project
----------------------------------------------------
-
-If you are using Maven to manage dependencies of your project, you can add the ignite-osgi module
-dependency like this (replace '${ignite.version}' with actual Ignite version you are interested in):
-
-<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">
-    ...
-    <dependencies>
-        ...
-        <dependency>
-            <groupId>org.apache.ignite</groupId>
-            <artifactId>ignite-osgi</artifactId>
-            <version>${ignite.version}</version>
-        </dependency>
-        ...
-    </dependencies>
-    ...
-</project>
diff --git a/modules/osgi/licenses/apache-2.0.txt b/modules/osgi/licenses/apache-2.0.txt
deleted file mode 100644
index d645695..0000000
--- a/modules/osgi/licenses/apache-2.0.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
diff --git a/modules/osgi/pom.xml b/modules/osgi/pom.xml
deleted file mode 100644
index b72aaf3..0000000
--- a/modules/osgi/pom.xml
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  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.
--->
-
-<!--
-    POM file.
--->
-<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">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.ignite</groupId>
-        <artifactId>ignite-parent-internal</artifactId>
-        <version>${revision}</version>
-        <relativePath>../../parent-internal/pom.xml</relativePath>
-    </parent>
-
-    <artifactId>ignite-osgi</artifactId>
-
-    <url>http://ignite.apache.org</url>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ignite-core</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <version>${osgi.core.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam</artifactId>
-            <version>4.6.0</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam-junit4</artifactId>
-            <version>4.6.0</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.ops4j.pax.exam</groupId>
-            <artifactId>pax-exam-container-karaf</artifactId>
-            <version>4.6.0</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.karaf</groupId>
-            <artifactId>apache-karaf</artifactId>
-            <version>${karaf.version}</version>
-            <type>tar.gz</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>javax.inject</groupId>
-            <artifactId>javax.inject</artifactId>
-            <version>1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.ops4j.pax.url</groupId>
-            <artifactId>pax-url-aether</artifactId>
-            <version>2.4.3</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.12</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>ignite-tools</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>test-jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <!-- Generate the OSGi MANIFEST.MF for this bundle.
-                 This bundle is a fragment attached to the ignite-core bundle, as it contains and exports classes in
-                 the org.apache.ignite.internal.processors.query.h2.opt, thus leading to a split package situation in OSGi.
-                 It also contains an internal processor.
-            -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Fragment-Host>${project.groupId}.ignite-core</Fragment-Host>
-                    </instructions>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.servicemix.tooling</groupId>
-                <artifactId>depends-maven-plugin</artifactId>
-                <version>1.3.1</version>
-                <executions>
-                    <execution>
-                        <id>generate-depends-file</id>
-                        <goals>
-                            <goal>generate-depends-file</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <systemProperties>
-                        <property>
-                            <name>karafVersion</name>
-                            <value>${karaf.version}</value>
-                        </property>
-                        <property>
-                            <name>projectVersion</name>
-                            <value>${project.version}</value>
-                        </property>
-                        <property>
-                            <name>camelVersion</name>
-                            <value>${camel.version}</value>
-                        </property>
-                    </systemProperties>
-                </configuration>
-            </plugin>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <version>2.8.2</version>
-                <configuration>
-                    <skip>false</skip>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteAbstractOsgiContextActivator.java b/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteAbstractOsgiContextActivator.java
deleted file mode 100644
index 289d86f..0000000
--- a/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteAbstractOsgiContextActivator.java
+++ /dev/null
@@ -1,239 +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 org.apache.ignite.osgi;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.IgniteException;
-import org.apache.ignite.IgniteLogger;
-import org.apache.ignite.Ignition;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.util.typedef.internal.A;
-import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.osgi.classloaders.BundleDelegatingClassLoader;
-import org.apache.ignite.osgi.classloaders.ContainerSweepClassLoader;
-import org.apache.ignite.osgi.classloaders.OsgiClassLoadingStrategyType;
-import org.jetbrains.annotations.Nullable;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * This {@link BundleActivator} starts Apache Ignite inside the OSGi container when the bundle is started.
- * <p>
- * Create an implementation of this class and set the {@code Bundle-Activator} OSGi Manifest header to the FQN of
- * your class.
- * <p>
- * You must provide the {@link IgniteConfiguration} to start by implementing the {@link #igniteConfiguration()}
- * abstract method. The return value of this method cannot be {@code null}. For example, if your implementation is
- * called {@code org.myorg.osgi.IgniteActivator}, your bundle must provide the following header:
- * <pre>
- * Bundle-Activator: org.myorg.osgi.IgniteActivator
- * </pre>
- * You may use the
- * <a href="https://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html">Maven
- * Bundle Plugin</a> to generate your bundle (or bundle manifest), including the required header.
- * <p>
- * This activator also exports the Ignite instance as an OSGi service, with the property {@code ignite.name} set
- * to the value of {@link Ignite#name()}, if and only if the name is not null.
- * <p>
- * Currently, Ignite only allows a single instance per container. We may remove this limitation if enough demand
- * builds up in the community.
- *
- * @see <a href="http://wiki.osgi.org/wiki/Bundle-Activator">Bundle-Activator OSGi Manifest header</a>
- *
- */
-public abstract class IgniteAbstractOsgiContextActivator implements BundleActivator {
-    /** OSGI service property name. */
-    public static final String OSGI_SERVICE_PROP_IGNITE_NAME = "ignite.name";
-
-    /** The instance of Ignite started by this Activator. */
-    protected Ignite ignite;
-
-    /** Our bundle context. */
-    private BundleContext bundleCtx;
-
-    /** Ignite logger. */
-    private IgniteLogger log;
-
-    /**
-     * Method invoked by OSGi to start the bundle. It starts the specified Ignite configuration.
-     *
-     * @param ctx Bundle context.
-     * @throws Exception
-     */
-    @Override public final void start(BundleContext ctx) throws Exception {
-        // Ensure that no other instances are running.
-        if (IgniteOsgiUtils.gridCount() > 0) {
-            throw new IgniteException("Failed to start Ignite instance (another instance is already running " +
-                "and ignite-osgi is currently limited to a single instance per container).");
-        }
-
-        bundleCtx = ctx;
-
-        // Start the Ignite configuration specified by the user.
-        IgniteConfiguration cfg = igniteConfiguration();
-
-        A.notNull(cfg, "Ignite configuration");
-
-        // Override the classloader with the classloading strategy chosen by the user.
-        ClassLoader clsLdr;
-
-        if (classLoadingStrategy() == OsgiClassLoadingStrategyType.BUNDLE_DELEGATING)
-            clsLdr = new BundleDelegatingClassLoader(bundleCtx.getBundle(), Ignite.class.getClassLoader());
-        else
-            clsLdr = new ContainerSweepClassLoader(bundleCtx.getBundle(), Ignite.class.getClassLoader());
-
-        cfg.setClassLoader(clsLdr);
-
-        onBeforeStart(ctx);
-
-        // Start Ignite.
-        try {
-            ignite = Ignition.start(cfg);
-        }
-        catch (Throwable t) {
-            U.error(log, "Failed to start Ignite via OSGi Activator [errMsg=" + t.getMessage() + ']', t);
-
-            onAfterStart(ctx, t);
-
-            return;
-        }
-
-        log = ignite.log();
-
-        if (log.isInfoEnabled())
-            log.info("Started Ignite from OSGi Activator [name=" + ignite.name() + ']');
-
-        // Add into Ignite's OSGi registry.
-        IgniteOsgiUtils.classloaders().put(ignite, clsLdr);
-
-        // Export Ignite as a service.
-        exportOsgiService(ignite);
-
-        onAfterStart(ctx, null);
-    }
-
-    /**
-     * Stops Ignite when the bundle is stopping.
-     *
-     * @param ctx Bundle context.
-     * @throws Exception If failed.
-     */
-    @Override public final void stop(BundleContext ctx) throws Exception {
-        onBeforeStop(ctx);
-
-        try {
-            ignite.close();
-        }
-        catch (Throwable t) {
-            U.error(log, "Failed to stop Ignite via OSGi Activator [errMsg=" + t.getMessage() + ']', t);
-
-            onAfterStop(ctx, t);
-
-            return;
-        }
-
-        if (log.isInfoEnabled())
-            log.info("Stopped Ignite from OSGi Activator [name=" + ignite.name() + ']');
-
-        IgniteOsgiUtils.classloaders().remove(ignite);
-
-        onAfterStop(ctx, null);
-    }
-
-    /**
-     * This method is called before Ignite initialises.
-     * <p>
-     * The default implementation is empty. Override it to introduce custom logic.
-     *
-     * @param ctx The {@link BundleContext}.
-     */
-    protected void onBeforeStart(BundleContext ctx) {
-        // No-op.
-    }
-
-    /**
-     * This method is called after Ignite initialises, only if initialization succeeded.
-     * <p>
-     * The default implementation is empty. Override it to introduce custom logic.
-     *
-     * @param ctx The {@link BundleContext}.
-     * @param t Throwable in case an error occurred when starting. {@code null} otherwise.
-     */
-    protected void onAfterStart(BundleContext ctx, @Nullable Throwable t) {
-        // No-op.
-    }
-
-    /**
-     * This method is called before Ignite stops.
-     * <p>
-     * The default implementation is empty. Override it to introduce custom logic.
-     *
-     * @param ctx The {@link BundleContext}.
-     */
-    protected void onBeforeStop(BundleContext ctx) {
-        // No-op.
-    }
-
-    /**
-     * This method is called after Ignite stops, only if the operation succeeded.
-     * <p>
-     * The default implementation is empty. Override it to introduce custom logic.
-     *
-     * @param ctx The {@link BundleContext}.
-     * @param t Throwable in case an error occurred when stopping. {@code null} otherwise.
-     */
-    protected void onAfterStop(BundleContext ctx, @Nullable Throwable t) {
-        // No-op.
-    }
-
-    /**
-     * Override this method to provide the Ignite configuration this bundle will start.
-     *
-     * @return The Ignite configuration.
-     */
-    public abstract IgniteConfiguration igniteConfiguration();
-
-    /**
-     * Override this method to indicate which classloading strategy to use.
-     *
-     * @return The strategy.
-     */
-    public OsgiClassLoadingStrategyType classLoadingStrategy() {
-        return OsgiClassLoadingStrategyType.BUNDLE_DELEGATING;
-    }
-
-    /**
-     * Exports the Ignite instance onto the OSGi Service Registry.
-     *
-     * @param ignite Ignite.
-     */
-    private void exportOsgiService(Ignite ignite) {
-        Dictionary<String, String> dict = new Hashtable<>();
-
-        // Only add the service property if the Ignite instance name != null.
-        if (ignite.name() != null)
-            dict.put(OSGI_SERVICE_PROP_IGNITE_NAME, ignite.name());
-
-        bundleCtx.registerService(Ignite.class, ignite, dict);
-
-        if (log.isInfoEnabled())
-            log.info("Exported OSGi service for Ignite with properties: " + dict);
-    }
-}
diff --git a/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteOsgiUtils.java b/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteOsgiUtils.java
deleted file mode 100644
index 7cf112f..0000000
--- a/modules/osgi/src/main/java/org/apache/ignite/osgi/IgniteOsgiUtils.java
+++ /dev/null
@@ -1,69 +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 org.apache.ignite.osgi;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import org.apache.ignite.Ignite;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.FrameworkUtil;
-
-/**
- * Helper class for OSGi.
- */
-public class IgniteOsgiUtils {
-    /** Whether we are running in an OSGi container. */
-    private static boolean osgi = FrameworkUtil.getBundle(IgniteOsgiUtils.class) != null;
-
-    /** Maps Ignite instances to the ClassLoaders of the bundles they were started from. */
-    private static final ConcurrentMap<Ignite, ClassLoader> CLASSLOADERS = new ConcurrentHashMap<>();
-
-    /**
-     * Private constructor.
-     */
-    private IgniteOsgiUtils() { }
-
-    /**
-     * Returns whether we are running in an OSGi environment.
-     *
-     * @return {@code true/false}.
-     */
-    public static boolean isOsgi() {
-        return osgi;
-    }
-
-    /**
-     * Returns a {@link Map} of {@link Ignite} instances and the classloaders of the {@link Bundle}s they were
-     * started from.
-     *
-     * @return The {@link Map}.
-     */
-    protected static Map<Ignite, ClassLoader> classloaders() {
-        return CLASSLOADERS;
-    }
-
-    /**
-     * Returns the number of grids currently running in this OSGi container.
-     *
-     * @return The grid count.
-     */
-    public static int gridCount() {
-        return CLASSLOADERS.size();
-    }
-}
diff --git a/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/BundleDelegatingClassLoader.java b/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/BundleDelegatingClassLoader.java
deleted file mode 100644
index 36f1856..0000000
--- a/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/BundleDelegatingClassLoader.java
+++ /dev/null
@@ -1,134 +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 org.apache.ignite.osgi.classloaders;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Enumeration;
-import org.apache.ignite.internal.util.tostring.GridToStringExclude;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.osgi.framework.Bundle;
-
-/**
- * A {@link ClassLoader} implementation delegating to a given OSGi bundle, and to the specified {@link ClassLoader}
- * as a fallback.
- */
-public class BundleDelegatingClassLoader extends ClassLoader {
-    /** The bundle which loaded Ignite. */
-    protected final Bundle bundle;
-
-    /** The fallback classloader, expected to be the ignite-core classloader. */
-    @GridToStringExclude
-    protected final ClassLoader clsLdr;
-
-    /**
-     * Constructor.
-     *
-     * @param bundle The bundle
-     */
-    public BundleDelegatingClassLoader(Bundle bundle) {
-        this(bundle, null);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param bundle The bundle.
-     * @param classLoader Fallback classloader.
-     */
-    public BundleDelegatingClassLoader(Bundle bundle, ClassLoader classLoader) {
-        this.bundle = bundle;
-        this.clsLdr = classLoader;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> findClass(String name) throws ClassNotFoundException {
-        return bundle.loadClass(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected URL findResource(String name) {
-        URL resource = bundle.getResource(name);
-
-        if (resource == null && clsLdr != null)
-            resource = clsLdr.getResource(name);
-
-        return resource;
-    }
-
-    /** {@inheritDoc} */
-    @SuppressWarnings({"unchecked", "rawtypes"})
-    @Override protected Enumeration findResources(String name) throws IOException {
-        return bundle.getResources(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
-        Class<?> cls;
-
-        try {
-            cls = findClass(name);
-        }
-        catch (ClassNotFoundException ignored) {
-            if (clsLdr == null)
-                throw classNotFoundException(name);
-
-            try {
-                cls = clsLdr.loadClass(name);
-            }
-            catch (ClassNotFoundException ignored2) {
-                throw classNotFoundException(name);
-            }
-
-        }
-
-        if (resolve)
-            resolveClass(cls);
-
-        return cls;
-    }
-
-    /**
-     * Returns the {@link Bundle} to which this ClassLoader is associated.
-     *
-     * @return The Bundle.
-     */
-    public Bundle getBundle() {
-        return bundle;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(BundleDelegatingClassLoader.class, this);
-    }
-
-    /**
-     * Builds a {@link ClassNotFoundException}.
-     *
-     * @param clsName Class name.
-     * @return The exception.
-     */
-    protected ClassNotFoundException classNotFoundException(String clsName) {
-        String s = "Failed to resolve class [name=" + clsName +
-            ", bundleId=" + bundle.getBundleId() +
-            ", symbolicName=" + bundle.getSymbolicName() +
-            ", fallbackClsLdr=" + clsLdr + ']';
-
-        return new ClassNotFoundException(s);
-    }
-}
diff --git a/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/ContainerSweepClassLoader.java b/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/ContainerSweepClassLoader.java
deleted file mode 100644
index 54e9699..0000000
--- a/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/ContainerSweepClassLoader.java
+++ /dev/null
@@ -1,134 +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 org.apache.ignite.osgi.classloaders;
-
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import org.apache.ignite.internal.util.GridConcurrentHashSet;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Constants;
-
-/**
- * A {@link ClassLoader} implementation that first attempts to load the class from the associated {@link Bundle}. As
- * a fallback, it sweeps the entire OSGi container to find the requested class, returning the first hit.
- * <p>
- * It keeps a cache of resolved classes and unresolvable classes, in order to optimize subsequent lookups.
- */
-public class ContainerSweepClassLoader extends BundleDelegatingClassLoader {
-    /** Classes resolved previously. */
-    private final ConcurrentMap<String, Bundle> resolved = new ConcurrentHashMap<>();
-
-    /** Unresolvable classes. */
-    private final Set<String> nonResolvable = new GridConcurrentHashSet<>();
-
-    /**
-     * Constructor with a {@link Bundle} only.
-     *
-     * @param bundle The bundle.
-     */
-    public ContainerSweepClassLoader(Bundle bundle) {
-        super(bundle);
-    }
-
-    /**
-     * Constructor with a {@link Bundle} and another {@link ClassLoader} to check.
-     *
-     * @param bundle The bundle.
-     * @param classLoader The other classloader to check.
-     */
-    public ContainerSweepClassLoader(Bundle bundle, ClassLoader classLoader) {
-        super(bundle, classLoader);
-    }
-
-    /**
-     * Runs the same logic to find the class as {@link BundleDelegatingClassLoader}, but if not found, sweeps the
-     * OSGi container to locate the first {@link Bundle} that can load the class, and uses it to do so.
-     *
-     * @param name The classname.
-     * @param resolve Whether to resolve the class or not.
-     * @return The loaded class.
-     * @throws ClassNotFoundException
-     */
-    @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
-        // If we know it's not resolvable, throw the exception immediately.
-        if (nonResolvable.contains(name))
-            throw classNotFoundException(name);
-
-        Class<?> cls;
-
-        // First, delegate to super, and return the class if found.
-        try {
-            cls = super.loadClass(name, resolve);
-            return cls;
-        }
-        catch (ClassNotFoundException ignored) {
-            // Continue.
-        }
-
-        // Else, check the cache.
-        if (resolved.containsKey(name))
-            return resolved.get(name).loadClass(name);
-
-        // If still unresolved, sweep the container.
-        cls = sweepContainer(name);
-
-        // If still unresolved, throw the exception.
-        if (cls == null)
-            throw classNotFoundException(name);
-
-        return cls;
-    }
-
-    /**
-     * Sweeps the OSGi container to find the first {@link Bundle} that can load the class.
-     *
-     * @param name The classname.
-     * @return The loaded class.
-     */
-    protected Class<?> sweepContainer(String name) {
-        Class<?> cls = null;
-
-        Bundle[] bundles = bundle.getBundleContext().getBundles();
-
-        int bundleIdx = 0;
-
-        for (; bundleIdx < bundles.length; bundleIdx++) {
-            Bundle b = bundles[bundleIdx];
-
-            // Skip bundles that haven't reached RESOLVED state; skip fragments.
-            if (b.getState() <= Bundle.RESOLVED || b.getHeaders().get(Constants.FRAGMENT_HOST) != null)
-                continue;
-
-            try {
-                cls = b.loadClass(name);
-                break;
-            }
-            catch (ClassNotFoundException ignored) {
-                // No-op.
-            }
-        }
-
-        if (cls == null)
-            nonResolvable.add(name);
-        else
-            resolved.put(name, bundles[bundleIdx]);
-
-        return cls;
-    }
-}
diff --git a/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/OsgiClassLoadingStrategyType.java b/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/OsgiClassLoadingStrategyType.java
deleted file mode 100644
index 9afde42..0000000
--- a/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/OsgiClassLoadingStrategyType.java
+++ /dev/null
@@ -1,29 +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 org.apache.ignite.osgi.classloaders;
-
-/**
- * Enum for the user to indicate which type of {@link ClassLoader} Ignite should use.
- */
-public enum OsgiClassLoadingStrategyType {
-    /** Use this value for {@link BundleDelegatingClassLoader}. */
-    BUNDLE_DELEGATING,
-
-    /** Use this value for {@link ContainerSweepClassLoader}. */
-    CONTAINER_SWEEP
-}
diff --git a/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/package-info.java b/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/package-info.java
deleted file mode 100644
index 1eec8b4..0000000
--- a/modules/osgi/src/main/java/org/apache/ignite/osgi/classloaders/package-info.java
+++ /dev/null
@@ -1,21 +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.
- */
-
-/**
- * Contains implementation of OSGi class loaders.
- */
-package org.apache.ignite.osgi.classloaders;
diff --git a/modules/osgi/src/main/java/org/apache/ignite/osgi/package-info.java b/modules/osgi/src/main/java/org/apache/ignite/osgi/package-info.java
deleted file mode 100644
index c2f46a2..0000000
--- a/modules/osgi/src/main/java/org/apache/ignite/osgi/package-info.java
+++ /dev/null
@@ -1,21 +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.
- */
-
-/**
- * Contains OSGi related classes.
- */
-package org.apache.ignite.osgi;
diff --git a/modules/osgi/src/test/java/org/apache/ignite/osgi/AbstractIgniteKarafTest.java b/modules/osgi/src/test/java/org/apache/ignite/osgi/AbstractIgniteKarafTest.java
deleted file mode 100644
index ba060f1..0000000
--- a/modules/osgi/src/test/java/org/apache/ignite/osgi/AbstractIgniteKarafTest.java
+++ /dev/null
@@ -1,107 +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 org.apache.ignite.osgi;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import javax.inject.Inject;
-import org.apache.karaf.features.FeaturesService;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.ops4j.pax.exam.karaf.options.LogLevelOption;
-import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
-import org.ops4j.pax.exam.spi.reactors.PerMethod;
-import org.osgi.framework.BundleContext;
-
-import static org.ops4j.pax.exam.CoreOptions.junitBundles;
-import static org.ops4j.pax.exam.CoreOptions.maven;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.systemProperty;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFileExtend;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
-import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
-
-/**
- * Abstract test class that sets up an Apache Karaf container with Ignite installed.
- */
-@RunWith(PaxExam.class)
-@ExamReactorStrategy(PerMethod.class)
-public abstract class AbstractIgniteKarafTest {
-    /** Features we do not expect to be installed. */
-    protected static final Set<String> IGNORED_FEATURES = new HashSet<>(Collections.singletonList("ignite-log4j"));
-
-    /** Regex matching ignite features. */
-    protected static final String IGNITE_FEATURES_NAME_REGEX = "ignite.*";
-
-    /** Project version. */
-    protected static final String PROJECT_VERSION = System.getProperty("projectVersion");
-
-    /** Pax Exam will inject the Bundle Context here. */
-    @Inject
-    protected BundleContext bundleCtx;
-
-    /** Pax Exam will inject the Karaf Features Service. */
-    @Inject
-    protected FeaturesService featuresSvc;
-
-    /**
-     * Base configuration for a Karaf container running the specified Ignite features.
-     *
-     * @return The configuration.
-     */
-    public Option[] baseConfig() {
-        return options(
-
-            // Specify which version of Karaf to use.
-            karafDistributionConfiguration()
-                .frameworkUrl(maven().groupId("org.apache.karaf").artifactId("apache-karaf").type("tar.gz")
-                    .versionAsInProject())
-                .karafVersion(System.getProperty("karafVersion"))
-                .useDeployFolder(false)
-                .unpackDirectory(new File("target/paxexam/unpack")),
-
-            // Add JUnit bundles.
-            junitBundles(),
-
-            // Add the additional JRE exports that Ignite requires.
-            editConfigurationFileExtend("etc/jre.properties", "jre-1.7", "sun.nio.ch"),
-            editConfigurationFileExtend("etc/jre.properties", "jre-1.8", "sun.nio.ch"),
-
-            // Make log level INFO.
-            logLevel(LogLevelOption.LogLevel.INFO),
-
-            // Add our features repository.
-            features(mavenBundle()
-                    .groupId("org.apache.ignite").artifactId("ignite-osgi-karaf")
-                    .version(System.getProperty("projectVersion")).type("xml/features"),
-                featuresToInstall().toArray(new String[0])),
-
-            // Propagate the projectVersion system property.
-            systemProperty("projectVersion").value(System.getProperty("projectVersion"))
-        );
-    }
-
-    /** */
-    protected abstract List<String> featuresToInstall();
-}
diff --git a/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteKarafFeaturesInstallationTest.java b/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteKarafFeaturesInstallationTest.java
deleted file mode 100644
index 8ed8d9a..0000000
--- a/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteKarafFeaturesInstallationTest.java
+++ /dev/null
@@ -1,102 +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 org.apache.ignite.osgi;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.apache.karaf.features.Feature;
-import org.junit.Test;
-import org.ops4j.pax.exam.Configuration;
-import org.ops4j.pax.exam.CoreOptions;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.karaf.options.KarafDistributionOption;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Constants;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Pax Exam test class to check if all features could be resolved and installed.
- */
-public class IgniteKarafFeaturesInstallationTest extends AbstractIgniteKarafTest {
-    /** Number of features expected to exist. */
-    private static final int EXPECTED_FEATURES = 25;
-
-    /** */
-    private static final String CAMEL_REPO_URI = "mvn:org.apache.camel.karaf/apache-camel/" +
-        System.getProperty("camelVersion") + "/xml/features";
-
-    /**
-     * Container configuration.
-     *
-     * @return The configuration.
-     */
-    @Configuration
-    public Option[] config() {
-        List<Option> options = new ArrayList<>(Arrays.asList(baseConfig()));
-
-        options.add(KarafDistributionOption.features(CAMEL_REPO_URI));
-
-        return CoreOptions.options(options.toArray(new Option[0]));
-    }
-
-    /**
-     * @throws Exception
-     */
-    @Test
-    public void testAllBundlesActiveAndFeaturesInstalled() throws Exception {
-        // Asssert all bundles except fragments are ACTIVE.
-        for (Bundle b : bundleCtx.getBundles()) {
-            System.out.println(String.format("Checking state of bundle [symbolicName=%s, state=%s]",
-                b.getSymbolicName(), b.getState()));
-
-            if (b.getHeaders().get(Constants.FRAGMENT_HOST) == null)
-                assertTrue(b.getState() == Bundle.ACTIVE);
-        }
-
-        // Check that according to the FeaturesService, all Ignite features except ignite-log4j are installed.
-        Feature[] features = featuresSvc.getFeatures(IGNITE_FEATURES_NAME_REGEX);
-
-        assertNotNull(features);
-        assertEquals(EXPECTED_FEATURES, features.length);
-
-        for (Feature f : features) {
-            if (IGNORED_FEATURES.contains(f.getName()))
-                continue;
-
-            boolean installed = featuresSvc.isInstalled(f);
-
-            System.out.println(String.format("Checking if feature is installed [featureName=%s, installed=%s]",
-                f.getName(), installed));
-
-            assertTrue(installed);
-            assertEquals(PROJECT_VERSION.replaceAll("-", "."), f.getVersion().replaceAll("-", "."));
-        }
-    }
-
-    /**
-     * @return Features list.
-     */
-    @Override protected List<String> featuresToInstall() {
-        return Collections.singletonList("ignite-all");
-    }
-}
diff --git a/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteOsgiServiceTest.java b/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteOsgiServiceTest.java
deleted file mode 100644
index 7b906d2..0000000
--- a/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteOsgiServiceTest.java
+++ /dev/null
@@ -1,132 +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 org.apache.ignite.osgi;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import javax.inject.Inject;
-import org.apache.ignite.Ignite;
-import org.apache.ignite.osgi.activators.BasicIgniteTestActivator;
-import org.apache.ignite.osgi.activators.TestOsgiFlags;
-import org.apache.ignite.osgi.activators.TestOsgiFlagsImpl;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Configuration;
-import org.ops4j.pax.exam.CoreOptions;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.ProbeBuilder;
-import org.ops4j.pax.exam.TestProbeBuilder;
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
-import org.ops4j.pax.exam.spi.reactors.PerMethod;
-import org.ops4j.pax.exam.util.Filter;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.ops4j.pax.exam.CoreOptions.streamBundle;
-import static org.ops4j.pax.tinybundles.core.TinyBundles.bundle;
-import static org.ops4j.pax.tinybundles.core.TinyBundles.withBnd;
-
-/**
- * Pax Exam test class to check whether the Ignite service is exposed properly and whether lifecycle callbacks
- * are invoked.
- */
-@RunWith(PaxExam.class)
-@ExamReactorStrategy(PerMethod.class)
-public class IgniteOsgiServiceTest extends AbstractIgniteKarafTest {
-    /** Injects the Ignite OSGi service. */
-    @Inject @Filter("(ignite.name=testGrid)")
-    private Ignite ignite;
-
-    /** */
-    @Inject
-    private BundleContext bundleCtx;
-
-    /**
-     * @return Config.
-     */
-    @Configuration
-    public Option[] bundleDelegatingConfig() {
-        List<Option> options = new ArrayList<>(Arrays.asList(baseConfig()));
-
-        // Add bundles we require.
-        options.add(
-            streamBundle(bundle()
-                .add(BasicIgniteTestActivator.class)
-                .add(TestOsgiFlags.class)
-                .add(TestOsgiFlagsImpl.class)
-                .set(Constants.BUNDLE_SYMBOLICNAME, BasicIgniteTestActivator.class.getSimpleName())
-                .set(Constants.BUNDLE_ACTIVATOR, BasicIgniteTestActivator.class.getName())
-                .set(Constants.EXPORT_PACKAGE, "org.apache.ignite.osgi.activators")
-                .set(Constants.DYNAMICIMPORT_PACKAGE, "*")
-                .build(withBnd())));
-
-        // Uncomment this if you'd like to debug inside the container.
-        // options.add(KarafDistributionOption.debugConfiguration());
-
-        return CoreOptions.options(options.toArray(new Option[0]));
-    }
-
-    /**
-     * Builds the probe.
-     *
-     * @param probe The probe builder.
-     * @return The probe builder.
-     */
-    @ProbeBuilder
-    public TestProbeBuilder probeConfiguration(TestProbeBuilder probe) {
-        probe.setHeader(Constants.IMPORT_PACKAGE, "*,org.apache.ignite.osgi.activators;resolution:=\"optional\"");
-
-        return probe;
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void testServiceExposedAndCallbacksInvoked() throws Exception {
-        assertNotNull(ignite);
-        assertEquals("testGrid", ignite.name());
-
-        TestOsgiFlags flags = (TestOsgiFlags)bundleCtx.getService(
-            bundleCtx.getAllServiceReferences(TestOsgiFlags.class.getName(), null)[0]);
-
-        assertNotNull(flags);
-        assertEquals(Boolean.TRUE, flags.getOnBeforeStartInvoked());
-        assertEquals(Boolean.TRUE, flags.getOnAfterStartInvoked());
-
-        // The bundle is still not stopped, therefore these callbacks cannot be tested.
-        assertNull(flags.getOnBeforeStopInvoked());
-        assertNull(flags.getOnAfterStopInvoked());
-
-        // No exceptions.
-        assertNull(flags.getOnAfterStartThrowable());
-        assertNull(flags.getOnAfterStopThrowable());
-    }
-
-    /**
-     * @return Features.
-     */
-    @Override protected List<String> featuresToInstall() {
-        return Arrays.asList("ignite-core");
-    }
-}
diff --git a/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteOsgiTestSuite.java b/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteOsgiTestSuite.java
deleted file mode 100644
index 0a3d69c..0000000
--- a/modules/osgi/src/test/java/org/apache/ignite/osgi/IgniteOsgiTestSuite.java
+++ /dev/null
@@ -1,32 +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 org.apache.ignite.osgi;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-/**
- * Test suite for OSGi-related test cases.
- * <p>
- * NOTE: Have to use JUnit 4 annotations because Pax Exam is built on JUnit 4.
- */
-@RunWith(Suite.class)
-@Suite.SuiteClasses({IgniteOsgiServiceTest.class, IgniteKarafFeaturesInstallationTest.class})
-public class IgniteOsgiTestSuite {
-    // No-op.
-}
diff --git a/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/BasicIgniteTestActivator.java b/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/BasicIgniteTestActivator.java
deleted file mode 100644
index b43a2f6..0000000
--- a/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/BasicIgniteTestActivator.java
+++ /dev/null
@@ -1,76 +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 org.apache.ignite.osgi.activators;
-
-import java.util.Hashtable;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.osgi.IgniteAbstractOsgiContextActivator;
-import org.apache.ignite.osgi.classloaders.OsgiClassLoadingStrategyType;
-import org.jetbrains.annotations.Nullable;
-import org.osgi.framework.BundleContext;
-
-/**
- * Basic Ignite Activator for testing.
- */
-public class BasicIgniteTestActivator extends IgniteAbstractOsgiContextActivator {
-    /** Flags to report our state to a watcher. */
-    private TestOsgiFlagsImpl flags = new TestOsgiFlagsImpl();
-
-    /**
-     * @return Ignite config.
-     */
-    @Override public IgniteConfiguration igniteConfiguration() {
-        IgniteConfiguration config = new IgniteConfiguration();
-
-        config.setIgniteInstanceName("testGrid");
-
-        return config;
-    }
-
-    /**
-     * @return Strategy.
-     */
-    @Override public OsgiClassLoadingStrategyType classLoadingStrategy() {
-        return OsgiClassLoadingStrategyType.BUNDLE_DELEGATING;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onBeforeStart(BundleContext ctx) {
-        flags.onBeforeStartInvoked = Boolean.TRUE;
-
-        // Export the flags as an OSGi service.
-        ctx.registerService(TestOsgiFlags.class, flags, new Hashtable<String, Object>());
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onAfterStart(BundleContext ctx, @Nullable Throwable t) {
-        flags.onAfterStartInvoked = Boolean.TRUE;
-        flags.onAfterStartThrowable = t;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onBeforeStop(BundleContext ctx) {
-        flags.onBeforeStopInvoked = Boolean.TRUE;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void onAfterStop(BundleContext ctx, @Nullable Throwable t) {
-        flags.onAfterStopInvoked = Boolean.TRUE;
-        flags.onAfterStopThrowable = t;
-    }
-}
diff --git a/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/TestOsgiFlags.java b/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/TestOsgiFlags.java
deleted file mode 100644
index 09a2d29..0000000
--- a/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/TestOsgiFlags.java
+++ /dev/null
@@ -1,53 +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 org.apache.ignite.osgi.activators;
-
-/**
- * Interface to export the flags in OSGi.
- */
-public interface TestOsgiFlags {
-    /**
-     * @return The flag.
-     */
-    Boolean getOnBeforeStartInvoked();
-
-    /**
-     * @return The flag.
-     */
-    Boolean getOnAfterStartInvoked();
-
-    /**
-     * @return The flag.
-     */
-    Throwable getOnAfterStartThrowable();
-
-    /**
-     * @return The flag.
-     */
-    Boolean getOnBeforeStopInvoked();
-
-    /**
-     * @return The flag.
-     */
-    Boolean getOnAfterStopInvoked();
-
-    /**
-     * @return The flag.
-     */
-    Throwable getOnAfterStopThrowable();
-}
diff --git a/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/TestOsgiFlagsImpl.java b/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/TestOsgiFlagsImpl.java
deleted file mode 100644
index ccec2df..0000000
--- a/modules/osgi/src/test/java/org/apache/ignite/osgi/activators/TestOsgiFlagsImpl.java
+++ /dev/null
@@ -1,83 +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 org.apache.ignite.osgi.activators;
-
-/**
- * Data transfer object representing flags we want to watch from the OSGi tests.
- */
-public class TestOsgiFlagsImpl implements TestOsgiFlags {
-    /** onBeforeStartInvoked flag. */
-    public Boolean onBeforeStartInvoked;
-
-    /** onAfterStartInvoked flag. */
-    public Boolean onAfterStartInvoked;
-
-    /** onAfterStartThrowable flag. */
-    public Throwable onAfterStartThrowable;
-
-    /** onBeforeStartInvoked flag. */
-    public Boolean onBeforeStopInvoked;
-
-    /** onAfterStopInvoked flag. */
-    public Boolean onAfterStopInvoked;
-
-    /** onAfterStopThrowable flag. */
-    public Throwable onAfterStopThrowable;
-
-    /**
-     * @return The flag.
-     */
-    @Override public Boolean getOnBeforeStartInvoked() {
-        return onBeforeStartInvoked;
-    }
-
-    /**
-     * @return The flag.
-     */
-    @Override public Boolean getOnAfterStartInvoked() {
-        return onAfterStartInvoked;
-    }
-
-    /**
-     * @return The flag.
-     */
-    @Override public Throwable getOnAfterStartThrowable() {
-        return onAfterStartThrowable;
-    }
-
-    /**
-     * @return The flag.
-     */
-    @Override public Boolean getOnBeforeStopInvoked() {
-        return onBeforeStopInvoked;
-    }
-
-    /**
-     * @return The flag.
-     */
-    @Override public Boolean getOnAfterStopInvoked() {
-        return onAfterStopInvoked;
-    }
-
-    /**
-     * @return The flag.
-     */
-    @Override public Throwable getOnAfterStopThrowable() {
-        return onAfterStopThrowable;
-    }
-}
diff --git a/modules/rest-http/pom.xml b/modules/rest-http/pom.xml
index 8f6b63e..31b0027 100644
--- a/modules/rest-http/pom.xml
+++ b/modules/rest-http/pom.xml
@@ -155,12 +155,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/schedule/pom.xml b/modules/schedule/pom.xml
index e8f1641..d28da7f 100644
--- a/modules/schedule/pom.xml
+++ b/modules/schedule/pom.xml
@@ -34,13 +34,6 @@
 
     <url>http://ignite.apache.org</url>
 
-    <properties>
-        <osgi.export.package>
-            org.apache.ignite.internal.processors.schedule,
-            {local-packages}
-        </osgi.export.package>
-    </properties>
-
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
@@ -106,18 +99,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this fragment. It is a fragment because it contains internal processors
-                 that would be looked up by ignite-core. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <configuration>
-                    <instructions>
-                        <Fragment-Host>${project.groupId}.ignite-core</Fragment-Host>
-                    </instructions>
-                </configuration>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/slf4j/pom.xml b/modules/slf4j/pom.xml
index 73a207c..d4f2bd2 100644
--- a/modules/slf4j/pom.xml
+++ b/modules/slf4j/pom.xml
@@ -76,12 +76,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/urideploy/pom.xml b/modules/urideploy/pom.xml
index cb58242..cf8b0f0 100644
--- a/modules/urideploy/pom.xml
+++ b/modules/urideploy/pom.xml
@@ -152,12 +152,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/web/pom.xml b/modules/web/pom.xml
index beb547e..7b96bd9 100644
--- a/modules/web/pom.xml
+++ b/modules/web/pom.xml
@@ -94,12 +94,6 @@
 
     <build>
         <plugins>
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/modules/zookeeper/pom.xml b/modules/zookeeper/pom.xml
index 56ac335..47cdf40 100644
--- a/modules/zookeeper/pom.xml
+++ b/modules/zookeeper/pom.xml
@@ -216,12 +216,6 @@
                 </executions>
             </plugin>
 
-            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-            </plugin>
-
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
diff --git a/parent-internal/pom.xml b/parent-internal/pom.xml
index 6315418..7e07ba5 100644
--- a/parent-internal/pom.xml
+++ b/parent-internal/pom.xml
@@ -227,10 +227,6 @@
                                 <packages>org.apache.ignite.platform*</packages>
                             </group>
                             <group>
-                                <title>OSGi integration</title>
-                                <packages>org.apache.ignite.osgi*</packages>
-                            </group>
-                            <group>
                                 <title>Storm integration</title>
                                 <packages>org.apache.ignite.stream.storm*</packages>
                             </group>
diff --git a/parent/pom.xml b/parent/pom.xml
index 24f0e2f..2975b7d 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -72,7 +72,6 @@
         <aspectj.bundle.version>1.8.13_1</aspectj.bundle.version>
         <aspectj.version>1.8.13</aspectj.version>
         <netty.version>4.1.75.Final</netty.version>
-        <camel.version>2.22.0</camel.version>
         <bouncycastle.version>1.69</bouncycastle.version>
         <commons.beanutils.bundle.version>1.9.2_1</commons.beanutils.bundle.version>
         <commons.beanutils.version>1.9.4</commons.beanutils.version>
@@ -116,7 +115,6 @@
         <jsonlib.version>2.4</jsonlib.version>
         <jtidy.version>r938</jtidy.version>
         <kafka.version>2.0.1</kafka.version>
-        <karaf.version>4.0.2</karaf.version>
         <log4j2.version>2.17.1</log4j2.version>
         <log4j.version>1.2.17</log4j.version>
         <lucene.bundle.version>7.4.0_1</lucene.bundle.version>
@@ -132,8 +130,6 @@
         <mysql.connector.version>8.0.26</mysql.connector.version>
         <netlibjava.version>1.1.2</netlibjava.version>
         <oro.bundle.version>2.0.8_6</oro.bundle.version>
-        <osgi.core.version>5.0.0</osgi.core.version>
-        <osgi.enterprise.version>5.0.0</osgi.enterprise.version>
         <paho.version>1.0.2</paho.version>
         <postgres.connector.version>42.3.3</postgres.connector.version>
         <scala210.jline.version>2.10.7</scala210.jline.version>
@@ -144,7 +140,6 @@
         <slf4j16.version>1.6.4</slf4j16.version>
         <snappy.version>1.1.7.2</snappy.version>
         <spring.version>5.2.21.RELEASE</spring.version>
-        <spring41.osgi.feature.version>4.1.7.RELEASE_1</spring41.osgi.feature.version>
         <storm.version>1.1.1</storm.version>
         <surefire.version>3.0.0-M4</surefire.version>
         <tomcat.version>9.0.63</tomcat.version>
@@ -165,8 +160,6 @@
         <!-- OSGI Manifest generation default property values -->
         <osgi.import.package>*</osgi.import.package>
         <osgi.export.package>{local-packages}</osgi.export.package>
-        <osgi.embed.transitive>false</osgi.embed.transitive>
-        <osgi.fail.ok>false</osgi.fail.ok>
 
         <flattenMode>clean</flattenMode>
 
@@ -414,10 +407,10 @@
                             <Private-Package>
                                 ${osgi.private.package}
                             </Private-Package>
-                            <Embed-Dependency>${osgi.embed.dependency}</Embed-Dependency>
+                            <Embed-Dependency>false</Embed-Dependency>
                             <Embed-Directory>lib</Embed-Directory>
-                            <Embed-Transitive>${osgi.embed.transitive}</Embed-Transitive>
-                            <_failok>${osgi.fail.ok}</_failok>
+                            <Embed-Transitive>false</Embed-Transitive>
+                            <_failok>false</_failok>
                             <_invalidfilenames/>
                         </instructions>
                     </configuration>
@@ -666,6 +659,12 @@
                     </execution>
                 </executions>
             </plugin>
+
+            <!-- Generate the OSGi MANIFEST.MF for this bundle. -->
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+            </plugin>
         </plugins>
     </build>
 
diff --git a/pom.xml b/pom.xml
index 57abf4f..6580e0c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,9 +61,6 @@
         <module>modules/jcl</module>
         <module>modules/codegen</module>
         <module>modules/zookeeper</module>
-        <module>modules/osgi-paxlogging</module>
-        <module>modules/osgi-karaf</module>
-        <module>modules/osgi</module>
         <module>modules/web/ignite-appserver-test</module>
         <module>modules/web/ignite-websphere-test</module>
         <module>modules/cassandra</module>