diff --git a/.gitignore b/.gitignore
index 0206a6a..04a4208 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,4 +12,6 @@
 .project
 .springBeans
 .settings
+bin
+build
 
diff --git a/build.gradle b/build.gradle
index 0c926b5..9452db7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -12,12 +12,19 @@
 
 def timestamp = new Date().format('yyyyMMddHHmmss', TimeZone.getTimeZone('GMT'))
 
-defaultTasks 'clean', 'build', 'javadoc', 'sourcesJar', 'javadocJar'
+defaultTasks 'clean', 'build', 'snapsDist'
 
-ext.javaProjects = [
-    project(':org.eclipse.virgo.snaps'),
+ext.planProjects = [
+	project(':org.eclipse.virgo.snaps')
+]
+
+ext.bundleProjects = [    
     project(':org.eclipse.virgo.snaps.api'),
-    project(':org.eclipse.virgo.snaps.cor:org.eclipse.virgo.snaps.core')
+    project(':org.eclipse.virgo.snaps.core')
+]
+
+ext.testProjects = [    
+    project(':org.eclipse.virgo.snaps.test')
 ]
 
 allprojects {
@@ -34,7 +41,7 @@
     }
 }
 
-configure(javaProjects) {
+configure(bundleProjects + testProjects + planProjects) {
     apply plugin: 'java'
     apply plugin: 'jacoco'
     apply plugin: 'findbugs'
@@ -68,12 +75,30 @@
             }
         }
     }
+    repositories {
+		mavenCentral()
+		ivy {
+			url "http://build.eclipse.org/rt/virgo/ivy/bundles/release/"
+			layout "pattern", { artifact "[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" }
+		}        
+        maven{
+            url "http://build.eclipse.org/rt/virgo/gradle/bundles/"
+        }
+	}
     configurations {
     	ecj {}
 		testBundles {
 			transitive = false
 		}
 	}
+	// this is necessary because Gemini Web contains a dependency with wrong groupId/version combination 
+	configurations.all {
+		resolutionStrategy {
+			dependencySubstitution {
+				substitute module('javax.servlet:javax.servlet:3.0.0.v201103241009') with module('org.eclipse.virgo.mirrored:javax.servlet:3.0.0.v201103241009')  
+			}
+		}
+	}
     jar {
     	// add SUA to archive
         from "$rootDir/build-bundlor/resources/about/notice.html"
@@ -121,7 +146,7 @@
 	}    	
 }
 
