diff --git hibernate-core/hibernate-core.gradle hibernate-core/hibernate-core.gradle
index 789ba09..9d328ba 100644
--- hibernate-core/hibernate-core.gradle
+++ hibernate-core/hibernate-core.gradle
@@ -1,6 +1,7 @@
 apply plugin: 'antlr'
 apply plugin: org.hibernate.build.gradle.inject.InjectionPlugin
 apply plugin: org.hibernate.build.gradle.testing.matrix.MatrixTestingPlugin
+apply plugin: 'osgi'
 
 dependencies {
     compile( libraries.jta )
@@ -33,9 +34,24 @@ dependencies {
 
 }
 
-manifest.mainAttributes(
-        'Main-Class': 'org.hibernate.Version'
-)
+jar {
+   manifest {
+     attributes 'Main-Class': 'org.hibernate.Version'
+     instruction 'Import-Package', 
+	              'antlr.*;version=' + antlr_VersionRange,
+                  'com.fasterxml.classmate.*;version=' + com_fasterxml_classmate_VersionRange,
+                  'javassist.*;version=' + javassist_VersionRange,
+                  'org.apache.tools.ant.*;version=' + org_apache_tools_ant_VersionRange,
+                  'javax.persistence.*;version=' + javax_persistence_VersionRange,
+                  'javax.transaction.*;version=' + javax_transaction_VersionRange,
+                  'javax.validation.*;version=' + javax_validation_VersionRange,
+                  'org.dom4j.*;version=' + org_dom4j_VersionRange,
+                  'org.hibernate.annotations.common.*;version='+ org_hibernate_annotations_common_VersionRange,
+                  'org.jboss.jandex;version=' + org_jboss_jandex_VersionRange ,
+                  'org.jboss.logging;version=' + org_jboss_logging_VersionRange,
+                  '*;version=0'
+   }
+}
 
 sourceSets.main {
     ext.jaxbTargetDir = file( "${buildDir}/generated-src/jaxb/main" )
diff --git hibernate-core/src/main/java/org/hibernate/engine/spi/CascadeStyle.java hibernate-core/src/main/java/org/hibernate/engine/spi/CascadeStyle.java
index c39f0f6..4466b4c 100755
--- hibernate-core/src/main/java/org/hibernate/engine/spi/CascadeStyle.java
+++ hibernate-core/src/main/java/org/hibernate/engine/spi/CascadeStyle.java
@@ -302,6 +302,15 @@ public abstract class CascadeStyle implements Serializable {
 		STYLES.put( "delete-orphan", DELETE_ORPHAN );
 		STYLES.put( "none", NONE );
 	}
+	
+	/**
+	 * Add a new cascade style to the map 
+	 * @param key The cascade style name
+	 * @param value CascadeStyle instance
+	 */
+	public static void putSTYLES(String key, CascadeStyle value) {
+		STYLES.put(key, value);
+	}
 
 	/**
 	 * Factory method for obtaining named cascade styles
diff --git hibernate-entitymanager/hibernate-entitymanager.gradle hibernate-entitymanager/hibernate-entitymanager.gradle
index 393f8c9..fb27a48 100644
--- hibernate-entitymanager/hibernate-entitymanager.gradle
+++ hibernate-entitymanager/hibernate-entitymanager.gradle
@@ -1,6 +1,7 @@
 import org.apache.tools.ant.filters.ReplaceTokens
 
 apply plugin: org.hibernate.build.gradle.testing.matrix.MatrixTestingPlugin
+apply plugin: 'osgi'
 
 dependencies {
     compile( project(':hibernate-core') )
@@ -16,6 +17,22 @@ dependencies {
     testRuntime( libraries.validator )
 }
 
+jar {
+	manifest {
+		instruction 'Export-Service', 
+		'javax.persistence.spi.PersistenceProvider;javax.persistence.provider="org.hibernate.ejb.HibernatePersistence"'
+		instruction 'Import-Package', 
+		'javassist.*;version=' + javassist_VersionRange,
+		'javax.persistence.*;version=' + javax_persistence_VersionRange,
+		'javax.transaction.*;version=' + javax_transaction_VersionRange,
+		'javax.validation.*;version=' + javax_validation_VersionRange,
+		'org.hibernate.annotations.common.*;version=' + org_hibernate_annotations_common_VersionRange,
+		'org.hibernate.*;version=' + org_hibernate_VersionRange,
+		'*;version=0'
+		
+	}
+}
+
 ////////////////////////////////////////////////////////////////////////////////////////////////////////
 // JPA model-gen set up
 ////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git hibernate-entitymanager/src/main/java/org/hibernate/ejb/engine/spi/EJB3CascadeStyle.java hibernate-entitymanager/src/main/java/org/hibernate/ejb/engine/spi/EJB3CascadeStyle.java
index b5903be..eed2471 100644
--- hibernate-entitymanager/src/main/java/org/hibernate/ejb/engine/spi/EJB3CascadeStyle.java
+++ hibernate-entitymanager/src/main/java/org/hibernate/ejb/engine/spi/EJB3CascadeStyle.java
@@ -19,7 +19,10 @@
  * 51 Franklin Street, Fifth Floor
  * Boston, MA  02110-1301  USA
  */
-package org.hibernate.engine.spi;
+package org.hibernate.ejb.engine.spi;
+
+import org.hibernate.engine.spi.CascadeStyle;
+import org.hibernate.engine.spi.CascadingAction;
 
 /**
  * Becasue CascadeStyle is not opened and package protected,
@@ -47,6 +50,6 @@ public abstract class EJB3CascadeStyle extends CascadeStyle {
 	};
 
 	static {
-		STYLES.put( "persist", PERSIST_EJB3 );
+		putSTYLES( "persist", PERSIST_EJB3 );
 	}
 }
diff --git hibernate-entitymanager/src/main/java/org/hibernate/ejb/engine/spi/EJB3CascadingAction.java hibernate-entitymanager/src/main/java/org/hibernate/ejb/engine/spi/EJB3CascadingAction.java
index d86641a..091d397 100644
--- hibernate-entitymanager/src/main/java/org/hibernate/ejb/engine/spi/EJB3CascadingAction.java
+++ hibernate-entitymanager/src/main/java/org/hibernate/ejb/engine/spi/EJB3CascadingAction.java
@@ -19,7 +19,7 @@
  * 51 Franklin Street, Fifth Floor
  * Boston, MA  02110-1301  USA
  */
-package org.hibernate.engine.spi;
+package org.hibernate.ejb.engine.spi;
 
 import java.util.Iterator;
 import java.util.Map;
@@ -28,6 +28,7 @@ import org.jboss.logging.Logger;
 
 import org.hibernate.HibernateException;
 import org.hibernate.ejb.internal.EntityManagerMessageLogger;
+import org.hibernate.engine.spi.CascadingAction;
 import org.hibernate.event.spi.EventSource;
 import org.hibernate.type.CollectionType;
 
diff --git hibernate-entitymanager/src/main/java/org/hibernate/ejb/event/EJB3PersistEventListener.java hibernate-entitymanager/src/main/java/org/hibernate/ejb/event/EJB3PersistEventListener.java
index 9025130..e3b93a4 100644
--- hibernate-entitymanager/src/main/java/org/hibernate/ejb/event/EJB3PersistEventListener.java
+++ hibernate-entitymanager/src/main/java/org/hibernate/ejb/event/EJB3PersistEventListener.java
@@ -26,8 +26,8 @@ package org.hibernate.ejb.event;
 import java.io.Serializable;
 
 import org.hibernate.engine.spi.CascadingAction;
-import org.hibernate.engine.spi.EJB3CascadeStyle;
-import org.hibernate.engine.spi.EJB3CascadingAction;
+import org.hibernate.ejb.engine.spi.EJB3CascadeStyle;
+import org.hibernate.ejb.engine.spi.EJB3CascadingAction;
 import org.hibernate.event.internal.DefaultPersistEventListener;
 import org.hibernate.event.spi.EventSource;
 
diff --git hibernate-entitymanager/src/main/resources/OSGI-INF/blueprint/blueprint.xml hibernate-entitymanager/src/main/resources/OSGI-INF/blueprint/blueprint.xml
index e69de29..659d79a 100644
--- hibernate-entitymanager/src/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ hibernate-entitymanager/src/main/resources/OSGI-INF/blueprint/blueprint.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xsi:schemaLocation="
+       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
+
+	<bean id="hibernateJpaProvider" class="org.hibernate.ejb.HibernatePersistence" />
+
+	<service ref="hibernateJpaProvider" interface="javax.persistence.spi.PersistenceProvider">
+		<service-properties>
+			<entry key="javax.persistence.provider" value="org.hibernate.ejb.HibernatePersistence" />
+		</service-properties>
+	</service>
+</blueprint>
\ No newline at end of file
diff --git hibernate-envers/hibernate-envers.gradle hibernate-envers/hibernate-envers.gradle
index 84e22c0..2d5549c 100644
--- hibernate-envers/hibernate-envers.gradle
+++ hibernate-envers/hibernate-envers.gradle
@@ -1,4 +1,5 @@
 apply plugin: org.hibernate.build.gradle.testing.matrix.MatrixTestingPlugin
+apply plugin: 'osgi'
 
 dependencies {
     compile( project( ':hibernate-core' ) )
@@ -9,6 +10,21 @@ dependencies {
     testRuntime( libraries.javassist )
 }
 
+jar {
+   manifest {
+     instruction 'Import-Package',
+        'javassist.*;version=' + javassist_VersionRange,
+        'org.apache.tools.ant.*;version=' + org_apache_tools_ant_VersionRange,
+        'org.dom4j.*;version=' + org_dom4j_VersionRange,
+		'javax.persistence.*;version=' + javax_persistence_VersionRange,
+		'javax.transaction.*;version=' + javax_transaction_VersionRange,
+		'org.hibernate.annotations.common.*;version=' + org_hibernate_annotations_common_VersionRange,
+		'org.hibernate.*;version=' + org_hibernate_VersionRange,   
+        'org.jboss.logging;version=' + org_jboss_logging_VersionRange,
+		'*;version=0'
+	}
+}
+     
 sourceSets {
     main {
         ext.generatedJpaMetamodelSrcDir = file( "${buildDir}/generated-src/jpamodelgen/${name}" )
diff --git libraries.gradle libraries.gradle
index a77639d..aaaa395 100644
--- libraries.gradle
+++ libraries.gradle
@@ -9,6 +9,20 @@ bytemanVersion = '1.5.2'
 infinispanVersion = '5.1.4.FINAL'
 jnpVersion = '5.0.6.CR1'
 
+// versions ranges for osgi manifests
+org_hibernate_VersionRange = '"[4.1.7.SNAPSHOT,5)"'
+org_apache_tools_ant_VersionRange = '"[1.8.2,2)"'
+antlr_VersionRange = '"[2.7.7,3)"'
+com_fasterxml_classmate_VersionRange = '"[0.5.4,1)"'
+javassist_VersionRange = '"[3.15.0.GA,4)"'
+javax_persistence_VersionRange = '"[2,3)"'
+javax_transaction_VersionRange = '"[1.1,2)"'
+javax_validation_VersionRange = '"[1,2)"'
+org_dom4j_VersionRange ='"[1.6.1,2)"'
+org_hibernate_annotations_common_VersionRange='"[4.0.1.Final,5)"'
+org_jboss_jandex_VersionRange='"[1.0.3.Final,2)"'
+org_jboss_logging_VersionRange='"[3.1.0.GA,4)"'
+
 libraries = [
         // Ant
         ant:            'org.apache.ant:ant:1.8.2',