-configure(javaProjects) {
+configure(bundleProjects) {
     apply plugin: 'org.eclipse.virgo.bundlor'
 	
 	task('addProjectVersionToGradlePropertiesTask', type: Copy) {
@@ -165,7 +190,7 @@
     }
 }
 
-configure(javaProjects) {
+configure(bundleProjects + testProjects + planProjects) {
     apply plugin: 'eclipse'
 
     eclipse {
@@ -187,9 +212,41 @@
     }
 }
 
+configure(bundleProjects) {
+	apply plugin: 'maven-publish'
+    publishing {
+    	repositories {
+        	maven {
+                name = "BuildEclipseOrg"
+                url "/opt/public/rt/virgo/gradle/bundles"
+            }
+        }
+        publications {
+            snaps(MavenPublication) {
+                groupId 'org.eclipse.virgo.snaps'
+                from components.java
+            }
+        }
+    }
+}
+
+task snapsDist(type: Zip) {
+    description 'Build Snaps distribution Zip file'
+    group = 'distribution'
+    
+	archiveName "snaps-${version}.zip"
+    duplicatesStrategy 'exclude'
+    into("snaps-${version}/dist") {
+        from 'org.eclipse.virgo.snaps/src/main/resources/'
+        from bundleProjects.jar
+    }
+    into("snaps-${version}") {
+    	from "build-snaps/resources"        
+    }
+}
+
 task wrapper(type: Wrapper) {
     description 'Creates a local Gradle Wrapper'
     group = 'Build Setup'
     gradleVersion = '3.1'
 }
-
diff --git a/gradle.properties b/gradle.properties
index b1762cf..1b94dac 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -7,7 +7,19 @@
 
 # Versions of runtime dependencies
 
+# current 3.7.0.M04 Virgo build includes servlet spec 3.1, although Gemini Web 2.2.7 does not support it
+#javaxServletVersion = 3.1.0.v201410161800
+# therefore we are using the same servlet spec version as Gemini Web 2.2.7 until we can upgrade to Gemini Web 3.0.0
+javaxServletVersion = 3.0.0.v201103241009
+
+javaxServletJspVersion = 2.2.0.v201112011158
+eclipseOsgiVersion = 3.8.1.v20120830-144521
+eclipseGeminiWebVersion = 2.2.7.RELEASE
+eclipseVirgoVersion = 3.7.0.D-20161102123413
+slf4jVersion = 1.7.13
+apacheCatalina = 7.0.61
 
 # Versions of test dependencies
-
-
+junitVersion = 4.7
+easymockVersion = 2.3
+springframeworkVersion = 4.2.4.RELEASE
diff --git a/org.eclipse.virgo.snaps.api/build.gradle b/org.eclipse.virgo.snaps.api/build.gradle
new file mode 100644
index 0000000..a723352
--- /dev/null
+++ b/org.eclipse.virgo.snaps.api/build.gradle
@@ -0,0 +1,15 @@
+description = 'Virgo Snaps API Bundle'
+
+dependencies {
+    ecj group: "org.eclipse.jdt.core.compiler", name: "ecj", version: "${ecjVersion}"
+    
+	compile group: "org.eclipse.virgo.mirrored", name: "javax.servlet", version: javaxServletVersion, configuration: "compile"
+	compile group: "org.eclipse.virgo.mirrored", name: "javax.servlet.jsp", version: javaxServletJspVersion, configuration: "compile"
+	compile group: "org.eclipse.virgo.mirrored", name: "org.eclipse.osgi", version: eclipseOsgiVersion, configuration: "compile"	
+	compile group: "org.eclipse.gemini", name: "org.eclipse.gemini.web.core", version: eclipseGeminiWebVersion, configuration: "compile"
+
+	testCompile "junit:junit:${junitVersion}"
+	testCompile "org.easymock:easymock:${easymockVersion}"
+	testCompile "org.springframework:spring-core:${springframeworkVersion}"
+	testCompile "org.springframework:spring-test:${springframeworkVersion}"
+}
diff --git a/org.eclipse.virgo.snaps.api/src/test/resources/.gitignore b/org.eclipse.virgo.snaps.api/src/test/resources/.gitkeep
similarity index 100%
rename from org.eclipse.virgo.snaps.api/src/test/resources/.gitignore
rename to org.eclipse.virgo.snaps.api/src/test/resources/.gitkeep
diff --git a/org.eclipse.virgo.snaps.api/template.mf b/org.eclipse.virgo.snaps.api/template.mf
index 2f830c2..e4a0815 100644
--- a/org.eclipse.virgo.snaps.api/template.mf
+++ b/org.eclipse.virgo.snaps.api/template.mf
@@ -4,7 +4,7 @@
 Bundle-Version: ${version}
 Bundle-Name: Snaps API
 Import-Template: 
- org.eclipse.gemini.web.*;version="${org.eclipse.gemini.web:[=.=.=, +1)}",
- javax.servlet.jsp*;version="${javax.servlet.jsp:[=.=.=, +1)}",
- javax.servlet.*;version="${javax.servlet:[-1.6.=, +1)}",
+ org.eclipse.gemini.web.*;version="${eclipseGeminiWebVersion:[=.=.=, +1)}",
+ javax.servlet.jsp*;version="${javaxServletJspVersion:[=.=.=, +1)}",
+ javax.servlet.*;version="${javaxServletVersion:[-1.6.=, +1)}",
  org.osgi.framework;version="0"
diff --git a/org.eclipse.virgo.snaps.core/build.gradle b/org.eclipse.virgo.snaps.core/build.gradle
new file mode 100644
index 0000000..0fc2e04
--- /dev/null
+++ b/org.eclipse.virgo.snaps.core/build.gradle
@@ -0,0 +1,30 @@
+description = 'Virgo Snaps Core Bundle'
+
+dependencies {
+	ecj group: "org.eclipse.jdt.core.compiler", name: "ecj", version: "${ecjVersion}"
+    
+	compile "org.slf4j:slf4j-api:${slf4jVersion}"
+	
+	compile group: "org.eclipse.virgo.mirrored", name: "javax.servlet", version: javaxServletVersion, configuration: "compile"
+	compile group: "org.eclipse.virgo.mirrored", name: "org.eclipse.osgi", version: eclipseOsgiVersion, configuration: "compile"
+	
+	compile group: "org.eclipse.gemini", name: "org.eclipse.gemini.web.core", version: eclipseGeminiWebVersion, configuration: "compile"
+	compile group: "org.eclipse.gemini", name: "org.eclipse.gemini.web.tomcat", version: eclipseGeminiWebVersion, configuration: "compile"
+
+	compile "org.eclipse.virgo:org.eclipse.virgo.util.common:${eclipseVirgoVersion}"
+	compile "org.eclipse.virgo:org.eclipse.virgo.util.io:${eclipseVirgoVersion}"
+	compile "org.eclipse.virgo:org.eclipse.virgo.util.osgi:${eclipseVirgoVersion}"
+	compile "org.eclipse.virgo:org.eclipse.virgo.util.osgi.manifest:${eclipseVirgoVersion}"
+	compile "org.eclipse.virgo:org.eclipse.virgo.medic:${eclipseVirgoVersion}"
+	compile "org.eclipse.virgo:org.eclipse.virgo.nano.core:${eclipseVirgoVersion}"
+	compile "org.eclipse.virgo:org.eclipse.virgo.nano.deployer.api:${eclipseVirgoVersion}"
+	compile "org.eclipse.virgo:org.eclipse.virgo.kernel.artifact:${eclipseVirgoVersion}"
+	compile "org.eclipse.virgo:org.eclipse.virgo.kernel.deployer:${eclipseVirgoVersion}"
+
+	testCompile "org.eclipse.virgo:org.eclipse.virgo.test.stubs:${eclipseVirgoVersion}"
+	testCompile "org.eclipse.virgo:org.eclipse.virgo.medic.test:${eclipseVirgoVersion}"
+	
+	testCompile "junit:junit:${junitVersion}"
+	testCompile "org.easymock:easymock:${easymockVersion}"
+	testCompile "org.springframework:spring-test:${springframeworkVersion}"	
+}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/SnapHttpSession.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/SnapHttpSession.java
index 83d5544..fde835d 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/SnapHttpSession.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/SnapHttpSession.java
@@ -19,7 +19,7 @@
 
 import org.eclipse.virgo.snaps.core.internal.webapp.SnapServletContext;
 
-
+@SuppressWarnings("deprecation")
 public final class SnapHttpSession extends HttpSessionWrapper {
 
     private static final String QUALIFIED_NAME_MARKER = "##";
@@ -55,11 +55,10 @@
         super.setAttribute(qualifyName(name), value);
     }
 
-    @SuppressWarnings("deprecation")
-	@Override
-	public HttpSessionContext getSessionContext() {
-		throw new RuntimeException(new OperationNotSupportedException("getSessionContext is deprecated"));
-	}
+    @Override
+    public HttpSessionContext getSessionContext() {
+        throw new RuntimeException(new OperationNotSupportedException("getSessionContext is deprecated"));
+    }
 
     private String qualifyName(String baseName) {
         return QUALIFIED_NAME_MARKER + this.snapServletContext.getSnapContextPath() + "." + baseName;
diff --git a/org.eclipse.virgo.snaps.core/template.mf b/org.eclipse.virgo.snaps.core/template.mf
index 9047432..7ae4596 100644
--- a/org.eclipse.virgo.snaps.core/template.mf
+++ b/org.eclipse.virgo.snaps.core/template.mf
@@ -4,16 +4,16 @@
 Bundle-Version: ${version}
 Bundle-Name: Snaps Core
 Import-Template: 
- org.eclipse.virgo.kernel.*;version="${org.eclipse.virgo.kernel:[=.=.=, +1)}",
- org.eclipse.virgo.nano.*;version="${org.eclipse.virgo.nano:[=.=.=, +1)}",
- org.eclipse.virgo.util.*;version="${org.eclipse.virgo.util:[=.=.=, +1)}",
- org.eclipse.gemini.web.*;version="${org.eclipse.gemini.web:[=.=.=, +1)}",
- org.eclipse.virgo.medic.*;version="${org.eclipse.virgo.medic:[=.=.=, +1)}",
- javax.servlet.jsp*;version="${javax.servlet.jsp:[=.=.=, +1)}",
- javax.servlet.*;version="${javax.servlet:[-1.6.=, +1)}",
+ org.eclipse.virgo.kernel.*;version="${eclipseVirgoVersion:[=.=.=, +1)}",
+ org.eclipse.virgo.nano.*;version="${eclipseVirgoVersion:[=.=.=, +1)}",
+ org.eclipse.virgo.util.*;version="${eclipseVirgoVersion:[=.=.=, +1)}",
+ org.eclipse.virgo.medic.*;version="${eclipseVirgoVersion:[=.=.=, +1)}",
+ org.eclipse.gemini.web.*;version="${eclipseGeminiWebVersion:[=.=.=, +1)}",
+ javax.servlet.jsp*;version="${javaxServletJspVersion:[=.=.=, +1)}",
+ javax.servlet.*;version="${javaxServletVersion:[-1.6.=, +1)}",
  javax.naming.*;version="0",
- org.apache.catalina.*;version="${org.apache.catalina:[=.=.=,+1)}",
- org.slf4j.*;version="${org.slf4j.api:[=.=.=,=.+1.=)]}",
+ org.apache.catalina.*;version="${apacheCatalina:[=.=.=,+1)}",
+ org.slf4j.*;version="${slf4jVersion:[=.=.=,=.+1.=)]}",
  javax.xml.parsers.*;version="0",
  org.osgi.*;version="0",
  org.w3c.dom.*;version="0",
diff --git a/org.eclipse.virgo.snaps.test/build.gradle b/org.eclipse.virgo.snaps.test/build.gradle
new file mode 100644
index 0000000..2963ce6
--- /dev/null
+++ b/org.eclipse.virgo.snaps.test/build.gradle
@@ -0,0 +1,14 @@
+description = 'Virgo Snaps Test Bundle'
+
+dependencies {
+	ecj group: "org.eclipse.jdt.core.compiler", name: "ecj", version: "${ecjVersion}"
+    
+    testCompile project(":org.eclipse.virgo.snaps.api")
+    testCompile project(":org.eclipse.virgo.snaps.core")
+    
+	testCompile "org.eclipse.virgo:org.eclipse.virgo.util.osgi.manifest:${eclipseVirgoVersion}"
+	testCompile "org.eclipse.virgo:org.eclipse.virgo.util.osgi:${eclipseVirgoVersion}"
+	
+	testCompile "junit:junit:${junitVersion}"
+	testCompile "org.eclipse.virgo:org.eclipse.virgo.test.framework:${eclipseVirgoVersion}"	
+}
diff --git a/org.eclipse.virgo.snaps.test/src/main/java/.gitignore b/org.eclipse.virgo.snaps.test/src/main/java/.gitkeep
similarity index 100%
rename from org.eclipse.virgo.snaps.test/src/main/java/.gitignore
rename to org.eclipse.virgo.snaps.test/src/main/java/.gitkeep
diff --git a/org.eclipse.virgo.snaps.test/src/main/java/.gitignore b/org.eclipse.virgo.snaps.test/src/main/java/org/eclipse/virgo/snaps/test/.gitkeep
similarity index 100%
copy from org.eclipse.virgo.snaps.test/src/main/java/.gitignore
copy to org.eclipse.virgo.snaps.test/src/main/java/org/eclipse/virgo/snaps/test/.gitkeep
diff --git a/org.eclipse.virgo.snaps/build.gradle b/org.eclipse.virgo.snaps/build.gradle
new file mode 100644
index 0000000..9ff3e21
--- /dev/null
+++ b/org.eclipse.virgo.snaps/build.gradle
@@ -0,0 +1 @@
+description = 'Virgo Snaps Plan deployment unit'
diff --git a/org.eclipse.virgo.snaps.api/src/test/resources/.gitignore b/org.eclipse.virgo.snaps/src/main/java/org/eclipse/virgo/snaps/.gitkeep
similarity index 100%
copy from org.eclipse.virgo.snaps.api/src/test/resources/.gitignore
copy to org.eclipse.virgo.snaps/src/main/java/org/eclipse/virgo/snaps/.gitkeep
diff --git a/org.eclipse.virgo.snaps/src/main/resources/org.eclipse.virgo.snaps.plan b/org.eclipse.virgo.snaps/src/main/resources/org.eclipse.virgo.snaps.plan
new file mode 100644
index 0000000..8f1bd76
--- /dev/null
+++ b/org.eclipse.virgo.snaps/src/main/resources/org.eclipse.virgo.snaps.plan
@@ -0,0 +1,9 @@
+<plan name="org.eclipse.virgo.snaps" version="3.7.0" scoped="false" atomic="true"
+                xmlns="http://www.eclipse.org/virgo/schema/plan"
+				xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+				xsi:schemaLocation="http://www.eclipse.org/virgo/schema/plan 
+				        http://www.eclipse.org/virgo/schema/plan/eclipse-virgo-plan.xsd">
+
+        <artifact type="bundle" name="org.eclipse.virgo.snaps.api" version="[3, 4)"/>
+        <artifact type="bundle" name="org.eclipse.virgo.snaps.core" version="[3, 4)"/>
+</plan>
diff --git a/org.eclipse.virgo.snaps/src/org.eclipse.virgo.snaps.plan b/org.eclipse.virgo.snaps/src/org.eclipse.virgo.snaps.plan
deleted file mode 100644
index 8b39d79..0000000
--- a/org.eclipse.virgo.snaps/src/org.eclipse.virgo.snaps.plan
+++ /dev/null
@@ -1,10 +0,0 @@
-<plan name="org.eclipse.virgo.snaps" version="3.0.0" scoped="false" atomic="true"
-                xmlns="http://www.springsource.org/schema/dm-server/plan"
-                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                xsi:schemaLocation="
-                        http://www.springsource.org/schema/dm-server/plan 
-                        http://www.springsource.org/schema/dm-server/plan/springsource-dm-server-plan.xsd">
-
-        <artifact type="bundle" name="org.eclipse.virgo.snaps.api" version="[3, 4)"/>
-        <artifact type="bundle" name="org.eclipse.virgo.snaps.core" version="[3, 4)"/>
-</plan>
diff --git a/settings.gradle b/settings.gradle
index ec44f68..e84344f 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -2,4 +2,4 @@
 include ':org.eclipse.virgo.snaps'
 include ':org.eclipse.virgo.snaps.api'
 include ':org.eclipse.virgo.snaps.core'
-
+include ':org.eclipse.virgo.snaps.test'
