Merge branch 'master' of ssh://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.snaps
diff --git a/.gitignore b/.gitignore
index 24ebfb0..4c88f6c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,12 @@
spring-build/lib/findbugs
.DS_Store
user-ivy.properties
+.gradle
+.classpath
+.project
+.springBeans
+.settings
+bin
+build
+.idea/
+
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 1f9ea18..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "virgo-build"]
- path = virgo-build
- url = git://git.eclipse.org/gitroot/virgo/org.eclipse.virgo.virgo-build.git
diff --git a/build-snaps/.ant-targets-build.xml b/build-snaps/.ant-targets-build.xml
deleted file mode 100644
index 916f1ed..0000000
--- a/build-snaps/.ant-targets-build.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-build-sample-app
-build-test-apps
-check-proxy
-clean
-clean-integration
-clean-ivy
-clover
-diagnostics
-findbugs
-jar
-javadoc-all
-javadoc-api
-osgi-validate
-p2.extract-publisher
-package-multi-bundle.package
-publish
-publish-ivy
-publish-maven
-quality-multi-bundle.test
-report
-resolve
-set-hudson-proxy
diff --git a/build-snaps/build.xml b/build-snaps/build.xml
deleted file mode 100644
index e2250a5..0000000
--- a/build-snaps/build.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="build-snaps" xmlns:ivy="antlib:org.apache.ivy.ant">
-
- <path id="unit.test.bundles">
- <pathelement location="../org.eclipse.virgo.snaps.api"/>
- <pathelement location="../org.eclipse.virgo.snaps.core"/>
- <pathelement location="../org.eclipse.virgo.snaps"/>
- </path>
-
- <path id="bundles">
- <path refid="unit.test.bundles" />
- <pathelement location="../org.eclipse.virgo.snaps.test"/>
- </path>
-
- <path id="doc.bundles">
- <pathelement location="../snaps-guide"/>
- </path>
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../build.versions"/>
- <import file="${basedir}/package-top-level.xml" />
- <import file="${basedir}/../virgo-build/multi-bundle/default.xml"/>
-
- <target name="precommit" depends="clean, clean-integration, test, findbugs, clover"/>
-
- <target name="publish-build">
- <antcall target="publish-package-build">
- <param name="package.file" value="${package.output.file}"/>
- </antcall>
- </target>
-
- <target name="publish-download">
- <antcall target="publish-package-download">
- <param name="package.file" value="${package.output.file}"/>
- </antcall>
- </target>
-
- <target name="test" depends="build-test-apps">
- <ant target="quality-multi-bundle.test" />
- </target>
-
- <path id="test.apps.bundles">
- <pathelement location="../test-apps/simple-host"/>
- <pathelement location="../test-apps/simple-snap"/>
- <pathelement location="../test-apps/spring-snap"/>
- <pathelement location="../test-apps/taglib-host"/>
- <pathelement location="../test-apps/taglib-snap-one"/>
- <pathelement location="../test-apps/taglib-snap-two"/>
- </path>
-
- <target name="build-test-apps" description="Build all of the test applications">
- <delete dir="${basedir}/../org.eclipse.virgo.snaps.test/src/test/apps" />
- <mkdir dir="${basedir}/../org.eclipse.virgo.snaps.test/src/test/apps" />
- <all-bundles target="clean" buildpathRef="test.apps.bundles"></all-bundles>
- <all-bundles target="jar" buildpathRef="test.apps.bundles"></all-bundles>
- </target>
-
- <path id="sample.app.bundles">
- <pathelement location="../sample/org.eclipse.virgo.snaps.sample.animal"/>
- <pathelement location="../sample/org.eclipse.virgo.snaps.sample.blue"/>
- <pathelement location="../sample/org.eclipse.virgo.snaps.sample.cat"/>
- <pathelement location="../sample/org.eclipse.virgo.snaps.sample.dog"/>
- </path>
-
- <target name="build-sample-app" description="Build all of the sample application bundles">
- <all-bundles target="clean" buildpathRef="sample.app.bundles"></all-bundles>
- <all-bundles target="jar" buildpathRef="sample.app.bundles"></all-bundles>
- </target>
-
-</project>
diff --git a/build-snaps/ivy.xml b/build-snaps/ivy.xml
deleted file mode 100644
index aaaab6f..0000000
--- a/build-snaps/ivy.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="org.eclipse.virgo.snaps" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="subsystem" type="xml" ext="xml"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.snaps" name="org.eclipse.virgo.snaps" rev="latest.integration"/>
- <dependency org="org.eclipse.virgo.snaps" name="org.eclipse.virgo.snaps.core" rev="latest.integration"/>
- <dependency org="org.eclipse.virgo.snaps" name="org.eclipse.virgo.snaps.api" rev="latest.integration"/>
- </dependencies>
-
-</ivy-module>
diff --git a/build-snaps/package-bundle.xml b/build-snaps/package-bundle.xml
deleted file mode 100644
index ab94073..0000000
--- a/build-snaps/package-bundle.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="package-bundle">
-
- <target name="package" depends="ivy.init">
- <dist-jar/>
- <src-jar/>
- </target>
-
-</project>
diff --git a/build-snaps/package-sample.xml b/build-snaps/package-sample.xml
deleted file mode 100644
index 25cebe2..0000000
--- a/build-snaps/package-sample.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="package-sample">
-
- <target name="package" depends="ivy.init">
- <src-jar/>
-
- <property name="subsystem.dir" value="${package.output.dir}/sample"/>
- <mkdir dir="${subsystem.dir}"/>
- <dist-jar output.dir="${subsystem.dir}"/>
- </target>
-
-</project>
diff --git a/build-snaps/package-top-level.xml b/build-snaps/package-top-level.xml
deleted file mode 100644
index 4a7376c..0000000
--- a/build-snaps/package-top-level.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="package-top-level">
-
- <target name="package">
- <delete dir="${package.output.dir}" quiet="true"/>
- <mkdir dir="${package.output.dir}"/>
- <delete file="${package.output.file}" quiet="true"/>
- <mkdir dir="${artifacts.dir}"/>
-
- <all-bundles target="package">
- <property name="package.output.dir" value="${package.output.dir}"/>
- </all-bundles>
-
- <all-bundles target="clean" buildpathRef="doc.bundles" />
- <all-bundles target="doc-html" buildpathRef="doc.bundles">
- <property name="docbook.output.dir" value="${package.docs.dir}"/>
- </all-bundles>
-
- <all-bundles target="clean" buildpathRef="sample.app.bundles" />
- <all-bundles target="jar" buildpathRef="sample.app.bundles" />
- <all-bundles target="package" buildpathRef="sample.app.bundles">
- <property name="package.output.dir" value="${package.output.dir}"/>
- </all-bundles>
-
- <copy todir="${package.output.dir}" failonerror="false">
- <fileset dir="${basedir}/resources"/>
- </copy>
-
- <ant target="javadoc-api" inheritAll="false">
- <property name="target.dir" value="${package.docs.dir}"/>
- </ant>
-
- <replaceregexp match="build.stamp.*\n" replace="" flags="g" file="${package.output.dir}/projects/build.properties"/>
- <replaceregexp match="release.type=.*" replace="release.type=integration" flags="g" file="${package.output.dir}/projects/build.properties"/>
-
- <zip destfile="${package.output.file}">
- <zipfileset dir="${package.dir}"/>
- </zip>
- </target>
-
-</project>
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..fd1af11
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,268 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ maven { url 'http://build.eclipse.org/rt/virgo/gradle/bundles/' }
+ maven { url 'https://plugins.gradle.org/m2/' }
+ dependencies {
+ classpath "org.eclipse.virgo.bundlor:org.eclipse.virgo.bundlor.gradle.plugin:${bundlorVersion}"
+ classpath "org.asciidoctor:asciidoctor-gradle-plugin:${asciidoctorVersion}"
+ }
+ }
+}
+
+def timestamp = new Date().format('yyyyMMddHHmmss', TimeZone.getTimeZone('GMT'))
+
+defaultTasks 'clean', 'build', 'snapsDist'
+
+ext.planProjects = [
+ project(':org.eclipse.virgo.snaps')
+]
+
+ext.bundleProjects = [
+ project(':org.eclipse.virgo.snaps.api'),
+ project(':org.eclipse.virgo.snaps.core')
+]
+
+allprojects {
+ apply plugin: 'base'
+ if (System.properties['ci.build'] == 'true') {
+ def buildQualifier = System.properties['ci.build.qualifier']
+ if(buildQualifier) {
+ version = version + '.' + buildQualifier
+ } else {
+ version = version + '.' + timestamp
+ }
+ } else {
+ version = version + '.SNAPSHOT'
+ }
+}
+
+configure(bundleProjects + planProjects) {
+ apply plugin: 'java'
+ apply plugin: 'jacoco'
+ apply plugin: 'findbugs'
+
+ sourceCompatibility = '1.7'
+ targetCompatibility = '1.7'
+
+ compileJava {
+ options.encoding = 'UTF-8'
+ options.fork = true
+ doFirst {
+ options.forkOptions.with {
+ executable = 'java'
+ jvmArgs = [
+ '-cp',
+ configurations.ecj.asPath,
+ 'org.eclipse.jdt.internal.compiler.batch.Main']
+ }
+ }
+ }
+ compileTestJava {
+ options.encoding = 'UTF-8'
+ options.fork = true
+ doFirst {
+ options.forkOptions.with {
+ executable = 'java'
+ jvmArgs = [
+ '-cp',
+ configurations.ecj.asPath,
+ 'org.eclipse.jdt.internal.compiler.batch.Main']
+ }
+ }
+ }
+ repositories {
+ mavenCentral()
+ ivy {
+ url "http://build.eclipse.org/rt/virgo/ivy/bundles/release/"
+ layout "pattern", { artifact "[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" }
+ }
+ ivy {
+ url "http://build.eclipse.org/rt/virgo/ivy/bundles/milestone"
+ layout "pattern", { artifact "[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" }
+ }
+ maven{
+ url "http://build.eclipse.org/rt/virgo/gradle/bundles/"
+ }
+
+ }
+ configurations {
+ ecj {}
+ testBundles {
+ transitive = false
+ }
+ }
+ configurations.all {
+ resolutionStrategy {
+ force "org.eclipse.virgo.mirrored:org.eclipse.osgi:${eclipseOsgiVersion}"
+ }
+ }
+ jar {
+ // add SUA to archive
+ from "$rootDir/build-bundlor/resources/about/notice.html"
+ duplicatesStrategy 'exclude'
+ }
+ jar.doLast {
+ // signing the archives
+ if(System.properties['ci.build.signjars'] == 'true') {
+ println '|--> Signing Jar File: ' + archivePath
+ exec {
+ workingDir destinationDir
+ commandLine 'curl',
+ '-o',
+ archiveName,
+ '-F',
+ "file=@${archiveName}",
+ '--show-error',
+ 'http://build.eclipse.org:31338/sign'
+ }
+ }
+ }
+ jacoco {
+ toolVersion = "0.7.4.201502262128"
+ }
+ findbugs {
+ sourceSets = [sourceSets.main]
+ ignoreFailures = true
+ effort = "max"
+ reportLevel = "high"
+ }
+ javadoc {
+ failOnError = false
+ }
+ task sourcesJar(type: Jar, dependsOn: classes) {
+ description 'Assembles a jar archive containing the sources.'
+ group = 'build'
+ classifier = 'sources'
+ from sourceSets.main.allSource
+ }
+ task javadocJar(type: Jar, dependsOn: javadoc) {
+ description 'Assembles a jar archive containing the javadocs.'
+ group = 'build'
+ classifier = 'javadoc'
+ from javadoc.destinationDir
+ }
+ artifacts {
+ archives sourcesJar, javadocJar
+ }
+}
+
+configure(bundleProjects) {
+ apply plugin: 'org.eclipse.virgo.bundlor'
+
+ task('addProjectVersionToGradlePropertiesTask', type: Copy) {
+ ext.outputDir = new File(buildDir, 'bundlor-properties')
+ inputs.file project.rootProject.file('gradle.properties')
+ outputs.dir ext.outputDir
+ from project.rootProject.file('gradle.properties')
+ into ext.outputDir
+ doLast {
+ def gradleProperties = new Properties()
+ gradleProperties.load(new FileReader("${buildDir}/bundlor-properties/gradle.properties"))
+ gradleProperties.setProperty('bundleName', "${archivesBaseName}")
+ gradleProperties.setProperty('timestamp', "${timestamp}")
+ gradleProperties.setProperty('version', "${version}")
+ def writer = new FileWriter("${buildDir}/bundlor-properties/gradle.properties")
+ try {
+ gradleProperties.store(writer, 'modified during build process')
+ writer.flush()
+ } finally {
+ writer.close()
+ }
+ }
+ }
+ task('mergeClassesAndResources', type: Copy, dependsOn: 'compileJava') {
+ ext.bundlorInputPath = new File(buildDir, 'bundlor-inputPath')
+ inputs.file sourceSets.main.output.classesDir
+ inputs.file sourceSets.main.resources
+ outputs.dir ext.bundlorInputPath
+ from sourceSets.main.output.classesDir
+ from sourceSets.main.resources
+ into ext.bundlorInputPath
+ }
+ project.tasks.'bundlor'.dependsOn('addProjectVersionToGradlePropertiesTask', 'mergeClassesAndResources')
+ bundlor {
+ ext.bundlorInputPath = new File(buildDir, 'bundlor-inputPath')
+ project.tasks['bundlor'].inputs.file ext.bundlorInputPath
+ manifestTemplatePath = "template.mf"
+ propertiesPath = new File("${project.buildDir}/bundlor-properties/gradle.properties")
+ inputPath = ext.bundlorInputPath
+ failOnWarnings = true
+ }
+}
+
+configure(bundleProjects + planProjects) {
+ apply plugin: 'eclipse'
+
+ eclipse {
+ jdt {
+ sourceCompatibility = 1.7
+ targetCompatibility = 1.7
+ }
+ project {
+ file.beforeMerged {
+ project.natures.clear()
+ }
+ natures = ['org.eclipse.buildship.core.gradleprojectnature']
+ }
+ }
+ cleanEclipse.doLast {
+ delete '.settings'
+ delete 'bin'
+ delete '.springBeans'
+ }
+}
+
+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
+ artifact sourcesJar {
+ classifier "sources"
+ }
+ }
+ }
+ }
+}
+
+task snapsDist(type: Zip, dependsOn: ':snaps-guide:asciidoctor') {
+ description 'Build Snaps distribution Zip file'
+ group = 'distribution'
+
+ archiveName "snaps-${version}.zip"
+ duplicatesStrategy 'exclude'
+ into("snaps-${version}/dist") {
+ from planProjects.processResources
+ from bundleProjects.jar
+ }
+ into("snaps-${version}/docs/javadoc") {
+ from bundleProjects.javadocJar
+ }
+ into("snaps-${version}/docs/javadoc-api") {
+ from './org.eclipse.virgo.snaps.api/build/docs/javadoc'
+ }
+ into("snaps-${version}/docs/html") {
+ from './snaps-guide/build/asciidoc/html5'
+ }
+ into("snaps-${version}/src") {
+ from bundleProjects.sourcesJar
+ }
+ 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/build.versions b/build.versions
index e36e50b..61bae2e 100644
--- a/build.versions
+++ b/build.versions
@@ -42,3 +42,4 @@
org.eclipse.virgo.medic=3.7.0.D-20140919123043
org.eclipse.virgo.repository=3.7.0.D-20140919123728
org.eclipse.gemini.blueprint=2.0.0.M02
+
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..6d6c261
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,24 @@
+# Bundlor Metadata
+version = 3.7.0
+description = 'Virgo Snaps allows you to construct a web application from multiple OSGi bundles, each of which serves up content for a distinct sub-portion of your application's URL space.'
+
+# Versions of buildscript dependencies
+bundlorVersion = 1.1.3.M01
+asciidoctorVersion = 1.5.3
+
+# Eclipse Java Compiler Version
+ecjVersion = 4.6.1
+
+# Versions of runtime dependencies
+javaxServletVersion = 3.1.0.20170128
+javaxServletJspVersion = 2.3.0.20170128
+eclipseOsgiVersion = 3.9.1.v20140110-1610
+eclipseGeminiWebVersion = 3.0.0.RC6
+eclipseVirgoVersion = 3.7.0.D-20170130050148
+slf4jVersion = 1.7.22
+apacheCatalinaVersion = 8.5.11
+
+# Versions of test dependencies
+junitVersion = 4.7
+easymockVersion = 2.3
+springframeworkVersion = 4.2.9.RELEASE
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..6ffa237
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..406a815
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Oct 26 20:20:43 CEST 2016
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-bin.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..9aa616c
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,169 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [[ "$(uname)" == "Darwin" ]] && [[ "$HOME" == "$PWD" ]]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..e95643d
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/java6-server.profile b/java6-server.profile
deleted file mode 100644
index 670c0cb..0000000
--- a/java6-server.profile
+++ /dev/null
@@ -1,212 +0,0 @@
-org.osgi.framework.system.packages = \
- javax.accessibility,\
- javax.activation,\
- javax.activation;version="1.1.0",\
- javax.activity,\
- javax.annotation,\
- javax.annotation;version="1.0.0",\
- javax.annotation.processing,\
- javax.crypto,\
- javax.crypto.interfaces,\
- javax.crypto.spec,\
- javax.imageio,\
- javax.imageio.event,\
- javax.imageio.metadata,\
- javax.imageio.plugins.bmp,\
- javax.imageio.plugins.jpeg,\
- javax.imageio.spi,\
- javax.imageio.stream,\
- javax.jws,\
- javax.jws;version="2.0",\
- javax.jws.soap,\
- javax.jws.soap;version="2.0",\
- javax.lang.model,\
- javax.lang.model.element,\
- javax.lang.model.type,\
- javax.lang.model.util,\
- javax.management,\
- javax.management.loading,\
- javax.management.modelmbean,\
- javax.management.monitor,\
- javax.management.openmbean,\
- javax.management.relation,\
- javax.management.remote,\
- javax.management.remote.rmi,\
- javax.management.timer,\
- javax.naming,\
- javax.naming.directory,\
- javax.naming.event,\
- javax.naming.ldap,\
- javax.naming.spi,\
- javax.net,\
- javax.net.ssl,\
- javax.print,\
- javax.print.attribute,\
- javax.print.attribute.standard,\
- javax.print.event,\
- javax.rmi,\
- javax.rmi.CORBA,\
- javax.rmi.ssl,\
- javax.script,\
- javax.script;version="1.1",\
- javax.security.auth,\
- javax.security.auth.callback,\
- javax.security.auth.kerberos,\
- javax.security.auth.login,\
- javax.security.auth.spi,\
- javax.security.auth.x500,\
- javax.security.cert,\
- javax.security.sasl,\
- javax.sound.midi,\
- javax.sound.midi.spi,\
- javax.sound.sampled,\
- javax.sound.sampled.spi,\
- javax.sql,\
- javax.sql.rowset,\
- javax.sql.rowset.serial,\
- javax.sql.rowset.spi,\
- javax.swing,\
- javax.swing.border,\
- javax.swing.colorchooser,\
- javax.swing.event,\
- javax.swing.filechooser,\
- javax.swing.plaf,\
- javax.swing.plaf.basic,\
- javax.swing.plaf.metal,\
- javax.swing.plaf.multi,\
- javax.swing.plaf.synth,\
- javax.swing.table,\
- javax.swing.text,\
- javax.swing.text.html,\
- javax.swing.text.html.parser,\
- javax.swing.text.rtf,\
- javax.swing.tree,\
- javax.swing.undo,\
- javax.tools,\
- javax.transaction,\
- javax.transaction;version="1.0.1",\
- javax.transaction;version="1.1.0",\
- javax.transaction.xa,\
- javax.transaction.xa;version="1.0.1",\
- javax.transaction.xa;version="1.1.0",\
- javax.xml,\
- javax.xml;version="1.0.1",\
- javax.xml.bind,\
- javax.xml.bind;version="2.0",\
- javax.xml.bind.annotation,\
- javax.xml.bind.annotation;version="2.0",\
- javax.xml.bind.annotation.adapters,\
- javax.xml.bind.annotation.adapters;version="2.0",\
- javax.xml.bind.attachment,\
- javax.xml.bind.attachment;version="2.0",\
- javax.xml.bind.helpers,\
- javax.xml.bind.helpers;version="2.0",\
- javax.xml.bind.util,\
- javax.xml.bind.util;version="2.0",\
- javax.xml.crypto,\
- javax.xml.crypto;version="1.0",\
- javax.xml.crypto.dom,\
- javax.xml.crypto.dom;version="1.0",\
- javax.xml.crypto.dsig,\
- javax.xml.crypto.dsig;version="1.0",\
- javax.xml.crypto.dsig.dom,\
- javax.xml.crypto.dsig.dom;version="1.0",\
- javax.xml.crypto.dsig.keyinfo,\
- javax.xml.crypto.dsig.keyinfo;version="1.0",\
- javax.xml.crypto.dsig.spec,\
- javax.xml.crypto.dsig.spec;version="1.0",\
- javax.xml.datatype,\
- javax.xml.namespace,\
- javax.xml.parsers,\
- javax.xml.soap,\
- javax.xml.soap;version="1.3.0",\
- javax.xml.stream,\
- javax.xml.stream;version="1.0.1",\
- javax.xml.stream.events,\
- javax.xml.stream.events;version="1.0.1",\
- javax.xml.stream.util,\
- javax.xml.stream.util;version="1.0.1",\
- javax.xml.transform,\
- javax.xml.transform.dom,\
- javax.xml.transform.sax,\
- javax.xml.transform.stax,\
- javax.xml.transform.stream,\
- javax.xml.validation,\
- javax.xml.ws,\
- javax.xml.ws;version="2.1.1",\
- javax.xml.ws.handler,\
- javax.xml.ws.handler;version="2.1.1",\
- javax.xml.ws.handler.soap,\
- javax.xml.ws.handler.soap;version="2.1.1",\
- javax.xml.ws.http,\
- javax.xml.ws.http;version="2.1.1",\
- javax.xml.ws.soap,\
- javax.xml.ws.soap;version="2.1.1",\
- javax.xml.ws.spi,\
- javax.xml.ws.spi;version="2.1.1",\
- javax.xml.xpath,\
- org.eclipse.virgo.kernel.equinox.extensions;version="3.7.0",\
- org.eclipse.virgo.kernel.equinox.extensions.hooks;version="3.7.0",\
- org.eclipse.virgo.test.launcher;version="3.7.0",\
- org.eclipse.virgo.util.launcher.parser;version="3.7.0",\
- org.ietf.jgss,\
- org.omg.CORBA,\
- org.omg.CORBA_2_3,\
- org.omg.CORBA_2_3.portable,\
- org.omg.CORBA.DynAnyPackage,\
- org.omg.CORBA.ORBPackage,\
- org.omg.CORBA.portable,\
- org.omg.CORBA.TypeCodePackage,\
- org.omg.CosNaming,\
- org.omg.CosNaming.NamingContextExtPackage,\
- org.omg.CosNaming.NamingContextPackage,\
- org.omg.Dynamic,\
- org.omg.DynamicAny,\
- org.omg.DynamicAny.DynAnyFactoryPackage,\
- org.omg.DynamicAny.DynAnyPackage,\
- org.omg.IOP,\
- org.omg.IOP.CodecFactoryPackage,\
- org.omg.IOP.CodecPackage,\
- org.omg.Messaging,\
- org.omg.PortableInterceptor,\
- org.omg.PortableInterceptor.ORBInitInfoPackage,\
- org.omg.PortableServer,\
- org.omg.PortableServer.CurrentPackage,\
- org.omg.PortableServer.POAManagerPackage,\
- org.omg.PortableServer.POAPackage,\
- org.omg.PortableServer.portable,\
- org.omg.PortableServer.ServantLocatorPackage,\
- org.omg.SendingContext,\
- org.omg.stub.java.rmi,\
- org.w3c.dom,\
- org.w3c.dom.bootstrap,\
- org.w3c.dom.css,\
- org.w3c.dom.events,\
- org.w3c.dom.html,\
- org.w3c.dom.ls,\
- org.w3c.dom.ranges,\
- org.w3c.dom.stylesheets,\
- org.w3c.dom.traversal,\
- org.w3c.dom.views ,\
- org.xml.sax,\
- org.xml.sax.ext,\
- org.xml.sax.helpers
-org.osgi.framework.bootdelegation = \
- com_cenqua_clover,\
- com.cenqua.*,\
- com.yourkit.*,\
- org.eclipse.virgo.nano.authentication,\
- com.sun.*,\
- javax.xml.*,\
- org.apache.xerces.jaxp.*,\
- org.w3c.*,\
- org.xml.*,\
- sun.*
-org.osgi.framework.executionenvironment = \
- OSGi/Minimum-1.0,\
- OSGi/Minimum-1.1,\
- J2SE-1.3,\
- J2SE-1.4,\
- J2SE-1.5,\
- JavaSE-1.6
-osgi.java.profile.name = SpringSource-dm-Server-Java6
diff --git a/org.eclipse.virgo.snaps.api/.classpath b/org.eclipse.virgo.snaps.api/.classpath
deleted file mode 100644
index 3b1b1a2..0000000
--- a/org.eclipse.virgo.snaps.api/.classpath
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java">
- <attributes>
- <attribute name="org.eclipse.virgo.ide.jdt.core.test.classpathentry" value="false"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" path="src/main/resources">
- <attributes>
- <attribute name="org.eclipse.virgo.ide.jdt.core.test.classpathentry" value="false"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java">
- <attributes>
- <attribute name="org.eclipse.virgo.ide.jdt.core.test.classpathentry" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources">
- <attributes>
- <attribute name="org.eclipse.virgo.ide.jdt.core.test.classpathentry" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.osgi/3.8.1.v20120830-144521/org.eclipse.osgi-3.8.1.v20120830-144521.jar" sourcepath="/IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.7.1.R37x_v20110808-1106/org.eclipse.osgi-sources-3.7.1.R37x_v20110808-1106.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar" sourcepath="/IVY_CACHE/javax.servlet/javax.servlet/3.0.0.v201103241009/javax.servlet-sources-3.0.0.v201103241009.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet.jsp/2.2.0.v201112011158/javax.servlet.jsp-2.2.0.v201112011158.jar" sourcepath="/IVY_CACHE/javax.servlet/javax.servlet.jsp/2.2.0.v201103241009/javax.servlet.jsp-sources-2.2.0.v201103241009.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.gemini/org.eclipse.gemini.web.core/2.2.5.RELEASE/org.eclipse.gemini.web.core-2.2.5.RELEASE.jar" sourcepath="/IVY_CACHE/org.eclipse.gemini/org.eclipse.gemini.web.core/2.2.5.RELEASE/org.eclipse.gemini.web.core-sources-2.2.5.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.junit/com.springsource.org.junit/4.7.0/com.springsource.org.junit-4.7.0.jar" sourcepath="/IVY_CACHE/org.junit/com.springsource.org.junit/4.7.0/com.springsource.org.junit-sources-4.7.0.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.test/3.1.0.RELEASE/org.springframework.test-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.test/3.1.0.RELEASE/org.springframework.test-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.easymock/com.springsource.org.easymock/2.3.0/com.springsource.org.easymock-2.3.0.jar" sourcepath="/IVY_CACHE/org.easymock/com.springsource.org.easymock/2.3.0/com.springsource.org.easymock-sources-2.3.0.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.core/3.1.0.RELEASE/org.springframework.core-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.core/3.1.0.RELEASE/org.springframework.core-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.aspectj/com.springsource.org.aspectj.runtime/1.6.12.RELEASE/com.springsource.org.aspectj.runtime-1.6.12.RELEASE.jar" sourcepath="/IVY_CACHE/org.aspectj/com.springsource.org.aspectj.runtime/1.6.12.RELEASE/com.springsource.org.aspectj.runtime-sources-1.6.12.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.test/org.eclipse.virgo.test.stubs/3.7.0.D-20140919122823/org.eclipse.virgo.test.stubs-3.7.0.D-20140919122823.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.test/org.eclipse.virgo.test.stubs/3.6.0.D-20120711092322/org.eclipse.virgo.test.stubs-sources-3.6.0.D-20120711092322.jar"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/org.eclipse.virgo.snaps.api/.project b/org.eclipse.virgo.snaps.api/.project
deleted file mode 100644
index 44213a7..0000000
--- a/org.eclipse.virgo.snaps.api/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.virgo.snaps.api</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.virgo.snaps.api/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/org.eclipse.virgo.snaps.api/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index 7d52032..0000000
--- a/org.eclipse.virgo.snaps.api/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../build.properties;../build.versions
-eclipse.preferences.version=1
diff --git a/org.eclipse.virgo.snaps.api/.settings/org.eclipse.wst.common.project.facet.core.xml b/org.eclipse.virgo.snaps.api/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/org.eclipse.virgo.snaps.api/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/org.eclipse.virgo.snaps.api/.settings/org.springframework.ide.eclipse.core.prefs b/org.eclipse.virgo.snaps.api/.settings/org.springframework.ide.eclipse.core.prefs
deleted file mode 100644
index 02fdc3c..0000000
--- a/org.eclipse.virgo.snaps.api/.settings/org.springframework.ide.eclipse.core.prefs
+++ /dev/null
@@ -1,67 +0,0 @@
-#Tue Jul 28 14:51:53 BST 2009
-eclipse.preferences.version=1
-org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true
-org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=true
-org.springframework.ide.eclipse.core.builders.enable.osgibundleupdater=true
-org.springframework.ide.eclipse.core.enable.project.preferences=false
-org.springframework.ide.eclipse.core.validator.enable.com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false
-org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.applicationSymbolicNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.applicationVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleActivationPolicyRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleActivatorRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleManifestVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleSymbolicNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.exportPackageRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.importRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.parsingProblemsRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.requireBundleRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.AvoidDriverManagerDataSource-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ImportElementsAtTopRulee-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ParentBeanSpecifiesAbstractClassRule-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.RefElementRule-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.TooManyBeansInFileRule-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UnnecessaryValueElementRule-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UseBeanInheritance-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.legacyxmlusage.jndiobjectfactory-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importBundleVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importLibraryVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importPackageVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.requireBundleVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
diff --git a/org.eclipse.virgo.snaps.api/.springBeans b/org.eclipse.virgo.snaps.api/.springBeans
deleted file mode 100644
index 8ce1035..0000000
--- a/org.eclipse.virgo.snaps.api/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.5.200906231226-RC1]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
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/build.xml b/org.eclipse.virgo.snaps.api/build.xml
deleted file mode 100644
index fc61a1c..0000000
--- a/org.eclipse.virgo.snaps.api/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.virgo.snaps.api">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../build.versions"/>
- <import file="${basedir}/../build-snaps/package-bundle.xml"/>
- <import file="${basedir}/../virgo-build/standard/default.xml"/>
-
-</project>
diff --git a/org.eclipse.virgo.snaps.api/ivy.xml b/org.eclipse.virgo.snaps.api/ivy.xml
deleted file mode 100644
index a10523a..0000000
--- a/org.eclipse.virgo.snaps.api/ivy.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd" version="1.3">
- <info organisation="${project.organisation}" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}"/>
- <artifact name="${ant.project.name}-sources" ext="jar" type="src"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.osgi" rev="${org.eclipse.osgi}" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="compile->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet.jsp" rev="${javax.servlet.jsp}" conf="compile->compile"/>
- <dependency org="org.eclipse.gemini" name="org.eclipse.gemini.web.core" rev="${org.eclipse.gemini.web}" conf="compile->compile" />
- <dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>
- <dependency org="org.springframework" name="org.springframework.test" rev="${org.springframework}" conf="test->runtime"/>
- <dependency org="org.springframework" name="org.springframework.core" rev="${org.springframework}" conf="test->runtime"/>
- <dependency org="org.easymock" name="com.springsource.org.easymock" rev="${org.easymock}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.test" name="org.eclipse.virgo.test.stubs" rev="${org.eclipse.virgo.test}" conf="test->runtime"/>
- </dependencies>
-
-</ivy-module>
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/.classpath b/org.eclipse.virgo.snaps.core/.classpath
deleted file mode 100644
index 9520727..0000000
--- a/org.eclipse.virgo.snaps.core/.classpath
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java">
- <attributes>
- <attribute name="org.eclipse.virgo.ide.jdt.core.test.classpathentry" value="false"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" path="src/main/resources">
- <attributes>
- <attribute name="org.eclipse.virgo.ide.jdt.core.test.classpathentry" value="false"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java">
- <attributes>
- <attribute name="org.eclipse.virgo.ide.jdt.core.test.classpathentry" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources">
- <attributes>
- <attribute name="org.eclipse.virgo.ide.jdt.core.test.classpathentry" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar" sourcepath="/IVY_CACHE/javax.servlet/javax.servlet/3.0.0.v201103241009/javax.servlet-sources-3.0.0.v201103241009.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.test/3.1.0.RELEASE/org.springframework.test-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.test/2.5.6.SEC01/org.springframework.test-sources-2.5.6.SEC01.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.junit/com.springsource.org.junit/4.7.0/com.springsource.org.junit-4.7.0.jar" sourcepath="/IVY_CACHE/org.junit/com.springsource.org.junit/4.7.0/com.springsource.org.junit-sources-4.7.0.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.apache.commons/com.springsource.org.apache.commons.logging/1.1.1/com.springsource.org.apache.commons.logging-1.1.1.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.easymock/com.springsource.org.easymock/2.3.0/com.springsource.org.easymock-2.3.0.jar" sourcepath="/IVY_CACHE/org.easymock/com.springsource.org.easymock/2.3.0/com.springsource.org.easymock-sources-2.3.0.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.deployer/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.deployer-3.7.0.D-20140919123907.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.deployer/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.deployer-sources-3.7.0.D-20140919123907.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.osgi/3.7.0.D-20140919122012/org.eclipse.virgo.util.osgi-3.7.0.D-20140919122012.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.osgi/3.7.0.D-20140919122012/org.eclipse.virgo.util.osgi-sources-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.osgi.manifest/3.7.0.D-20140919122012/org.eclipse.virgo.util.osgi.manifest-3.7.0.D-20140919122012.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.osgi.manifest/3.7.0.D-20140919122012/org.eclipse.virgo.util.osgi.manifest-sources-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.osgi/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.osgi-3.7.0.D-20140919123907.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.osgi/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.osgi-sources-3.7.0.D-20140919123907.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.gemini/org.eclipse.gemini.web.core/2.2.5.RELEASE/org.eclipse.gemini.web.core-2.2.5.RELEASE.jar" sourcepath="/IVY_CACHE/org.eclipse.gemini/org.eclipse.gemini.web.core/2.2.5.RELEASE/org.eclipse.gemini.web.core-sources-2.2.5.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.slf4j.api/1.7.2.v20121108-1250/org.slf4j.api-1.7.2.v20121108-1250.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.io/3.7.0.D-20140919122012/org.eclipse.virgo.util.io-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.gemini/org.eclipse.gemini.web.tomcat/2.2.5.RELEASE/org.eclipse.gemini.web.tomcat-2.2.5.RELEASE.jar" sourcepath="/IVY_CACHE/org.eclipse.gemini/org.eclipse.gemini.web.tomcat/2.2.5.RELEASE/org.eclipse.gemini.web.tomcat-sources-2.2.5.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.common/3.7.0.D-20140919122012/org.eclipse.virgo.util.common-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.core/3.1.0.RELEASE/org.springframework.core-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.core/3.1.0.RELEASE/org.springframework.core-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.catalina/7.0.56.v201412180755/org.apache.catalina-7.0.56.v201412180755.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.mirrored/org.apache.catalina/7.0.56.v201412180755/org.apache.catalina.source-7.0.56.v201412180755.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.test/org.eclipse.virgo.test.stubs/3.7.0.D-20140919122823/org.eclipse.virgo.test.stubs-3.7.0.D-20140919122823.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.test/org.eclipse.virgo.test.stubs/3.6.0.D-20120711092322/org.eclipse.virgo.test.stubs-sources-3.6.0.D-20120711092322.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.parser.manifest/3.7.0.D-20140919122012/org.eclipse.virgo.util.parser.manifest-3.7.0.D-20140919122012.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.parser.manifest/3.7.0.D-20140919122012/org.eclipse.virgo.util.parser.manifest-sources-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.aspectj/com.springsource.org.aspectj.runtime/1.6.12.RELEASE/com.springsource.org.aspectj.runtime-1.6.12.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.slf4j.nop/1.7.2.v201212060727/org.slf4j.nop-1.7.2.v201212060727.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.mirrored/org.slf4j.nop/1.7.2.v201212060727/org.slf4j.nop.source-1.7.2.v201212060727.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.medic/org.eclipse.virgo.medic.core/3.7.0.D-20140919123043/org.eclipse.virgo.medic.core-3.7.0.D-20140919123043.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.medic/org.eclipse.virgo.medic/1.0.0.CI-B20/org.eclipse.virgo.medic-sources-1.0.0.CI-B20.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.medic/org.eclipse.virgo.medic/3.7.0.D-20140919123043/org.eclipse.virgo.medic-3.7.0.D-20140919123043.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.artifact/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.artifact-3.7.0.D-20140919123907.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.artifact/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.artifact-sources-3.7.0.D-20140919123907.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.nano/org.eclipse.virgo.nano.core/3.7.0.D-20140919123318/org.eclipse.virgo.nano.core-3.7.0.D-20140919123318.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.core/3.7.0.D-20140919123318/org.eclipse.virgo.kernel.core-sources-3.7.0.D-20140919123318.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.osgi/3.8.1.v20120830-144521/org.eclipse.osgi-3.8.1.v20120830-144521.jar" sourcepath="/IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.7.1.R37x_v20110808-1106/org.eclipse.osgi-sources-3.7.1.R37x_v20110808-1106.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.nano/org.eclipse.virgo.nano.deployer.api/3.7.0.D-20140919123318/org.eclipse.virgo.nano.deployer.api-3.7.0.D-20140919123318.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.medic/org.eclipse.virgo.medic.test/3.7.0.D-20140919123043/org.eclipse.virgo.medic.test-3.7.0.D-20140919123043.jar"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/org.eclipse.virgo.snaps.core/.project b/org.eclipse.virgo.snaps.core/.project
deleted file mode 100644
index a85fe4e..0000000
--- a/org.eclipse.virgo.snaps.core/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.virgo.snaps.core</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.virgo.snaps.core/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/org.eclipse.virgo.snaps.core/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index 7d52032..0000000
--- a/org.eclipse.virgo.snaps.core/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../build.properties;../build.versions
-eclipse.preferences.version=1
diff --git a/org.eclipse.virgo.snaps.core/.settings/org.eclipse.wst.common.project.facet.core.xml b/org.eclipse.virgo.snaps.core/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/org.eclipse.virgo.snaps.core/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/org.eclipse.virgo.snaps.core/.settings/org.springframework.ide.eclipse.beans.core.prefs b/org.eclipse.virgo.snaps.core/.settings/org.springframework.ide.eclipse.beans.core.prefs
deleted file mode 100644
index 6b2ea27..0000000
--- a/org.eclipse.virgo.snaps.core/.settings/org.springframework.ide.eclipse.beans.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jul 21 14:28:24 BST 2009
-eclipse.preferences.version=1
-org.springframework.ide.eclipse.beans.core.ignoreMissingNamespaceHandler=false
diff --git a/org.eclipse.virgo.snaps.core/.settings/org.springframework.ide.eclipse.core.prefs b/org.eclipse.virgo.snaps.core/.settings/org.springframework.ide.eclipse.core.prefs
deleted file mode 100644
index a44974b..0000000
--- a/org.eclipse.virgo.snaps.core/.settings/org.springframework.ide.eclipse.core.prefs
+++ /dev/null
@@ -1,67 +0,0 @@
-#Wed Jul 29 11:21:17 BST 2009
-eclipse.preferences.version=1
-org.springframework.ide.eclipse.core.builders.enable.aopreferencemodelbuilder=true
-org.springframework.ide.eclipse.core.builders.enable.beanmetadatabuilder=true
-org.springframework.ide.eclipse.core.builders.enable.osgibundleupdater=true
-org.springframework.ide.eclipse.core.enable.project.preferences=false
-org.springframework.ide.eclipse.core.validator.enable.com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.enable.com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.core.springvalidator=false
-org.springframework.ide.eclipse.core.validator.enable.org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.applicationSymbolicNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.applicationVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleActivationPolicyRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleActivatorRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleManifestVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleSymbolicNameRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.bundleVersionRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.exportPackageRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.importRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.parsingProblemsRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.server.ide.manifest.core.requireBundleRule-com.springsource.server.ide.manifest.core.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.AvoidDriverManagerDataSource-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ImportElementsAtTopRulee-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.ParentBeanSpecifiesAbstractClassRule-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.RefElementRule-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.TooManyBeansInFileRule-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UnnecessaryValueElementRule-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.com.springsource.sts.bestpractices.UseBeanInheritance-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.bestpractices.legacyxmlusage.jndiobjectfactory-com.springsource.sts.bestpractices.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importBundleVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importLibraryVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.importPackageVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.com.springsource.sts.server.quickfix.requireBundleVersionRule-com.springsource.sts.server.quickfix.manifestvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanAlias-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanClass-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanConstructorArgument-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinition-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanDefinitionHolder-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanFactory-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanInitDestroyMethod-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.beanReference-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.methodOverride-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.parsingProblems-org.springframework.ide.eclipse.beans.core.beansvalidator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.beans.core.requiredProperty-org.springframework.ide.eclipse.beans.core.beansvalidator=false
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.core.springClasspath-org.springframework.ide.eclipse.core.springvalidator=false
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.action-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.actionstate-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attribute-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.attributemapper-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.beanaction-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationaction-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.evaluationresult-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.exceptionhandler-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.import-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.inputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.mapping-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.outputattribute-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.set-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.state-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.subflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.transition-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.variable-org.springframework.ide.eclipse.webflow.core.validator=true
-org.springframework.ide.eclipse.core.validator.rule.enable.org.springframework.ide.eclipse.webflow.core.validation.webflowstate-org.springframework.ide.eclipse.webflow.core.validator=true
diff --git a/org.eclipse.virgo.snaps.core/.springBeans b/org.eclipse.virgo.snaps.core/.springBeans
deleted file mode 100644
index e0180c6..0000000
--- a/org.eclipse.virgo.snaps.core/.springBeans
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.5.200906231226-RC1]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- <config>src/main/resources/META-INF/spring/module-context.xml</config>
- <config>src/main/resources/META-INF/spring/osgi-context.xml</config>
- </configs>
- <configSets>
- <configSet>
- <name><![CDATA[snaps-core]]></name>
- <allowBeanDefinitionOverriding>true</allowBeanDefinitionOverriding>
- <incomplete>false</incomplete>
- <configs>
- <config>src/main/resources/META-INF/spring/module-context.xml</config>
- <config>src/main/resources/META-INF/spring/osgi-context.xml</config>
- </configs>
- </configSet>
- </configSets>
-</beansProjectDescription>
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/build.xml b/org.eclipse.virgo.snaps.core/build.xml
deleted file mode 100644
index 1a02c5d..0000000
--- a/org.eclipse.virgo.snaps.core/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.virgo.snaps.core">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../build.versions"/>
- <import file="${basedir}/../build-snaps/package-bundle.xml"/>
- <import file="${basedir}/../virgo-build/standard/default.xml"/>
-
-</project>
diff --git a/org.eclipse.virgo.snaps.core/ivy.xml b/org.eclipse.virgo.snaps.core/ivy.xml
deleted file mode 100644
index a370e77..0000000
--- a/org.eclipse.virgo.snaps.core/ivy.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd" version="1.3">
- <info organisation="${project.organisation}" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.osgi" rev="${org.eclipse.osgi}" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="compile->runtime"/>
- <dependency org="org.eclipse.virgo.snaps" name="org.eclipse.virgo.snaps.api" rev="latest.integration" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.nano" name="org.eclipse.virgo.nano.deployer.api" rev="${org.eclipse.virgo.nano}" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.kernel" name="org.eclipse.virgo.kernel.deployer" rev="${org.eclipse.virgo.kernel}" conf="compile->compile"/>
- <dependency org="org.eclipse.gemini" name="org.eclipse.gemini.web.core" rev="${org.eclipse.gemini.web}" conf="compile->compile"/>
- <dependency org="org.eclipse.gemini" name="org.eclipse.gemini.web.tomcat" rev="${org.eclipse.gemini.web}" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.util" name="org.eclipse.virgo.util.common" rev="${org.eclipse.virgo.util}" conf="compile->runtime"/>
- <dependency org="org.eclipse.virgo.util" name="org.eclipse.virgo.util.osgi.manifest" rev="${org.eclipse.virgo.util}" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.util" name="org.eclipse.virgo.util.osgi" rev="${org.eclipse.virgo.util}" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.api" rev="${org.slf4j.api}" conf="compile->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic" rev="${org.eclipse.virgo.medic}" conf="compile->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.apache.catalina" rev="${org.apache.catalina}" conf="compile->runtime"/>
- <dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic.core" rev="${org.eclipse.virgo.medic}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic.test" rev="${org.eclipse.virgo.medic}" conf="test->runtime"/>
- <dependency org="org.springframework" name="org.springframework.test" rev="${org.springframework}" conf="test->compile"/>
- <dependency org="org.springframework" name="org.springframework.core" rev="${org.springframework}" conf="test->compile"/>
- <dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>
- <dependency org="org.easymock" name="com.springsource.org.easymock" rev="${org.easymock}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.test" name="org.eclipse.virgo.test.stubs" rev="${org.eclipse.virgo.test}" conf="test->runtime"/>
-
- <!-- Override util from Gemini Web -->
- <override org="org.eclipse.virgo.util" rev="${org.eclipse.virgo.util}"/>
-
- </dependencies>
-
-</ivy-module>
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/Snap.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/Snap.java
index 189bc61..d39f124 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/Snap.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/Snap.java
@@ -30,4 +30,6 @@
String getContextPath();
Properties getSnapProperties();
+
+ void addHost(Host host);
}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapFactoryMonitor.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapFactoryMonitor.java
index 11fcf9e..7318365 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapFactoryMonitor.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapFactoryMonitor.java
@@ -162,26 +162,32 @@
Bundle hostBundle = hostReference.getBundle();
- SnapLifecycleState newState = SnapLifecycleState.INIT_FAILED;
-
- Snap snap = this.factory.createSnap(new Host(hostBundle, servletContext, new RequestRouter(this.snapRegistry, servletContext)));
- try {
- logger.info("Initializing snap '{}'", snap.getContextPath());
- snap.init();
-
- newState = SnapLifecycleState.INIT_SUCCEEDED;
-
- logger.info("Publishing snap '{}'", snap.getContextPath());
- publishSnapService(snap, hostBundle);
-
- } catch (ServletException e) {
- this.eventLogger.log(SnapsLogEvents.SNAP_INIT_FAILURE, SnapUtils.boundContextPath(servletContext.getContextPath(), snap.getContextPath()));
- } finally {
- synchronized (this.snapStateMonitor) {
- if (newState == SnapLifecycleState.INIT_SUCCEEDED) {
- this.snap = snap;
- }
- }
+ Host host = new Host(hostBundle, servletContext, new RequestRouter(this.snapRegistry, servletContext));
+
+ synchronized (this.snapStateMonitor) {
+ if (this.factory.hasSnap()) {
+ Snap snap = this.factory.getSnap();
+ snap.addHost(host);
+ publishSnapService(snap, hostBundle);
+ } else {
+ SnapLifecycleState newState = SnapLifecycleState.INIT_FAILED;
+ Snap snap = this.factory.createSnap(host);
+ try {
+ logger.info("Initializing snap '{}'", snap.getContextPath());
+ snap.init();
+
+ newState = SnapLifecycleState.INIT_SUCCEEDED;
+
+ logger.info("Publishing snap '{}'", snap.getContextPath());
+ publishSnapService(snap, hostBundle);
+ } catch (ServletException e) {
+ this.eventLogger.log(SnapsLogEvents.SNAP_INIT_FAILURE, SnapUtils.boundContextPath(servletContext.getContextPath(), snap.getContextPath()));
+ } finally {
+ if (newState == SnapLifecycleState.INIT_SUCCEEDED) {
+ this.snap = snap;
+ }
+ }
+ }
}
}
}
@@ -217,7 +223,11 @@
private void unregisterHostListener() {
logger.info("No longer listening for hosts to be registered.");
- this.context.removeServiceListener(this);
+ try {
+ this.context.removeServiceListener(this);
+ } catch (IllegalStateException e) {
+ logger.warn("Could not remove host listener. Reason: " + e.getMessage());
+ }
}
public void serviceChanged(ServiceEvent event) {
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapHostDefinition.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapHostDefinition.java
index e84df10..c6374f5 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapHostDefinition.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapHostDefinition.java
@@ -11,19 +11,20 @@
package org.eclipse.virgo.snaps.core.internal;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.eclipse.virgo.snaps.core.internal.deployer.SnapFactory;
-import org.osgi.framework.Constants;
-import org.osgi.framework.ServiceReference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import org.eclipse.virgo.util.osgi.manifest.VersionRange;
import org.eclipse.virgo.util.osgi.manifest.parse.HeaderDeclaration;
import org.eclipse.virgo.util.osgi.manifest.parse.HeaderParser;
import org.eclipse.virgo.util.osgi.manifest.parse.HeaderParserFactory;
import org.eclipse.virgo.util.osgi.manifest.parse.ParserLogger;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public final class SnapHostDefinition {
@@ -46,18 +47,22 @@
return this.versionRange;
}
- public static SnapHostDefinition parse(String descriptor) {
+ public static Set<SnapHostDefinition> parse(String descriptor) {
HeaderParser parser = createHeaderParser();
List<HeaderDeclaration> header = parser.parseHeader(descriptor);
- if (header == null || header.size() != 1) {
+ if (header == null) {
logger.error("Invalid Snap-Host header '{}'", descriptor);
throw new IllegalArgumentException("Invalid Snap-Host header '" + descriptor + "'");
}
- HeaderDeclaration declaration = header.get(0);
- String factoryName = declaration.getNames().get(0);
- String rangeString = declaration.getAttributes().get(Constants.VERSION_ATTRIBUTE);
- return createSnapHostDefinition(factoryName, rangeString);
+ Set<SnapHostDefinition> hostDefinitions = new HashSet<SnapHostDefinition>();
+ for (HeaderDeclaration declaration:header) {
+ String factoryName = declaration.getNames().get(0);
+ String rangeString = declaration.getAttributes().get(Constants.VERSION_ATTRIBUTE);
+ hostDefinitions.add(createSnapHostDefinition(factoryName, rangeString));
+ }
+
+ return hostDefinitions;
}
public static SnapHostDefinition fromServiceReference(ServiceReference<SnapFactory> snapFactoryReference) {
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapUtils.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapUtils.java
index 2db87b3..664a1be 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapUtils.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/SnapUtils.java
@@ -11,11 +11,12 @@
package org.eclipse.virgo.snaps.core.internal;
+import java.util.Set;
+
import javax.servlet.http.HttpServletRequest;
-import org.osgi.framework.Bundle;
-
import org.eclipse.virgo.util.osgi.manifest.BundleManifest;
+import org.osgi.framework.Bundle;
public final class SnapUtils {
@@ -48,7 +49,7 @@
return manifest.getHeader(HEADER_SNAP_HOST) != null;
}
- public static SnapHostDefinition getSnapHostHeader(BundleManifest manifest) {
+ public static Set<SnapHostDefinition> getSnapHostHeader(BundleManifest manifest) {
String header = manifest.getHeader(HEADER_SNAP_HOST);
return (header == null ? null : SnapHostDefinition.parse(header));
}
@@ -62,7 +63,7 @@
}
/**
- * Catenate the host and snap context paths, <i>unless</i> host context path ends with a path separator.<br/>
+ * Concatenate the host and snap context paths, <i>unless</i> host context path ends with a path separator.<br/>
* <code>null</code> {@link String}s are converted to the empty string <code>""</code>.
* @param hostContextPath the host context path
* @param snapContextPath the snap context path
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapFactory.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapFactory.java
index 03de854..4572303 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapFactory.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapFactory.java
@@ -16,9 +16,13 @@
public interface SnapFactory {
- static final String FACTORY_NAME_PROPERTY = "snap.factory.host.name";
+ String FACTORY_NAME_PROPERTY = "snap.factory.host.name";
- static final String FACTORY_RANGE_PROPERTY = "snap.factory.host.range";
+ String FACTORY_RANGE_PROPERTY = "snap.factory.host.range";
Snap createSnap(Host host);
+
+ boolean hasSnap();
+
+ Snap getSnap();
}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapLifecycleListener.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapLifecycleListener.java
index 1fb702d..ef186d6 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapLifecycleListener.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapLifecycleListener.java
@@ -13,28 +13,29 @@
import java.io.IOException;
import java.util.Dictionary;
+import java.util.HashSet;
import java.util.Hashtable;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import org.eclipse.gemini.web.tomcat.spi.WebBundleClassLoaderFactory;
+import org.eclipse.virgo.kernel.install.artifact.BundleInstallArtifact;
+import org.eclipse.virgo.kernel.install.artifact.InstallArtifact;
+import org.eclipse.virgo.kernel.install.artifact.InstallArtifactLifecycleListenerSupport;
+import org.eclipse.virgo.medic.eventlog.EventLogger;
+import org.eclipse.virgo.nano.deployer.api.core.DeploymentException;
+import org.eclipse.virgo.nano.shim.scope.Scope;
import org.eclipse.virgo.snaps.core.internal.SnapHostDefinition;
import org.eclipse.virgo.snaps.core.internal.SnapUtils;
import org.eclipse.virgo.snaps.core.internal.webapp.WebAppSnapFactory;
+import org.eclipse.virgo.util.osgi.ServiceRegistrationTracker;
+import org.eclipse.virgo.util.osgi.manifest.BundleManifest;
import org.osgi.framework.Bundle;
import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.eclipse.virgo.nano.deployer.api.core.DeploymentException;
-import org.eclipse.virgo.kernel.install.artifact.BundleInstallArtifact;
-import org.eclipse.virgo.kernel.install.artifact.InstallArtifact;
-import org.eclipse.virgo.kernel.install.artifact.InstallArtifactLifecycleListenerSupport;
-import org.eclipse.virgo.nano.shim.scope.Scope;
-import org.eclipse.virgo.medic.eventlog.EventLogger;
-import org.eclipse.gemini.web.tomcat.spi.WebBundleClassLoaderFactory;
-import org.eclipse.virgo.util.osgi.ServiceRegistrationTracker;
-import org.eclipse.virgo.util.osgi.manifest.BundleManifest;
-
/**
* <strong>Concurrent Semantics</strong><br />
* Thread-safe.
@@ -64,28 +65,36 @@
Bundle bundle = ((BundleInstallArtifact) installArtifact).getBundle();
BundleManifest bundleManifest = getBundleManifest((BundleInstallArtifact) installArtifact);
- ServiceRegistration<SnapFactory> registration = createAndRegisterSnapFactoryService(bundle, bundleManifest);
+ Set<ServiceRegistration<SnapFactory>> registrations = createAndRegisterSnapFactoryService(bundle, bundleManifest);
- ServiceRegistrationTracker registrationTracker = new ServiceRegistrationTracker();
- registrationTracker.track(registration);
+ for (ServiceRegistration<SnapFactory> registration:registrations) {
+ ServiceRegistrationTracker registrationTracker = new ServiceRegistrationTracker();
+ registrationTracker.track(registration);
- this.registrationTrackers.put(installArtifact, registrationTracker);
+ this.registrationTrackers.put(installArtifact, registrationTracker);
+ }
}
}
- ServiceRegistration<SnapFactory> createAndRegisterSnapFactoryService(Bundle bundle, BundleManifest bundleManifest) {
+ Set<ServiceRegistration<SnapFactory>> createAndRegisterSnapFactoryService(Bundle bundle, BundleManifest bundleManifest) {
logger.info("Creating a SnapFactory for bundle '{}'", bundle);
SnapFactory snapFactory = new WebAppSnapFactory(bundle, this.classLoaderFactory, this.eventLogger);
- SnapHostDefinition hostDefinition = SnapUtils.getSnapHostHeader(bundleManifest);
+ Set<SnapHostDefinition> hostDefinitions = SnapUtils.getSnapHostHeader(bundleManifest);
- Dictionary<String, String> serviceProperties= new Hashtable<String, String>();
- serviceProperties.put(Scope.PROPERTY_SERVICE_SCOPE, Scope.SCOPE_ID_GLOBAL); // expose service outside any containing scope
- serviceProperties.put(SnapFactory.FACTORY_NAME_PROPERTY, hostDefinition.getSymbolicName());
- serviceProperties.put(SnapFactory.FACTORY_RANGE_PROPERTY, hostDefinition.getVersionRange().toParseString());
+ Set<ServiceRegistration<SnapFactory>> registrations = new HashSet<ServiceRegistration<SnapFactory>>();
+
+ for (SnapHostDefinition hostDefinition : hostDefinitions) {
+ Dictionary<String, String> serviceProperties= new Hashtable<String, String>();
+ serviceProperties.put(Scope.PROPERTY_SERVICE_SCOPE, Scope.SCOPE_ID_GLOBAL); // expose service outside any containing scope
+ serviceProperties.put(SnapFactory.FACTORY_NAME_PROPERTY, hostDefinition.getSymbolicName());
+ serviceProperties.put(SnapFactory.FACTORY_RANGE_PROPERTY, hostDefinition.getVersionRange().toParseString());
- ServiceRegistration<SnapFactory> registration = bundle.getBundleContext().registerService(SnapFactory.class, snapFactory, serviceProperties);
- return registration;
+ ServiceRegistration<SnapFactory> registration = bundle.getBundleContext().registerService(SnapFactory.class, snapFactory, serviceProperties);
+ registrations.add(registration);
+ }
+
+ return registrations;
}
static BundleManifest getBundleManifest(BundleInstallArtifact bundleInstallArtifact) throws DeploymentException {
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/SnapServletContext.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/SnapServletContext.java
index 82ab2c4..5c55e90 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/SnapServletContext.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/SnapServletContext.java
@@ -36,9 +36,8 @@
import javax.servlet.descriptor.JspConfigDescriptor;
import org.eclipse.virgo.snaps.core.internal.SnapException;
-import org.osgi.framework.Bundle;
-
import org.eclipse.virgo.util.common.IterableEnumeration;
+import org.osgi.framework.Bundle;
/**
* TODO Document SnapServletContext
@@ -52,13 +51,13 @@
public class SnapServletContext implements ServletContext {
private static final String HOST_PATH_PREFIX = "host:";
-
+
private final ServletContext delegate;
-
+
private final Bundle snapBundle;
-
+
private final String snapContextPath;
-
+
private final Map<String, Object> attributes = new ConcurrentHashMap<String, Object>();
public SnapServletContext(ServletContext delegate, Bundle snapBundle, String snapContextPath) {
@@ -66,7 +65,7 @@
this.snapBundle = snapBundle;
this.snapContextPath = snapContextPath;
}
-
+
public String getSnapContextPath() {
return this.snapContextPath;
}
@@ -81,7 +80,7 @@
if (attribute == null) {
attribute = delegate.getAttribute(name);
}
- return attribute;
+ return attribute;
}
/**
@@ -90,7 +89,7 @@
*/
public Enumeration<String> getAttributeNames() {
Set<String> attributeNamesSet = new HashSet<String>(this.attributes.keySet());
- IterableEnumeration<String> delegateAttributeNames = new IterableEnumeration<String>((Enumeration<String>)delegate.getAttributeNames());
+ IterableEnumeration<String> delegateAttributeNames = new IterableEnumeration<String>((Enumeration<String>) delegate.getAttributeNames());
for (String delegateAttributeName : delegateAttributeNames) {
attributeNamesSet.add(delegateAttributeName);
}
@@ -194,18 +193,18 @@
* @see javax.servlet.ServletContext#getResource(java.lang.String)
*/
public URL getResource(String path) throws MalformedURLException {
- boolean hostOnly = false;
+ boolean hostOnly = false;
if (path.startsWith(HOST_PATH_PREFIX)) {
path = path.substring(HOST_PATH_PREFIX.length());
hostOnly = true;
}
- if (path == null || !path.startsWith("/")) {
- throw new MalformedURLException(String.format("'%s' is not a valid resource path", path));
- }
- if(hostOnly){
- return delegate.getResource(path);
+ if (path == null || !path.startsWith("/")) {
+ throw new MalformedURLException(String.format("'%s' is not a valid resource path", path));
+ }
+ if (hostOnly) {
+ return delegate.getResource(path);
} else {
- URL resource = getLocalResource(path);
+ URL resource = getLocalResource(path);
if (resource == null) {
resource = delegate.getResource(path);
}
@@ -230,14 +229,14 @@
if (path.startsWith(HOST_PATH_PREFIX)) {
path = path.substring(HOST_PATH_PREFIX.length());
} else {
- URL resource = getLocalResource(path);
- if (resource != null) {
- try {
- return resource.openStream();
- } catch (IOException e) {
- throw new SnapException("Failed to open stream for resource " + resource + " in bundle " + this.snapBundle, e);
- }
- }
+ URL resource = getLocalResource(path);
+ if (resource != null) {
+ try {
+ return resource.openStream();
+ } catch (IOException e) {
+ throw new SnapException("Failed to open stream for resource " + resource + " in bundle " + this.snapBundle, e);
+ }
+ }
}
return delegate.getResourceAsStream(path);
}
@@ -247,21 +246,21 @@
* @return
* @see javax.servlet.ServletContext#getResourcePaths(java.lang.String)
*/
- public Set<String> getResourcePaths(String path) {
+ public Set<String> getResourcePaths(String path) {
Enumeration<?> entryPaths = this.snapBundle.getEntryPaths(path);
if (entryPaths == null) {
return null;
} else {
Set<String> resourcePaths = new HashSet<String>();
while (entryPaths.hasMoreElements()) {
- String entryPath = (String)entryPaths.nextElement();
+ String entryPath = (String) entryPaths.nextElement();
if (path.startsWith("/") && !entryPath.startsWith("/")) {
entryPath = "/" + entryPath;
}
- resourcePaths.add((String)entryPath);
+ resourcePaths.add((String) entryPath);
}
return resourcePaths;
- }
+ }
}
/**
@@ -353,133 +352,138 @@
this.attributes.put(name, object);
}
- @Override
- public int getEffectiveMajorVersion() {
- return this.delegate.getEffectiveMajorVersion();
- }
+ @Override
+ public int getEffectiveMajorVersion() {
+ return this.delegate.getEffectiveMajorVersion();
+ }
- @Override
- public int getEffectiveMinorVersion() {
- return this.delegate.getEffectiveMinorVersion();
- }
+ @Override
+ public int getEffectiveMinorVersion() {
+ return this.delegate.getEffectiveMinorVersion();
+ }
- @Override
- public boolean setInitParameter(String name, String value) {
- return this.delegate.setInitParameter(name, value);
- }
+ @Override
+ public boolean setInitParameter(String name, String value) {
+ return this.delegate.setInitParameter(name, value);
+ }
- @Override
- public Dynamic addServlet(String servletName, String className) {
- return this.delegate.addServlet(servletName, className);
- }
+ @Override
+ public Dynamic addServlet(String servletName, String className) {
+ return this.delegate.addServlet(servletName, className);
+ }
- @Override
- public Dynamic addServlet(String servletName, Servlet servlet) {
- return this.delegate.addServlet(servletName, servlet);
- }
+ @Override
+ public Dynamic addServlet(String servletName, Servlet servlet) {
+ return this.delegate.addServlet(servletName, servlet);
+ }
- @Override
- public Dynamic addServlet(String servletName, Class<? extends Servlet> servletClass) {
- return this.delegate.addServlet(servletName, servletClass);
- }
+ @Override
+ public Dynamic addServlet(String servletName, Class<? extends Servlet> servletClass) {
+ return this.delegate.addServlet(servletName, servletClass);
+ }
- @Override
- public <T extends Servlet> T createServlet(Class<T> clazz) throws ServletException {
- return this.delegate.createServlet(clazz);
- }
+ @Override
+ public <T extends Servlet> T createServlet(Class<T> clazz) throws ServletException {
+ return this.delegate.createServlet(clazz);
+ }
- @Override
- public ServletRegistration getServletRegistration(String servletName) {
- return this.delegate.getServletRegistration(servletName);
- }
+ @Override
+ public ServletRegistration getServletRegistration(String servletName) {
+ return this.delegate.getServletRegistration(servletName);
+ }
- @Override
- public Map<String, ? extends ServletRegistration> getServletRegistrations() {
- return this.delegate.getServletRegistrations();
- }
+ @Override
+ public Map<String, ? extends ServletRegistration> getServletRegistrations() {
+ return this.delegate.getServletRegistrations();
+ }
- @Override
- public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) {
- return this.delegate.addFilter(filterName, className);
- }
+ @Override
+ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, String className) {
+ return this.delegate.addFilter(filterName, className);
+ }
- @Override
- public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Filter filter) {
- return this.delegate.addFilter(filterName, filter);
- }
+ @Override
+ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Filter filter) {
+ return this.delegate.addFilter(filterName, filter);
+ }
- @Override
- public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends Filter> filterClass) {
- return this.delegate.addFilter(filterName, filterClass);
- }
+ @Override
+ public javax.servlet.FilterRegistration.Dynamic addFilter(String filterName, Class<? extends Filter> filterClass) {
+ return this.delegate.addFilter(filterName, filterClass);
+ }
- @Override
- public <T extends Filter> T createFilter(Class<T> clazz) throws ServletException {
- return this.delegate.createFilter(clazz);
- }
+ @Override
+ public <T extends Filter> T createFilter(Class<T> clazz) throws ServletException {
+ return this.delegate.createFilter(clazz);
+ }
- @Override
- public FilterRegistration getFilterRegistration(String filterName) {
- return this.delegate.getFilterRegistration(filterName);
- }
+ @Override
+ public FilterRegistration getFilterRegistration(String filterName) {
+ return this.delegate.getFilterRegistration(filterName);
+ }
- @Override
- public Map<String, ? extends FilterRegistration> getFilterRegistrations() {
- return this.delegate.getFilterRegistrations();
- }
+ @Override
+ public Map<String, ? extends FilterRegistration> getFilterRegistrations() {
+ return this.delegate.getFilterRegistrations();
+ }
- @Override
- public SessionCookieConfig getSessionCookieConfig() {
- return this.delegate.getSessionCookieConfig();
- }
+ @Override
+ public SessionCookieConfig getSessionCookieConfig() {
+ return this.delegate.getSessionCookieConfig();
+ }
- @Override
- public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes) {
- this.delegate.setSessionTrackingModes(sessionTrackingModes);
- }
+ @Override
+ public void setSessionTrackingModes(Set<SessionTrackingMode> sessionTrackingModes) {
+ this.delegate.setSessionTrackingModes(sessionTrackingModes);
+ }
- @Override
- public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
- return this.delegate.getDefaultSessionTrackingModes();
- }
+ @Override
+ public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
+ return this.delegate.getDefaultSessionTrackingModes();
+ }
- @Override
- public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
- return this.delegate.getEffectiveSessionTrackingModes();
- }
+ @Override
+ public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
+ return this.delegate.getEffectiveSessionTrackingModes();
+ }
- @Override
- public void addListener(String className) {
- this.delegate.addListener(className);
- }
+ @Override
+ public void addListener(String className) {
+ this.delegate.addListener(className);
+ }
- @Override
- public <T extends EventListener> void addListener(T t) {
- this.delegate.addListener(t);
- }
+ @Override
+ public <T extends EventListener> void addListener(T t) {
+ this.delegate.addListener(t);
+ }
- @Override
- public void addListener(Class<? extends EventListener> listenerClass) {
- this.delegate.addListener(listenerClass);
- }
+ @Override
+ public void addListener(Class<? extends EventListener> listenerClass) {
+ this.delegate.addListener(listenerClass);
+ }
- @Override
- public <T extends EventListener> T createListener(Class<T> clazz) throws ServletException {
- return this.delegate.createListener(clazz);
- }
+ @Override
+ public <T extends EventListener> T createListener(Class<T> clazz) throws ServletException {
+ return this.delegate.createListener(clazz);
+ }
- @Override
- public JspConfigDescriptor getJspConfigDescriptor() {
- return this.delegate.getJspConfigDescriptor();
- }
+ @Override
+ public JspConfigDescriptor getJspConfigDescriptor() {
+ return this.delegate.getJspConfigDescriptor();
+ }
- @Override
- public ClassLoader getClassLoader() {
- return this.delegate.getClassLoader();
- }
+ @Override
+ public ClassLoader getClassLoader() {
+ return this.delegate.getClassLoader();
+ }
- @Override
- public void declareRoles(String... roleNames) {
- this.delegate.declareRoles(roleNames);
- }
+ @Override
+ public void declareRoles(String... roleNames) {
+ this.delegate.declareRoles(roleNames);
+ }
+
+ @Override
+ public String getVirtualServerName() {
+ return this.delegate.getVirtualServerName();
+ }
}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/WebAppSnap.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/WebAppSnap.java
index 173720b..e63f3af 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/WebAppSnap.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/WebAppSnap.java
@@ -85,7 +85,7 @@
*
* @throws ServletException
*/
- public final void init() throws ServletException {
+ public synchronized final void init() throws ServletException {
logger.info("Initializing snap '{}'", this.contextPath);
WebXml webXml = BundleWebXmlLoader.loadWebXml(this.snapBundle);
SnapServletContext servletContext = new SnapServletContext(this.host.getServletContext(), this.snapBundle, this.contextPath);
@@ -179,4 +179,15 @@
}
return properties;
}
+
+ @Override
+ public synchronized void addHost(Host host) {
+ logger.info("Adding host '{}' to snap '{}'", host.getBundle(), this.contextPath);
+ SnapServletContext servletContext = new SnapServletContext(host.getServletContext(), this.snapBundle, this.contextPath);
+ servletContext.setAttribute(WebContainer.ATTRIBUTE_BUNDLE_CONTEXT, this.snapBundle.getBundleContext());
+
+ this.virtualContainer.addHost(servletContext);
+
+ this.eventLogger.log(SnapsLogEvents.SNAP_BOUND, SnapUtils.boundContextPath(host.getServletContext().getContextPath(), this.contextPath));
+ }
}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/WebAppSnapFactory.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/WebAppSnapFactory.java
index dfde7c8..d8bb9ef 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/WebAppSnapFactory.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/WebAppSnapFactory.java
@@ -31,6 +31,8 @@
private final EventLogger eventLogger;
+ private WebAppSnap webAppSnap;
+
public WebAppSnapFactory(Bundle snapBundle, WebBundleClassLoaderFactory webBundleClassLoaderFactory, EventLogger eventLogger) {
this.snapBundle = snapBundle;
this.classLoaderFactory = webBundleClassLoaderFactory;
@@ -39,7 +41,18 @@
public Snap createSnap(Host host) {
logger.info("Creating new snap that binds snap bundle '{}' to host bundle '{}'", this.snapBundle, host.getBundle());
- return new WebAppSnap(host, this.snapBundle, this.classLoaderFactory, this.eventLogger);
+ webAppSnap = new WebAppSnap(host, this.snapBundle, this.classLoaderFactory, this.eventLogger);
+ return webAppSnap;
}
+
+ @Override
+ public boolean hasSnap() {
+ return this.webAppSnap != null;
+ }
+
+ @Override
+ public Snap getSnap() {
+ return webAppSnap;
+ }
}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/FilterManager.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/FilterManager.java
index bb16747..edbbfc8 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/FilterManager.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/FilterManager.java
@@ -37,8 +37,8 @@
class FilterManager {
- private final SnapServletContext snapServletContext;
-
+ private final List<SnapServletContext> snapServletContexts = new ArrayList<>();
+
private final ClassLoader classLoader;
private final List<FilterHolder> filters = Collections.synchronizedList(new ArrayList<FilterHolder>());
@@ -47,22 +47,28 @@
private final List<ServletNameFilterMapping> servletNameFilterMappings = Collections.synchronizedList(new ArrayList<ServletNameFilterMapping>());
+ private WebXml webXml;
+
+ private Map<String, FilterHolder> filtersMap;
+
public FilterManager(WebXml webXml, SnapServletContext snapServletContext, ClassLoader classLoader) {
- this.snapServletContext = snapServletContext;
+ this.webXml = webXml;
+ this.snapServletContexts.add(snapServletContext);
this.classLoader = classLoader;
- reifyWebXml(webXml);
+ this.filtersMap = processFilters();
+ reifyWebXml(snapServletContext);
}
- private void reifyWebXml(WebXml webXml) {
- Map<String, FilterHolder> filters = processFilters(webXml);
- processFilterMappings(webXml, filters);
- }
+ private void reifyWebXml(SnapServletContext snapServletContext) {
+ processUrlPatternFilterMappings(snapServletContext);
+ processServletNameFilterMappings();
+ }
- private Map<String, FilterHolder> processFilters(WebXml webXml) throws SnapException {
+ private Map<String, FilterHolder> processFilters() throws SnapException {
Map<String, FilterHolder> filtersMap = new HashMap<String, FilterHolder>();
- for (FilterDefinition filterDefinition : webXml.getFilterDefinitions()) {
+ for (FilterDefinition filterDefinition : this.webXml.getFilterDefinitions()) {
try {
Class<?> filterClass = ManagerUtils.loadComponentClass(filterDefinition.getFilterClassName(), this.classLoader);
if (Filter.class.isAssignableFrom(filterClass)) {
@@ -86,24 +92,26 @@
return filtersMap;
}
- private void processFilterMappings(WebXml webXml, Map<String, FilterHolder> filters) throws SnapException {
- for (UrlPatternFilterMappingDefinition definition : webXml.getUrlPatternFilterMappingDefinitions()) {
- Filter filter = filters.get(definition.getFilterName()).getInstance();
- this.urlPatternFilterMappings.add(new UrlPatternFilterMapping(filter, ManagerUtils.expandMapping(definition.getUrlPattern(), this.snapServletContext), definition.getFilterDispatcherTypes()));
- }
-
- for (ServletNameFilterMappingDefinition definition : webXml.getServletNameFilterMappingDefinitions()) {
- Filter filter = filters.get(definition.getFilterName()).getInstance();
- this.servletNameFilterMappings.add(new ServletNameFilterMapping(filter, definition.getServletName(), definition.getFilterDispatcherTypes()));
+ private void processUrlPatternFilterMappings(SnapServletContext snapServletContext) throws SnapException {
+ for (UrlPatternFilterMappingDefinition definition : this.webXml.getUrlPatternFilterMappingDefinitions()) {
+ Filter filter = this.filtersMap.get(definition.getFilterName()).getInstance();
+ this.urlPatternFilterMappings.add(new UrlPatternFilterMapping(filter, ManagerUtils.expandMapping(definition.getUrlPattern(), snapServletContext), definition.getFilterDispatcherTypes()));
}
}
+
+ private void processServletNameFilterMappings() {
+ for (ServletNameFilterMappingDefinition definition : this.webXml.getServletNameFilterMappingDefinitions()) {
+ Filter filter = this.filtersMap.get(definition.getFilterName()).getInstance();
+ this.servletNameFilterMappings.add(new ServletNameFilterMapping(filter, definition.getServletName(), definition.getFilterDispatcherTypes()));
+ }
+ }
void init() throws ServletException {
try {
ManagerUtils.doWithThreadContextClassLoader(this.classLoader, new ClassLoaderCallback<Void>() {
public Void doWithClassLoader() throws ServletException {
for (FilterHolder filterHolder : filters) {
- FilterConfig config = new ImmutableFilterConfig(filterHolder.getDefinition(), snapServletContext);
+ FilterConfig config = new ImmutableFilterConfig(filterHolder.getDefinition(), snapServletContexts.get(0));
try {
filterHolder.getInstance().init(config);
} catch (ServletException se) {
@@ -187,4 +195,9 @@
return this.dispatcherTypes.contains(dispatcherType) && this.servletName.equals(servletName);
}
}
+
+ public void addSnapServletContext(SnapServletContext snapServletContext) {
+ this.snapServletContexts.add(snapServletContext);
+ processUrlPatternFilterMappings(snapServletContext);
+ }
}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/HttpServletRequestWrapper.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/HttpServletRequestWrapper.java
index d68a2e1..aaaeea6 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/HttpServletRequestWrapper.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/HttpServletRequestWrapper.java
@@ -32,6 +32,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpUpgradeHandler;
import javax.servlet.http.Part;
/**
@@ -502,85 +503,108 @@
/**
* {@inheritDoc}
*/
- public ServletContext getServletContext() {
- return this.delegate.getServletContext();
- }
+ public ServletContext getServletContext() {
+ return this.delegate.getServletContext();
+ }
/**
* {@inheritDoc}
*/
- public AsyncContext startAsync() throws IllegalStateException {
- return this.delegate.startAsync();
- }
+ public AsyncContext startAsync() throws IllegalStateException {
+ return this.delegate.startAsync();
+ }
/**
* {@inheritDoc}
*/
- public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException {
- return this.delegate.startAsync(servletRequest, servletResponse);
- }
+ public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException {
+ return this.delegate.startAsync(servletRequest, servletResponse);
+ }
/**
* {@inheritDoc}
*/
- public boolean isAsyncStarted() {
- return this.delegate.isAsyncStarted();
- }
+ public boolean isAsyncStarted() {
+ return this.delegate.isAsyncStarted();
+ }
/**
* {@inheritDoc}
*/
- public boolean isAsyncSupported() {
- return this.delegate.isAsyncSupported();
- }
+ public boolean isAsyncSupported() {
+ return this.delegate.isAsyncSupported();
+ }
/**
* {@inheritDoc}
*/
- public AsyncContext getAsyncContext() {
- return this.delegate.getAsyncContext();
- }
+ public AsyncContext getAsyncContext() {
+ return this.delegate.getAsyncContext();
+ }
/**
* {@inheritDoc}
*/
- public DispatcherType getDispatcherType() {
- return this.delegate.getDispatcherType();
- }
+ public DispatcherType getDispatcherType() {
+ return this.delegate.getDispatcherType();
+ }
/**
* {@inheritDoc}
*/
- public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
- return this.delegate.authenticate(response);
- }
+ public boolean authenticate(HttpServletResponse response) throws IOException, ServletException {
+ return this.delegate.authenticate(response);
+ }
/**
* {@inheritDoc}
*/
- public void login(String username, String password) throws ServletException {
- this.delegate.login(username, password);
- }
+ public void login(String username, String password) throws ServletException {
+ this.delegate.login(username, password);
+ }
/**
* {@inheritDoc}
*/
- public void logout() throws ServletException {
- this.delegate.logout();
- }
+ public void logout() throws ServletException {
+ this.delegate.logout();
+ }
/**
* {@inheritDoc}
*/
- public Collection<Part> getParts() throws IOException, ServletException {
- return this.delegate.getParts();
- }
+ public Collection<Part> getParts() throws IOException, ServletException {
+ return this.delegate.getParts();
+ }
/**
* {@inheritDoc}
*/
- public Part getPart(String name) throws IOException, ServletException {
- return this.delegate.getPart(name);
- }
+ public Part getPart(String name) throws IOException, ServletException {
+ return this.delegate.getPart(name);
+ }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public long getContentLengthLong() {
+ return this.delegate.getContentLengthLong();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String changeSessionId() {
+ return this.delegate.changeSessionId();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public <T extends HttpUpgradeHandler> T upgrade(Class<T> arg0) throws IOException, ServletException {
+ return this.delegate.upgrade(arg0);
+ }
}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/ServletManager.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/ServletManager.java
index 9f49f74..c168168 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/ServletManager.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/ServletManager.java
@@ -12,6 +12,8 @@
package org.eclipse.virgo.snaps.core.internal.webapp.container;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -45,19 +47,22 @@
private final Logger logger = LoggerFactory.getLogger(this.getClass());
- private final SnapServletContext snapServletContext;
+ private final List<SnapServletContext> snapServletContexts = new ArrayList<>();
private final ClassLoader classLoader;
private final UrlPatternMatcher patternMatcher = new UrlPatternMatcher();
private final Map<String, ServletHolder> servlets = new ConcurrentHashMap<String, ServletHolder>();
+
+ private WebXml webXml;
ServletManager(WebXml webXml, SnapServletContext snapServletContext, ClassLoader classLoader) {
- this.snapServletContext = snapServletContext;
+ this.webXml = webXml;
+ this.snapServletContexts.add(snapServletContext);
this.classLoader = classLoader;
- reifyWebXml(webXml);
+ reifyWebXml(snapServletContext);
}
void init() throws ServletException {
@@ -67,7 +72,7 @@
public Void doWithClassLoader() throws ServletException {
for (Map.Entry<String, ServletHolder> entry : servlets.entrySet()) {
ServletHolder holder = entry.getValue();
- ServletConfig config = new ImmutableServletConfig(holder.getDefinition(), snapServletContext);
+ ServletConfig config = new ImmutableServletConfig(holder.getDefinition(), snapServletContexts.get(0));
holder.getInstance().init(config);
// TODO Log which servlet failed, and re-throw
}
@@ -98,13 +103,13 @@
}
}
- private void reifyWebXml(WebXml webXml) {
- processServlets(webXml);
- processServletMappingDefinitions(webXml);
+ private void reifyWebXml(SnapServletContext snapServletContext) {
+ processServlets();
+ processServletMappingDefinitions(snapServletContext);
}
- private void processServlets(WebXml webXml) throws SnapException {
- for (ServletDefinition servletDefinition : webXml.getServletDefinitions()) {
+ private void processServlets( ) throws SnapException {
+ for (ServletDefinition servletDefinition : this.webXml.getServletDefinitions()) {
try {
Class<?> servletClass = ManagerUtils.loadComponentClass(servletDefinition.getServletClassName(), this.classLoader);
Servlet servlet = (Servlet) servletClass.newInstance();
@@ -126,10 +131,10 @@
}
}
- private void processServletMappingDefinitions(WebXml webXml) {
- for (ServletMappingDefinition mappingDefinition : webXml.getServletMappingDefinitions()) {
+ private void processServletMappingDefinitions(SnapServletContext snapServletContext) {
+ for (ServletMappingDefinition mappingDefinition : this.webXml.getServletMappingDefinitions()) {
this.patternMatcher.addMapping(mappingDefinition.getServletName(), ManagerUtils.expandMapping(mappingDefinition.getUrlPattern(),
- this.snapServletContext));
+ snapServletContext));
// TODO Validate, probably in WebXml, the referenced servlets exist, etc.
}
}
@@ -159,4 +164,9 @@
return mapping;
}
}
+
+ public void addSnapServletContext(SnapServletContext snapServletContext) {
+ this.snapServletContexts.add(snapServletContext);
+ processServletMappingDefinitions(snapServletContext);
+ }
}
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..05b2c6e 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,10 +19,13 @@
import org.eclipse.virgo.snaps.core.internal.webapp.SnapServletContext;
-
+@SuppressWarnings("deprecation")
public final class SnapHttpSession extends HttpSessionWrapper {
private static final String QUALIFIED_NAME_MARKER = "##";
+
+ // This constant should have the same value as within org.springframework.aop.scope.ScopedProxyUtils
+ private static final String TARGET_NAME_PREFIX = "scopedTarget.";
private final SnapServletContext snapServletContext;
@@ -48,18 +51,23 @@
@Override
public void removeAttribute(String name) {
super.removeAttribute(qualifyName(name));
+ if (name.startsWith(TARGET_NAME_PREFIX)) {
+ super.removeAttribute(name);
+ }
}
@Override
public void setAttribute(String name, Object value) {
super.setAttribute(qualifyName(name), value);
+ if (name.startsWith(TARGET_NAME_PREFIX)) {
+ super.setAttribute(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/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/StandardVirtualContainer.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/StandardVirtualContainer.java
index e9bdbae..15d4205 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/StandardVirtualContainer.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/StandardVirtualContainer.java
@@ -93,4 +93,10 @@
public SnapServletContext getSnapServletContext() {
return this.snapServletContext;
}
+
+ @Override
+ public void addHost(SnapServletContext servletContext) {
+ this.servletManager.addSnapServletContext(servletContext);
+ this.filterManager.addSnapServletContext(servletContext);
+ }
}
diff --git a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/VirtualContainer.java b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/VirtualContainer.java
index ba0e4ee..a15c433 100644
--- a/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/VirtualContainer.java
+++ b/org.eclipse.virgo.snaps.core/src/main/java/org/eclipse/virgo/snaps/core/internal/webapp/container/VirtualContainer.java
@@ -36,4 +36,6 @@
VirtualContainerRequestDispatcher createDispatcher();
SnapServletContext getSnapServletContext();
+
+ void addHost(SnapServletContext servletContext);
}
diff --git a/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapFactoryMonitorTests.java b/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapFactoryMonitorTests.java
index 627c4d3..218244d 100644
--- a/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapFactoryMonitorTests.java
+++ b/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapFactoryMonitorTests.java
@@ -69,13 +69,13 @@
SnapFactory factory = createMock(SnapFactory.class);
expect(factory.createSnap(isA(Host.class))).andReturn(snap);
+ expect(factory.hasSnap()).andReturn(Boolean.FALSE);
replay(factory, snap);
publishFactory(factory, "travel", "[1.0, 2.0)");
assertSnapPublished("/hotels", host);
verify(factory, snap);
-
}
@Test
@@ -90,6 +90,7 @@
SnapFactory factory = createMock(SnapFactory.class);
expect(factory.createSnap(isA(Host.class))).andReturn(snap);
+ expect(factory.hasSnap()).andReturn(Boolean.FALSE);
publishFactory(factory, "travel", "[1.0, 2.0)");
replay(factory, snap);
@@ -129,6 +130,7 @@
SnapFactory factory = createMock(SnapFactory.class);
expect(factory.createSnap(isA(Host.class))).andReturn(snap);
+ expect(factory.hasSnap()).andReturn(Boolean.FALSE);
replay(factory, snap);
publishFactory(factory, "travel", "[1.0, 3.0)");
@@ -149,6 +151,7 @@
SnapFactory factory = createMock(SnapFactory.class);
expect(factory.createSnap(isA(Host.class))).andReturn(snap);
+ expect(factory.hasSnap()).andReturn(Boolean.FALSE);
publishFactory(factory, "travel", "[1.0, 2.0)");
replay(factory, snap);
@@ -222,6 +225,7 @@
final SnapFactory factory = createMock(SnapFactory.class);
expect(factory.createSnap(isA(Host.class))).andReturn(slice);
+ expect(factory.hasSnap()).andReturn(Boolean.FALSE);
replay(factory, slice);
// public snap factory bound to "clinic" host
diff --git a/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapHostDefinitionTests.java b/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapHostDefinitionTests.java
index 5dea8c0..15ac663 100644
--- a/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapHostDefinitionTests.java
+++ b/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapHostDefinitionTests.java
@@ -11,32 +11,52 @@
package org.eclipse.virgo.snaps.core.internal;
-import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.*;
-import org.eclipse.virgo.snaps.core.internal.SnapHostDefinition;
-import org.junit.Test;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
import org.eclipse.virgo.util.osgi.manifest.VersionRange;
+import org.junit.Test;
public class SnapHostDefinitionTests {
@Test
public void testStandard() {
- SnapHostDefinition def = SnapHostDefinition.parse("travel;version=\"[1.2, 1.3)\"");
- assertEquals("travel", def.getSymbolicName());
- assertEquals(new VersionRange("[1.2, 1.3)"), def.getVersionRange());
+ Set<SnapHostDefinition> definitions = SnapHostDefinition.parse("travel;version=\"[1.2, 1.3)\"");
+ assertEquals(1, definitions.size());
+
+ SnapHostDefinition definition = definitions.iterator().next();
+ assertEquals("travel", definition.getSymbolicName());
+ assertEquals(new VersionRange("[1.2, 1.3)"), definition.getVersionRange());
}
- @Test
- public void testWithoutRange() {
- SnapHostDefinition def = SnapHostDefinition.parse("travel");
- assertEquals("travel", def.getSymbolicName());
- assertEquals(VersionRange.NATURAL_NUMBER_RANGE, def.getVersionRange());
- }
+ @Test
+ public void testWithoutRange() {
+ Set<SnapHostDefinition> definitions = SnapHostDefinition.parse("travel");
+ assertEquals(1, definitions.size());
+
+ SnapHostDefinition definition = definitions.iterator().next();
+ assertEquals("travel", definition.getSymbolicName());
+ assertEquals(VersionRange.NATURAL_NUMBER_RANGE, definition.getVersionRange());
+ }
- @Test(expected=IllegalArgumentException.class)
- public void testInvalid() {
- SnapHostDefinition.parse("travel,hotels");
- }
+ @Test
+ public void testMultiple() throws Exception {
+ Set<SnapHostDefinition> definitions = SnapHostDefinition.parse("travel,ski;version=\"[1.4, 2)\"");
+
+ Map<String, VersionRange> expected = new HashMap<>();
+ expected.put("travel", VersionRange.NATURAL_NUMBER_RANGE);
+ expected.put("ski", new VersionRange("[1.4, 2)"));
+ assertEquals(expected.size(), definitions.size());
+
+ for (SnapHostDefinition host : definitions) {
+ VersionRange expectedRange = expected.get(host.getSymbolicName());
+
+ assertNotNull("Could not find a header for " + host.getSymbolicName(), expectedRange);
+ assertEquals(expectedRange, host.getVersionRange());
+ }
+ }
}
diff --git a/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapUtilsTests.java b/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapUtilsTests.java
index b83c413..fe40385 100644
--- a/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapUtilsTests.java
+++ b/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/SnapUtilsTests.java
@@ -23,15 +23,13 @@
import java.util.Dictionary;
import java.util.Hashtable;
+import java.util.Set;
-import org.eclipse.virgo.snaps.core.internal.SnapHostDefinition;
-import org.eclipse.virgo.snaps.core.internal.SnapUtils;
+import org.eclipse.virgo.util.osgi.manifest.BundleManifest;
import org.junit.Test;
import org.osgi.framework.Bundle;
import org.springframework.mock.web.MockHttpServletRequest;
-import org.eclipse.virgo.util.osgi.manifest.BundleManifest;
-
public class SnapUtilsTests {
@Test
@@ -84,9 +82,11 @@
expect(manifest.getHeader(SnapUtils.HEADER_SNAP_HOST)).andReturn("travel;version=\"[1.2, 1.3)\"");
replay(manifest);
- SnapHostDefinition header = SnapUtils.getSnapHostHeader(manifest);
+ Set<SnapHostDefinition> header = SnapUtils.getSnapHostHeader(manifest);
+ assertEquals(1, header.size());
+
assertNotNull(header);
- assertEquals("travel", header.getSymbolicName());
+ assertEquals("travel", header.iterator().next().getSymbolicName());
verify(manifest);
}
@@ -96,7 +96,7 @@
expect(manifest.getHeader(SnapUtils.HEADER_SNAP_HOST)).andReturn(null);
replay(manifest);
- SnapHostDefinition header = SnapUtils.getSnapHostHeader(manifest);
+ Set<SnapHostDefinition> header = SnapUtils.getSnapHostHeader(manifest);
assertNull(header);
verify(manifest);
}
diff --git a/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapLifecycleListenerTests.java b/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapLifecycleListenerTests.java
index 2e6c7d8..876c469 100644
--- a/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapLifecycleListenerTests.java
+++ b/org.eclipse.virgo.snaps.core/src/test/java/org/eclipse/virgo/snaps/core/internal/deployer/SnapLifecycleListenerTests.java
@@ -18,20 +18,17 @@
import java.io.IOException;
-import org.eclipse.virgo.snaps.core.internal.deployer.SnapFactory;
-import org.eclipse.virgo.snaps.core.internal.deployer.SnapLifecycleListener;
-import org.junit.Test;
-import org.osgi.framework.Version;
-
-import org.eclipse.virgo.nano.deployer.api.core.DeploymentException;
+import org.eclipse.gemini.web.tomcat.spi.WebBundleClassLoaderFactory;
import org.eclipse.virgo.kernel.install.artifact.BundleInstallArtifact;
import org.eclipse.virgo.medic.test.eventlog.MockEventLogger;
+import org.eclipse.virgo.nano.deployer.api.core.DeploymentException;
import org.eclipse.virgo.test.stubs.framework.OSGiAssert;
import org.eclipse.virgo.test.stubs.framework.StubBundle;
import org.eclipse.virgo.test.stubs.framework.StubBundleContext;
-import org.eclipse.gemini.web.tomcat.spi.WebBundleClassLoaderFactory;
import org.eclipse.virgo.util.osgi.manifest.BundleManifest;
import org.eclipse.virgo.util.osgi.manifest.internal.StandardBundleManifest;
+import org.junit.Test;
+import org.osgi.framework.Version;
public class SnapLifecycleListenerTests {
@@ -65,4 +62,5 @@
verify(installArtifact, classLoaderFactory);
}
+
}
diff --git a/org.eclipse.virgo.snaps.core/template.mf b/org.eclipse.virgo.snaps.core/template.mf
index 9047432..f570e42 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="${apacheCatalinaVersion:[=.=.=,+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/.classpath b/org.eclipse.virgo.snaps.test/.classpath
deleted file mode 100644
index 163cec7..0000000
--- a/org.eclipse.virgo.snaps.test/.classpath
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.junit/com.springsource.org.junit/4.7.0/com.springsource.org.junit-4.7.0.jar" sourcepath="/IVY_CACHE/org.junit/com.springsource.org.junit/4.7.0/com.springsource.org.junit-sources-4.7.0.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.test/org.eclipse.virgo.test.framework/3.7.0.D-20140919122823/org.eclipse.virgo.test.framework-3.7.0.D-20140919122823.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.test/org.eclipse.virgo.test.framework/3.7.0.D-20140919122823/org.eclipse.virgo.test.framework-sources-3.7.0.D-20140919122823.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.osgi/3.8.1.v20120830-144521/org.eclipse.osgi-3.8.1.v20120830-144521.jar" sourcepath="/IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.7.1.R37x_v20110808-1106/org.eclipse.osgi-sources-3.7.1.R37x_v20110808-1106.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.common/3.7.0.D-20140919122012/org.eclipse.virgo.util.common-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.osgi/3.7.0.D-20140919122012/org.eclipse.virgo.util.osgi-3.7.0.D-20140919122012.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.osgi/3.7.0.D-20140919122012/org.eclipse.virgo.util.osgi-sources-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.osgi.manifest/3.7.0.D-20140919122012/org.eclipse.virgo.util.osgi.manifest-3.7.0.D-20140919122012.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.osgi.manifest/3.7.0.D-20140919122012/org.eclipse.virgo.util.osgi.manifest-sources-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.nano/org.eclipse.virgo.nano.core/3.7.0.D-20140919123318/org.eclipse.virgo.nano.core-3.7.0.D-20140919123318.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.core/3.7.0.D-20140919123318/org.eclipse.virgo.kernel.core-sources-3.7.0.D-20140919123318.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.deployer/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.deployer-3.7.0.D-20140919123907.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.deployer.core/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.deployer.core-sources-3.7.0.D-20140919123907.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.util/org.eclipse.virgo.util.io/3.7.0.D-20140919122012/org.eclipse.virgo.util.io-3.7.0.D-20140919122012.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.equinox.event/1.2.100.v20111010-1614/org.eclipse.equinox.event-1.2.100.v20111010-1614.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.test/org.eclipse.virgo.test.launcher/3.7.0.D-20140919122823/org.eclipse.virgo.test.launcher-3.7.0.D-20140919122823.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.osgi/org.eclipse.virgo.osgi.launcher/3.6.0.D-20120711092707/org.eclipse.virgo.osgi.launcher-sources-3.6.0.D-20120711092707.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.kernel/org.eclipse.virgo.kernel.equinox.extensions/3.7.0.D-20140919123907/org.eclipse.virgo.kernel.equinox.extensions-3.7.0.D-20140919123907.jar" sourcepath="/IVY_CACHE/org.eclipse.virgo.osgi/org.eclipse.virgo.kernel.equinox.extensions/3.6.0.D-20120711092707/org.eclipse.virgo.kernel.equinox.extensions-sources-3.6.0.D-20120711092707.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.osgi.services/3.3.0.v20120307-2102/org.eclipse.osgi.services-3.3.0.v20120307-2102.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.nano/org.eclipse.virgo.nano.deployer.api/3.7.0.D-20140919123318/org.eclipse.virgo.nano.deployer.api-3.7.0.D-20140919123318.jar"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/org.eclipse.virgo.snaps.test/.project b/org.eclipse.virgo.snaps.test/.project
deleted file mode 100644
index f21d140..0000000
--- a/org.eclipse.virgo.snaps.test/.project
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.virgo.snaps.test</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/org.eclipse.virgo.snaps.test/.settings/org.eclipse.wst.common.project.facet.core.xml b/org.eclipse.virgo.snaps.test/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/org.eclipse.virgo.snaps.test/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/org.eclipse.virgo.snaps.test/.springBeans b/org.eclipse.virgo.snaps.test/.springBeans
deleted file mode 100644
index d079ca1..0000000
--- a/org.eclipse.virgo.snaps.test/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.4.RELEASE]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/org.eclipse.virgo.snaps.test/build.gradle b/org.eclipse.virgo.snaps.test/build.gradle
new file mode 100644
index 0000000..f4283c3
--- /dev/null
+++ b/org.eclipse.virgo.snaps.test/build.gradle
@@ -0,0 +1,18 @@
+/*
+EXCLUDING THIS PROJECT FOR NOW AS THE TEST NEED TO BE UPDATED TO RUN AGAIN!
+*/
+
+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/build.xml b/org.eclipse.virgo.snaps.test/build.xml
deleted file mode 100644
index eacfbaf..0000000
--- a/org.eclipse.virgo.snaps.test/build.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.virgo.snaps.test">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../build.versions"/>
- <import file="${basedir}/../virgo-build/standard/default.xml"/>
-
-</project>
diff --git a/org.eclipse.virgo.snaps.test/ivy.xml b/org.eclipse.virgo.snaps.test/ivy.xml
deleted file mode 100644
index 68e199d..0000000
--- a/org.eclipse.virgo.snaps.test/ivy.xml
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd" version="1.3">
- <info organisation="${project.organisation}" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.util" name="org.eclipse.virgo.util.osgi.manifest" rev="${org.eclipse.virgo.util}" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.util" name="org.eclipse.virgo.util.osgi" rev="${org.eclipse.virgo.util}" conf="compile->compile"/>
- <dependency org="org.eclipse.virgo.snaps" name="org.eclipse.virgo.snaps.api" rev="latest.integration"/>
- <dependency org="org.eclipse.virgo.snaps" name="org.eclipse.virgo.snaps.core" rev="latest.integration"/>
- <dependency org="org.eclipse.virgo.kernel" name="org.eclipse.virgo.kernel" rev="${org.eclipse.virgo.kernel}" conf="test->compile"/>
- <dependency org="org.eclipse.virgo.nano" name="org.eclipse.virgo.nano.core" rev="${org.eclipse.virgo.nano}" conf="test->compile"/>
- <dependency org="org.eclipse.virgo.nano" name="org.eclipse.virgo.nano.deployer.api" rev="${org.eclipse.virgo.nano}" conf="test->compile"/>
- <dependency org="org.eclipse.virgo.nano" name="org.eclipse.virgo.nano.deployer.hot" rev="${org.eclipse.virgo.nano}" conf="test->compile"/>
- <dependency org="org.eclipse.virgo.nano" name="org.eclipse.virgo.nano.management" rev="${org.eclipse.virgo.nano}" conf="test->compile"/>
- <dependency org="org.eclipse.virgo.web" name="org.eclipse.virgo.web.tomcat.support" rev="${org.eclipse.virgo.web}" conf="test->compile"/>
- <dependency org="org.eclipse.virgo.web" name="org.eclipse.virgo.web.tomcat" rev="${org.eclipse.virgo.web}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.test" name="org.eclipse.virgo.test.framework" rev="${org.eclipse.virgo.test}" conf="test->runtime"/>
- <dependency org="org.springframework" name="org.springframework.test" rev="${org.springframework}" conf="test->runtime"/>
- <dependency org="org.springframework" name="org.springframework.spring-library" rev="${org.springframework}" conf="test->runtime"/>
- <dependency org="org.springframework" name="org.springframework.aspects" rev="${org.springframework}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.jcl" rev="${org.slf4j.jcl}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.jul" rev="${org.slf4j.jul}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic" rev="${org.eclipse.virgo.medic}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic.core" rev="${org.eclipse.virgo.medic}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.mail" rev="${javax.mail}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.persistence" rev="${javax.persistence}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.websocket" rev="${javax.websocket}" conf="test->runtime"/>
- <dependency org="javax.servlet" name="com.springsource.javax.servlet.jsp.jstl" rev="${javax.servlet.jsp.jstl}" conf="test->runtime"/>
- <dependency org="org.apache.taglibs" name="com.springsource.org.apache.taglibs.standard" rev="${org.apache.taglibs}" conf="test->runtime" />
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.equinox.event" rev="${org.eclipse.equinox.event}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.equinox.util" rev="${org.eclipse.equinox.util}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.equinox.ds" rev="${org.eclipse.equinox.ds}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.equinox.cm" rev="${org.eclipse.equinox.cm}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.equinox.region" rev="${org.eclipse.equinox.region}" conf="test->runtime"/>
- <dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>
- <dependency org="org.easymock" name="com.springsource.org.easymock" rev="${org.easymock}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="com.springsource.org.aspectj.weaver" rev="${org.aspectj}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic.core" rev="${org.eclipse.virgo.medic}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic.logbackcorefragment" rev="${org.eclipse.virgo.medic}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic.logbackclassicfragment" rev="${org.eclipse.virgo.medic}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="ch.qos.logback.classic" rev="${ch.qos.logback.classic}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="ch.qos.logback.core" rev="${ch.qos.logback.core}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="ch.qos.logback.slf4j" rev="${ch.qos.logback.slf4j}" conf="test->runtime"/>
-
-
- <!-- Prevent Xerces and Xalan from being on the classpath to work around Java bug 6723276 during integration testing -->
- <exclude org="org.apache.xerces"/>
- <exclude org="org.apache.xalan"/>
- <exclude org="javax.servlet" module="javax.servlet"/>
- <exclude org="org.eclipse.osgi"/>
-
- <!-- Prevent Derby coming down until we move to a Spring version when its JDCB bundle's Derby dependency is optional
- <exclude org="org.apache.derby"/>-->
- <override org="org.aspectj" rev="${org.aspectj}" />
- <override org="org.eclipse.virgo.util" rev="${org.eclipse.virgo.util}"/>
- <override org="org.eclipse.virgo.repository" rev="${org.eclipse.virgo.repository}"/>
- <override org="org.eclipse.virgo.kernel" rev="${org.eclipse.virgo.kernel}"/>
- <override org="org.eclipse.gemini" module="org.eclipse.gemini.web.core" rev="${org.eclipse.gemini.web}"/>
- <override org="org.eclipse.gemini" module="org.eclipse.gemini.web.tomcat" rev="${org.eclipse.gemini.web}"/>
- </dependencies>
-
-</ivy-module>
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..11cb478
--- /dev/null
+++ b/org.eclipse.virgo.snaps/build.gradle
@@ -0,0 +1,5 @@
+description = 'Virgo Snaps Plan deployment unit'
+
+processResources {
+ expand (version: version)
+}
\ No newline at end of file
diff --git a/org.eclipse.virgo.snaps/build.xml b/org.eclipse.virgo.snaps/build.xml
deleted file mode 100644
index 8102136..0000000
--- a/org.eclipse.virgo.snaps/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.virgo.snaps">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../build.versions"/>
- <import file="${basedir}/../build-snaps/package-bundle.xml"/>
- <import file="${basedir}/../virgo-build/resource/default.xml"/>
-
-</project>
diff --git a/org.eclipse.virgo.snaps/ivy.xml b/org.eclipse.virgo.snaps/ivy.xml
deleted file mode 100644
index f4b6fd0..0000000
--- a/org.eclipse.virgo.snaps/ivy.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="${project.organisation}" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="org.eclipse.virgo.snaps" type="plan" ext="plan"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.kernel" name="org.eclipse.virgo.kernel" rev="${org.eclipse.virgo.kernel}" conf="provided->compile"/>
- <dependency org="org.eclipse.virgo.nano" name="org.eclipse.virgo.nano.core" rev="${org.eclipse.virgo.nano}" conf="provided->compile"/>
- <dependency org="org.eclipse.virgo.nano" name="org.eclipse.virgo.nano.deployer.api" rev="${org.eclipse.virgo.nano}" conf="provided->compile"/>
- <dependency org="org.eclipse.virgo.snaps" name="org.eclipse.virgo.snaps.core" rev="latest.integration"/>
- <dependency org="org.eclipse.virgo.snaps" name="org.eclipse.virgo.snaps.api" rev="latest.integration"/>
-
- </dependencies>
-
-</ivy-module>
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..697d4b4
--- /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="${version}" 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="${version}" />
+ <artifact type="bundle" name="org.eclipse.virgo.snaps.core" version="${version}" />
+</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/sample/org.eclipse.virgo.snaps.sample.animal/.classpath b/sample/org.eclipse.virgo.snaps.sample.animal/.classpath
deleted file mode 100644
index 15b13e4..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.classpath
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.virgo.snaps.api"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
- <attributes>
- <attribute name="owner.project.facets" value="java"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet.jsp.jstl/1.2.0.v201105211821/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.apache.taglibs/com.springsource.org.apache.taglibs.standard/1.1.2.v20110517/com.springsource.org.apache.taglibs.standard-1.1.2.v20110517.jar"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/.project b/sample/org.eclipse.virgo.snaps.sample.animal/.project
deleted file mode 100644
index 0de073c..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.project
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.virgo.snaps.sample.animal</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
- </natures>
-</projectDescription>
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/.jsdtscope b/sample/org.eclipse.virgo.snaps.sample.animal/.settings/.jsdtscope
deleted file mode 100644
index bbb8e68..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/.jsdtscope
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
- <attributes>
- <attribute name="hide" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
- <classpathentry kind="output" path=""/>
-</classpath>
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.common.component b/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index e85b51b..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-modules id="moduleCoreId" project-version="1.5.0">
- <wb-module deploy-name="animal.menu.bar">
- <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
- <property name="context-root" value="animal-menu-bar"/>
- <property name="java-output-path" value="target/classes"/>
- </wb-module>
-</project-modules>
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.common.project.facet.core.xml b/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 2739bed..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
- <installed facet="jst.java" version="6.0"/>
- <installed facet="jst.web" version="2.5"/>
-</faceted-project>
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.jsdt.ui.superType.container b/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.jsdt.ui.superType.name b/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/.springBeans b/sample/org.eclipse.virgo.snaps.sample.animal/.springBeans
deleted file mode 100644
index d0f3ac5..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/.springBeans
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.6.0.201104111100-PATCH]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- <config>src/main/webapp/WEB-INF/admin-servlet.xml</config>
- <config>src/main/webapp/WEB-INF/applicationContext.xml</config>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/build.xml b/sample/org.eclipse.virgo.snaps.sample.animal/build.xml
deleted file mode 100644
index 7f17a65..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.virgo.snaps.sample.animal">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <import file="${basedir}/../../build-snaps/package-sample.xml"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/sample/org.eclipse.virgo.snaps.sample.animal/ivy.xml b/sample/org.eclipse.virgo.snaps.sample.animal/ivy.xml
deleted file mode 100644
index 495c3cb..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.animal/ivy.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="com.springsource.snaps.menu-bar" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies/>
-
-</ivy-module>
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.classpath b/sample/org.eclipse.virgo.snaps.sample.blue/.classpath
deleted file mode 100644
index 66844db..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.project b/sample/org.eclipse.virgo.snaps.sample.blue/.project
deleted file mode 100644
index cd34fcf..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.project
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.virgo.snaps.sample.blue</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
- </natures>
-</projectDescription>
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/.jsdtscope b/sample/org.eclipse.virgo.snaps.sample.blue/.settings/.jsdtscope
deleted file mode 100644
index bbb8e68..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/.jsdtscope
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
- <attributes>
- <attribute name="hide" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
- <classpathentry kind="output" path=""/>
-</classpath>
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.jdt.core.prefs b/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c5ce38f..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Jul 01 16:18:05 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.common.component b/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 2324d8f..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-modules id="moduleCoreId" project-version="1.5.0">
- <wb-module deploy-name="green.style.snap">
- <wb-resource deploy-path="/" source-path="/src/main/webapp" />
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java" />
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources" />
- <property name="context-root" value="styling" />
- <property name="java-output-path" value="target/classes" />
- </wb-module>
-</project-modules>
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.common.project.facet.core.xml b/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 8a303d1..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
- <installed facet="jst.java" version="5.0"/>
- <installed facet="jst.web" version="2.5"/>
-</faceted-project>
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.jsdt.ui.superType.container b/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.jsdt.ui.superType.name b/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/.springBeans b/sample/org.eclipse.virgo.snaps.sample.blue/.springBeans
deleted file mode 100644
index 5152991..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.5.M1]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/build.xml b/sample/org.eclipse.virgo.snaps.sample.blue/build.xml
deleted file mode 100644
index f128e52..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.virgo.snaps.sample.blue">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <import file="${basedir}/../../build-snaps/package-sample.xml"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/sample/org.eclipse.virgo.snaps.sample.blue/ivy.xml b/sample/org.eclipse.virgo.snaps.sample.blue/ivy.xml
deleted file mode 100644
index e126443..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.blue/ivy.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="com.springsource.snaps.styling" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies/>
-
-</ivy-module>
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.classpath b/sample/org.eclipse.virgo.snaps.sample.cat/.classpath
deleted file mode 100644
index aae92ed..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.classpath
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
- <attributes>
- <attribute name="owner.project.facets" value="java"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.web/3.1.0.RELEASE/org.springframework.web-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.web/3.1.0.RELEASE/org.springframework.web-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.context/3.1.0.RELEASE/org.springframework.context-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.context/3.1.0.RELEASE/org.springframework.context-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.web.servlet/3.1.0.RELEASE/org.springframework.web.servlet-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.web.servlet/3.1.0.RELEASE/org.springframework.web.servlet-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar" sourcepath="/IVY_CACHE/javax.servlet/javax.servlet/3.0.0.v201103241009/javax.servlet-sources-3.0.0.v201103241009.jar"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.project b/sample/org.eclipse.virgo.snaps.sample.cat/.project
deleted file mode 100644
index 28a4372..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.project
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.virgo.snaps.sample.cat</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
- </natures>
-</projectDescription>
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/.jsdtscope b/sample/org.eclipse.virgo.snaps.sample.cat/.settings/.jsdtscope
deleted file mode 100644
index bbb8e68..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/.jsdtscope
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
- <attributes>
- <attribute name="hide" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
- <classpathentry kind="output" path=""/>
-</classpath>
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.jdt.core.prefs b/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c5ce38f..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Jul 01 16:18:05 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.common.component b/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index 7b3c816..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-modules id="moduleCoreId" project-version="1.5.0">
- <wb-module deploy-name="cat.menu.item">
- <wb-resource deploy-path="/" source-path="/src/main/webapp" />
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java" />
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources" />
- <property name="context-root" value="cat" />
- <property name="java-output-path" value="target/classes" />
- </wb-module>
-</project-modules>
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.common.project.facet.core.xml b/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 8a303d1..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
- <installed facet="jst.java" version="5.0"/>
- <installed facet="jst.web" version="2.5"/>
-</faceted-project>
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.jsdt.ui.superType.container b/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.jsdt.ui.superType.name b/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/.springBeans b/sample/org.eclipse.virgo.snaps.sample.cat/.springBeans
deleted file mode 100644
index cf5df9e..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/.springBeans
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.6.0.201104111100-PATCH]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- <config>src/main/webapp/WEB-INF/cat-servlet.xml</config>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/build.xml b/sample/org.eclipse.virgo.snaps.sample.cat/build.xml
deleted file mode 100644
index 1ef211e..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.virgo.snaps.sample.cat">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <import file="${basedir}/../../build-snaps/package-sample.xml"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/sample/org.eclipse.virgo.snaps.sample.cat/ivy.xml b/sample/org.eclipse.virgo.snaps.sample.cat/ivy.xml
deleted file mode 100644
index 86b294d..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.cat/ivy.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="com.springsource.snaps.menu-bar" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="provided->runtime"/>
- <dependency org="org.springframework" name="org.springframework.context" rev="${org.springframework}" conf="provided->runtime"/>
- <dependency org="org.springframework" name="org.springframework.web" rev="${org.springframework}" conf="provided->runtime"/>
- <dependency org="org.springframework" name="org.springframework.web.servlet" rev="${org.springframework}" conf="provided->runtime"/>
- </dependencies>
-
-</ivy-module>
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.classpath b/sample/org.eclipse.virgo.snaps.sample.dog/.classpath
deleted file mode 100644
index 4455dcc..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
- <attributes>
- <attribute name="owner.project.facets" value="java"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.project b/sample/org.eclipse.virgo.snaps.sample.dog/.project
deleted file mode 100644
index 042ac1e..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.project
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.virgo.snaps.sample.dog</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
- <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
- </natures>
-</projectDescription>
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/.jsdtscope b/sample/org.eclipse.virgo.snaps.sample.dog/.settings/.jsdtscope
deleted file mode 100644
index bbb8e68..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/.jsdtscope
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
- <attributes>
- <attribute name="hide" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
- <classpathentry kind="output" path=""/>
-</classpath>
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.jdt.core.prefs b/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c5ce38f..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Jul 01 16:18:05 BST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.common.component b/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.common.component
deleted file mode 100644
index aff3e84..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.common.component
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-modules id="moduleCoreId" project-version="1.5.0">
- <wb-module deploy-name="dog.menu.item">
- <wb-resource deploy-path="/" source-path="/src/main/webapp" />
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java" />
- <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources" />
- <property name="context-root" value="dog" />
- <property name="java-output-path" value="target/classes" />
- </wb-module>
-</project-modules>
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.common.project.facet.core.xml b/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 8a303d1..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
- <installed facet="jst.java" version="5.0"/>
- <installed facet="jst.web" version="2.5"/>
-</faceted-project>
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.jsdt.ui.superType.container b/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.jsdt.ui.superType.container
deleted file mode 100644
index 3bd5d0a..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.jsdt.ui.superType.container
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.jsdt.ui.superType.name b/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.jsdt.ui.superType.name
deleted file mode 100644
index 05bd71b..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.settings/org.eclipse.wst.jsdt.ui.superType.name
+++ /dev/null
@@ -1 +0,0 @@
-Window
\ No newline at end of file
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/.springBeans b/sample/org.eclipse.virgo.snaps.sample.dog/.springBeans
deleted file mode 100644
index 5152991..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.5.M1]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/build.xml b/sample/org.eclipse.virgo.snaps.sample.dog/build.xml
deleted file mode 100644
index 18533f6..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="org.eclipse.virgo.snaps.sample.dog">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <import file="${basedir}/../../build-snaps/package-sample.xml"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/sample/org.eclipse.virgo.snaps.sample.dog/ivy.xml b/sample/org.eclipse.virgo.snaps.sample.dog/ivy.xml
deleted file mode 100644
index 495c3cb..0000000
--- a/sample/org.eclipse.virgo.snaps.sample.dog/ivy.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="com.springsource.snaps.menu-bar" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies/>
-
-</ivy-module>
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..2a6b54b
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,6 @@
+rootProject.name = 'snaps-root'
+include ':org.eclipse.virgo.snaps'
+include ':org.eclipse.virgo.snaps.api'
+include ':org.eclipse.virgo.snaps.core'
+include ':snaps-guide'
+
diff --git a/snaps-guide/.project b/snaps-guide/.project
deleted file mode 100644
index bbe17ca..0000000
--- a/snaps-guide/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>snaps-guide</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- </buildSpec>
- <natures>
- </natures>
-</projectDescription>
diff --git a/snaps-guide/build.gradle b/snaps-guide/build.gradle
new file mode 100644
index 0000000..5d1975b
--- /dev/null
+++ b/snaps-guide/build.gradle
@@ -0,0 +1,3 @@
+description = 'Virgo Snaps documentation'
+
+apply plugin: 'org.asciidoctor.convert'
diff --git a/snaps-guide/build.xml b/snaps-guide/build.xml
deleted file mode 100644
index 7d70637..0000000
--- a/snaps-guide/build.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="virgo-snaps-guide">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../build.versions"/>
- <import file="${basedir}/../virgo-build/docbook/default.xml"/>
-
- <filterset id="docbook.filters">
- <filter token="bundle.version" value="${bundle.version}"/>
- <filtersfile file="${basedir}/filters.properties"/>
- </filterset>
-
-</project>
diff --git a/snaps-guide/filters.properties b/snaps-guide/filters.properties
deleted file mode 100644
index 9b1f08d..0000000
--- a/snaps-guide/filters.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-project.name=Virgo
-umbrella.product.name=Virgo Server
-tomcat.product.name=Virgo Server for Apache Tomcat
-tomcat.product.name.short=VTS
-jetty.product.name=Virgo Jetty Server
-jetty.product.name.short=VTS
-kernel.product.name=Virgo Kernel
-kernel.product.name.short=VK
-snaps.product.name=Virgo Snaps
-snaps.product.name.short=VS
-ebr=SpringSource Enterprise Bundle Repository
\ No newline at end of file
diff --git a/snaps-guide/ivy.xml b/snaps-guide/ivy.xml
deleted file mode 100644
index 2ef6586..0000000
--- a/snaps-guide/ivy.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="org.eclipse.virgo.documentation" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- <conf name="doc" visibility="public" description="Documentation"/>
- </configurations>
-
- <publications>
- <!-- <artifact name="${ant.project.name}" ext="pdf" type="pdf"/> -->
- <artifact name="${ant.project.name}" ext="zip" type="zip"/>
- <artifact name="${ant.project.name}-single" ext="zip" type="zip"/>
- </publications>
-
- <dependencies/>
-
-</ivy-module>
diff --git a/snaps-guide/src/docs/asciidoc/further-reading.adoc b/snaps-guide/src/docs/asciidoc/further-reading.adoc
new file mode 100644
index 0000000..ce21f39
--- /dev/null
+++ b/snaps-guide/src/docs/asciidoc/further-reading.adoc
@@ -0,0 +1,17 @@
+[[further-reading]]
+== Further Reading
+
+The User and Programmer Guides provide a lot of information about using
+and developing applications for the Virgo Server.
+
+http://www.eclipse.org/virgo/documentation/[Virgo Documentation
+page]
+
+link:../../virgo-programmer-guide/html/index.html[Virgo Server for Apache Tomcat
+Programmer Guide]
+
+link:../../virgo-user-guide/html/index.html[Virgo Server for Apache Tomcat User
+Guide]
+
+http://www.slideshare.net/cgfrost/eclipsecon2011-virgo-snaps[Slides from
+a presentation at EclipseCon 2011 about Virgo Snaps.]
diff --git a/snaps-guide/images/s2-logo.png b/snaps-guide/src/docs/asciidoc/images/s2-logo.png
similarity index 100%
rename from snaps-guide/images/s2-logo.png
rename to snaps-guide/src/docs/asciidoc/images/s2-logo.png
Binary files differ
diff --git a/snaps-guide/images/sampleApp.png b/snaps-guide/src/docs/asciidoc/images/sampleApp.png
similarity index 100%
rename from snaps-guide/images/sampleApp.png
rename to snaps-guide/src/docs/asciidoc/images/sampleApp.png
Binary files differ
diff --git a/snaps-guide/images/sampleBlue.png b/snaps-guide/src/docs/asciidoc/images/sampleBlue.png
similarity index 100%
rename from snaps-guide/images/sampleBlue.png
rename to snaps-guide/src/docs/asciidoc/images/sampleBlue.png
Binary files differ
diff --git a/snaps-guide/images/sampleCat.png b/snaps-guide/src/docs/asciidoc/images/sampleCat.png
similarity index 100%
rename from snaps-guide/images/sampleCat.png
rename to snaps-guide/src/docs/asciidoc/images/sampleCat.png
Binary files differ
diff --git a/snaps-guide/images/sampleDog.png b/snaps-guide/src/docs/asciidoc/images/sampleDog.png
similarity index 100%
rename from snaps-guide/images/sampleDog.png
rename to snaps-guide/src/docs/asciidoc/images/sampleDog.png
Binary files differ
diff --git a/snaps-guide/images/snapsAndHosts.png b/snaps-guide/src/docs/asciidoc/images/snapsAndHosts.png
similarity index 100%
rename from snaps-guide/images/snapsAndHosts.png
rename to snaps-guide/src/docs/asciidoc/images/snapsAndHosts.png
Binary files differ
diff --git a/snaps-guide/images/snapsZipFile.png b/snaps-guide/src/docs/asciidoc/images/snapsZipFile.png
similarity index 100%
rename from snaps-guide/images/snapsZipFile.png
rename to snaps-guide/src/docs/asciidoc/images/snapsZipFile.png
Binary files differ
diff --git a/snaps-guide/images/virgo-logo-large.png b/snaps-guide/src/docs/asciidoc/images/virgo-logo-large.png
similarity index 100%
rename from snaps-guide/images/virgo-logo-large.png
rename to snaps-guide/src/docs/asciidoc/images/virgo-logo-large.png
Binary files differ
diff --git a/snaps-guide/images/virgo-logo-small.png b/snaps-guide/src/docs/asciidoc/images/virgo-logo-small.png
similarity index 100%
rename from snaps-guide/images/virgo-logo-small.png
rename to snaps-guide/src/docs/asciidoc/images/virgo-logo-small.png
Binary files differ
diff --git a/snaps-guide/src/docs/asciidoc/installing.adoc b/snaps-guide/src/docs/asciidoc/installing.adoc
new file mode 100644
index 0000000..ea2e11f
--- /dev/null
+++ b/snaps-guide/src/docs/asciidoc/installing.adoc
@@ -0,0 +1,92 @@
+[[installation]]
+== Installing Virgo Snaps
+
+[[installation-zip]]
+=== Installing from the Zip Download
+
+VS is distributed as a Zip file. This can be
+downloaded from http://www.eclipse.org/virgo/download/[here].
+
+Once the Zip file is unpacked you will find several things inside,
+including a copy of this documentation in the `docs` folder. The layout
+is shown below.
+
+image::images/snapsZipFile.png[]
+
+Take the bundles and plan in the `dist` folder and place them in either
+the `/repository/usr` or `/repository/ext` folder of your Virgo install.
+Later you need the bundles in the `sample` folder. If you wish to view
+the source for VS or its sample, then these are
+in the `src` folder.
+
+In order to start the Snaps system as a part of your
+Virgo Server for Apache Tomcat, the Snaps plan needs to be referenced from the
+`initialArtifacts` property. This is located in the config file at
+`${SERVER_HOME}/config/org.eclipse.virgo.kernel.userregion.properties`.
+The property should be extended like this.
+
+....
+initialArtifacts=repository:plan/org.eclipse.virgo.kernel.userregion.springdm,
+ repository:plan/org.eclipse.virgo.web.tomcat,
+ repository:plan/org.eclipse.virgo.snaps
+....
+
+Now you are ready to check that Snaps is working.
+
+[[installation-post]]
+=== Verifying it's working
+
+The sample application in the Zip file demonstrates all of the features
+of Snaps. You will cover this application in detail later, but for now
+install it to verify that you have a working Snaps install. Start the
+server up and check the output it produces contains the following:
+
+....
+<DE0004I> Starting plan 'org.eclipse.virgo.snaps' version '3.0.0'.
+<DE0004I> Starting bundle 'org.eclipse.virgo.snaps.api' version '[version]'.
+<DE0005I> Started bundle 'org.eclipse.virgo.snaps.api' version '[version]'.
+<DE0004I> Starting bundle 'org.eclipse.virgo.snaps.core' version '[version]'.
+<DE0005I> Started bundle 'org.eclipse.virgo.snaps.core' version '[version]'.
+<DE0005I> Started plan 'org.eclipse.virgo.snaps' version '3.0.0'.
+....
+
+Open up the Virgo Admin Console by navigating to
+`http://localhost:8080/admin` and then go to the artifacts tab to deploy
+some new bundles. The first bundle to deploy is located at
+`/sample/org.eclipse.virgo.snaps.sample.animal-[version].jar`,
+select it in the browser and upload. In the terminal window you started
+the Virgo Server for Apache Tomcat in you should see the usual messages about the
+bundle starting and this message:
+
+....
+<SN0000I> Host created for path '/animal-menu-bar'
+....
+
+This shows that the host has been registered and is ready for Snaps to
+attach to it. To view the application take your browser to
+`http://localhost:8080/animal-menu-bar/`. You should be presented with a
+green looking page that has a menu bar with two links on it. One will
+take you to the page you are currently on while the other goes back to
+the admin page.
+
+This is all very nice, but it's time to deploy another snap that will
+dynamicaly add some extra content to the app. The next bundle to deploy
+is located at
+`/sample/org.eclipse.virgo.snaps.sample.dog-[version].jar`.
+Deploy it the same way as the last one using the admin console and check
+the messages to verify it has been bound to the host:
+
+....
+<SN0010I> Snap bound to path '/animal-menu-bar/dog'
+....
+
+In your browser, go back to the application and refresh the page and a
+new menu item should now be present. If you click it a new page will
+load with content from the newly installed snap. In this case a picture
+of a dog.
+
+image::images/sampleDog.png[]
+
+You have now verified that your install is working and can continue on
+to learn how Snaps works and how you can use it to break up your web
+applications.
diff --git a/snaps-guide/src/docs/asciidoc/introduction.adoc b/snaps-guide/src/docs/asciidoc/introduction.adoc
new file mode 100644
index 0000000..23db8f2
--- /dev/null
+++ b/snaps-guide/src/docs/asciidoc/introduction.adoc
@@ -0,0 +1,36 @@
+[[introduction]]
+== Introduction
+
+This Guide covers Virgo Snaps and assumes you are already
+familiar with OSGi and Eclipse Virgo. See link:#further-reading[here].
+
+[[introduction-concepts]]
+=== Concepts
+
+Using Virgo Snaps, or VS for short, you
+can construct a web application from multiple OSGi bundles, each of
+which serves up content for a distinct sub-portion of your application's
+URL space. VS applications are arranged in a
+parent/child structure, with each application having at most one
+top-level parent, and zero or more children/grand children and so on.
+Parents are referred to as the hosts, children as snaps.
+
+image::images/snapsAndHosts.png[]
+
+Here you see that any `HTTP` requests for '/app' will be dealt with by
+the host bundle while '/app/orders' and '/app/billing' will be dealt
+with by their respective snaps bundles. Each host/snap can use
+completely different web technologies to deal with the requests,
+Virgo Snaps places no restrictions on your choices. The
+developer decides how to split the application up and how closely to
+couple the host and various snaps. VS has been
+designed to be as un-invasive as possible while still making it easy to
+share information between the host and its snaps.
+
+[[introduction-prereqs]]
+=== Prerequisites
+
+VS requires Virgo Server for Apache Tomcat and Java SE 6
+or later to be installed. Java is available from http://www.java.com/
+and elsewhere. Virgo Server for Apache Tomcat is available from
+http://www.eclipse.org/virgo/download/[here].
diff --git a/snaps-guide/src/docs/asciidoc/known-issues.adoc b/snaps-guide/src/docs/asciidoc/known-issues.adoc
new file mode 100644
index 0000000..1360e59
--- /dev/null
+++ b/snaps-guide/src/docs/asciidoc/known-issues.adoc
@@ -0,0 +1,11 @@
+[[known-issues]]
+== Known Issues
+
+This section describes known issues that you might run into, along with
+corresponding workarounds.
+
+[[known-issues-jetty-restriction]]
+=== Virgo Jetty Server Restriction
+
+Virgo Snaps is not supported on the Virgo Jetty Server,
+please use with the Virgo Server for Apache Tomcat.
diff --git a/snaps-guide/src/docs/asciidoc/sample-application.adoc b/snaps-guide/src/docs/asciidoc/sample-application.adoc
new file mode 100644
index 0000000..aaef3f0
--- /dev/null
+++ b/snaps-guide/src/docs/asciidoc/sample-application.adoc
@@ -0,0 +1,107 @@
+[[sample-application]]
+== A Sample Application
+
+The Virgo Snaps Zip file comes with a sample application that
+you may have already deployed to verify your VS
+install. In this chapter you will look at it in more detail to see how
+an application can be composed and see all the Snaps features in action.
+
+[[sample-application-structure]]
+=== Structure of the sample application
+
+The application is very simple, it consists of just a front end,
+composed of four bundles, a host with three Snaps.
+
+image::images/sampleApp.png[]
+
+The host and three snaps show their `Snap-ContextPath`s. The Cat and Dog
+snaps both contribute content while the final snap just contributes
+styling information in the form of `css` files. The following sections
+look at each of these in detail.
+
+[[sample-application-host]]
+=== The Host bundle
+
+This bundle is very simple with no Java code. It defines the Snaps
+filter in its `web.xml` just as you have seen in the
+link:#using-snaps-configuring-the-host[Using Snaps] section. The menu
+bar uses the taglibs support to render links for each registered Snap.
+
+....
+<ul>
+ <li><a href="<c:url value="/"/>">Home</a></li>
+ <snaps:snaps var="snaps">
+ <c:forEach var="snap" items="${snaps}">
+ <c:if test="${snap.contextPath ne '/styles'}">
+ <li><a href="<c:url value="${snap.contextPath}${snap.properties['link.path']}"/>">
+ ${snap.properties['link.text']}</a>
+ </li>
+ </c:if>
+ </c:forEach>
+ </snaps:snaps>
+</ul>
+
+....
+
+This is very similar to an example you have already seen. It puts the
+links in a list and adds a link at the beginning to return to the host.
+The properties it is referencing are located in the snaps themselves at
+`/META-INF/snap.properties`.
+
+[[sample-application-new-content]]
+=== Adding New Content
+
+If you now deploy both the Dog and Cat snaps, two new items will appear
+on the menu bar, each providing content from their respective snaps.
+
+image::images/sampleCat.png[]
+
+If you look at the Cat page you will see it is also displaying some
+properties. The Cat Snap is a little more complex, it has it's own
+`DispatcherServlet` defined in its `web.xml` and a controller defined
+using annotations. If you look at the controller code you will see where
+these two properties come from.
+
+....
+@Controller
+public class CatController {
+
+ @RequestMapping("/meow")
+ public ModelAndView cat(HttpServletRequest request) throws IOException {
+ URL host = request.getServletContext().getResource("host:/WEB-INF/sample.properties");
+ Properties host_props = new Properties();
+ if(host != null){
+ host_props.load(host.openStream());
+ }
+ URL snap = request.getServletContext().getResource("/WEB-INF/sample.properties");
+ Properties snap_props = new Properties();
+ if(snap != null){
+ snap_props.load(snap.openStream());
+ }
+ return new ModelAndView("index").addObject("host", host_props.getProperty("some.property"))
+ .addObject("snap", snap_props.getProperty("some.property"));
+ }
+}
+
+....
+
+There are two properties files called `sample.properties` located at the
+same path within both the Cat snap and the host. Each contains a
+property called `some.property` but with distinct value. Looking at the
+code above you can see the `host:` prefix being used to ensure the first
+lookup only looks in the host and skips the snap. These values are then
+placed in the Model for the JSP page to render.
+
+[[sample-application-dynamic-styling]]
+=== Re-styling
+
+Finally the Blue styling snap shows how Snaps can be used in other ways.
+Deploying this will cause all requests to `/styles` to be redirected and
+the application will change in appearance but not content. All this
+happens without re-deploying the host bundle, although you may need to
+do a full refresh to clear your browser's cache.
+
+image::images/sampleBlue.png[]
+
+This is the same page as before, being rendered by the host and the Cat
+snap, but with the style information now coming from the Blue snap.
diff --git a/snaps-guide/src/docs/asciidoc/using-snaps.adoc b/snaps-guide/src/docs/asciidoc/using-snaps.adoc
new file mode 100644
index 0000000..8e477e0
--- /dev/null
+++ b/snaps-guide/src/docs/asciidoc/using-snaps.adoc
@@ -0,0 +1,108 @@
+[[using-snaps]]
+== Using Virgo Snaps in your application
+
+Every snap or host should also be a regular WAB (Web Application
+Bundle), all you have to do is add some additional configuration to
+benefit from VS.
+
+[[using-snaps-configuring-the-host]]
+=== Configuring the Host
+
+In the WAB that is to act as a host to Snaps bundles, all that needs to
+be added is a filter in the hosts ' `web.xml`'. This filter can be
+mapped to any sub path that you want forwarded to registered snaps. It
+is important to note the extra `dispatcher` declarations in the
+`filter-mapping`. Without these internal lookups, resources like JSPs
+won't get passed to the appropriate snap when needed.
+
+....
+<filter>
+ <filter-name>host-filter-name</filter-name>
+ <filter-class>org.eclipse.virgo.snaps.core.SnapHostFilter</filter-class>
+</filter>
+
+<filter-mapping>
+ <filter-name>host-filter-name</filter-name>
+ <url-pattern>/*</url-pattern>
+ <dispatcher>INCLUDE</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>REQUEST</dispatcher>
+</filter-mapping>
+
+....
+
+[[using-snaps-configuring-a-snap]]
+=== Configuring a Snap
+
+A snap is a normal WAB with the addition of two extra manifest headers.
+The first `Snap-Host` is used to resolve the WAB you want to act as a
+host for this snap. The second `Snap-ContextPath` gives the path the
+snap will answer to. In order to reach the snap a request must be made
+for the host's context path, plus any path in the host's Snaps filter
+followed by the path given with the `Snap-ContextPath` header.
+
+....
+Snap-Host: org.eclipse.virgo.snaps.sample.animal;version="${version:[=.=.=, =.+1)}"
+Snap-ContextPath: /dog
+
+....
+
+[[using-snaps-taglibs]]
+=== Using the Snaps taglibs
+
+There is a tag library available that makes information about the Snaps
+environment available to the host from within a JSP page. The prefix and
+URI to declare are
+`<%@ taglib prefix="snaps" uri="http://www.eclipse.org/virgo/snaps"
+ %>`. You can now access an array of all the Snaps currently
+registered with the host. Each snap in the array has two values, the
+first is the context path the Snap is registered with, as given in the
+snaps manifest header. The second is an array of properties, if any,
+given in a property file in the snap. The file must be in the `META-INF
+ ` directory and have a name of `snap.properties`. The
+following code snippet shows all of these in use to produce links to
+each of the installed snaps.
+
+....
+<snaps:snaps var="snaps">
+ <c:forEach var="snap" items="${snaps}">
+ <a href="<c:url value="${snap.contextPath}${snap.properties['link.path']}"/>">
+ ${snap.properties['link.text']}</a>
+ </c:forEach>
+</snaps:snaps>
+
+....
+
+The first line uses the Snaps tag library to place the array of snaps
+into the `snaps` variable. Then a `forEach` loop goes through each snap.
+The content of the `forEach` loop is the really interesting bit. The
+first variable `${snap.contextPath}` returns the context path of the
+snap. The two lookups are for properties
+`${snap.properties['something']}`. They rely on the snap having the
+properties file in place with `link.path` and `link.text` defined in it.
+This shows the flexibility you have for defining your own contract
+between the host and its snaps. In this case each snap can contribute
+extra information about how links in a menu should be constructed.
+
+[[using-snaps-host-prefix]]
+=== Referencing Resources
+
+If the snap needs to lookup any resources, this can be done in the
+normal way and if the resource cannot be found in the snap, then the
+host will be checked. Remember that a host and all its snaps use a
+single `ServletContext`. As the snap is always checked first it can hide
+resources at the same path in its host. So if you want to look up a
+resource in the snaps host that exists in the snap simply prefix the
+path with `host:`. This will then cause the Snaps system to bypass the
+snap and look only in its host for the requested resource. If it is not
+found in its host the snap will NOT be checked, the lookup will return
+with nothing.
+
+....
+request.getServletContext().getResource("host:/WEB-INF/sample.properties");
+
+....
+
+This line of Java code gets the ServletContext from the HttpRequest
+object and then tries to get a resource from the host, bypassing the
+snap.
diff --git a/snaps-guide/src/docs/asciidoc/virgo-snaps-guide.adoc b/snaps-guide/src/docs/asciidoc/virgo-snaps-guide.adoc
new file mode 100644
index 0000000..ac0cadd
--- /dev/null
+++ b/snaps-guide/src/docs/asciidoc/virgo-snaps-guide.adoc
@@ -0,0 +1,26 @@
+= Virgo Snaps User Guide
+Daniel Marthaler
+2017-02-04
+:nofooter:
+
+[%hardbreaks]
+Christopher Frost
+Daniel Marthaler
+
+*Virgo Snaps {project-version}* image:images/virgo-logo-large.png[Eclipse Virgo,300,float="right"]
+
+[%hardbreaks]
+VMware Inc. - initial contribution
+Copyright (C) 2009, 2011 VMware Inc. and others
+
+'''
+
+:toc:
+
+:numbered:
+include::introduction.adoc[]
+include::installing.adoc[]
+include::using-snaps.adoc[]
+include::sample-application.adoc[]
+include::further-reading.adoc[]
+include::known-issues.adoc[]
diff --git a/snaps-guide/src/further-reading.xml b/snaps-guide/src/further-reading.xml
deleted file mode 100644
index 8fabcea..0000000
--- a/snaps-guide/src/further-reading.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="further-reading">
- <title>Further Reading</title>
- <para>
- The User and Programmer Guides provide a lot of information about using and developing applications for the @umbrella.product.name@.
- </para>
- <para>
- <ulink url="http://www.eclipse.org/virgo/documentation/">
- @project.name@ Documentation page
- </ulink>
- </para>
- <para>
- <ulink url="../../virgo-programmer-guide/html/index.html">
- @tomcat.product.name@ Programmer Guide
- </ulink>
- </para>
- <para>
- <ulink url="../../virgo-user-guide/html/index.html">
- @tomcat.product.name@ User Guide
- </ulink>
- </para>
- <para>
- <ulink url="http://www.slideshare.net/cgfrost/eclipsecon2011-virgo-snaps">
- Slides from a presentation at EclipseCon 2011 about @snaps.product.name@.
- </ulink>
- </para>
-</chapter>
\ No newline at end of file
diff --git a/snaps-guide/src/installing.xml b/snaps-guide/src/installing.xml
deleted file mode 100644
index df2b3d0..0000000
--- a/snaps-guide/src/installing.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="installation">
- <title>Installing @snaps.product.name@</title>
-
- <section id="installation-zip">
- <title>Installing from the Zip Download</title>
- <para>
- @snaps.product.name.short@ is distributed as a Zip file. This can be downloaded from
- <ulink url="http://www.eclipse.org/virgo/download/">here</ulink>.
- </para>
- <para>
- Once the Zip file is unpacked you will find several things inside, including a copy of this documentation in the
- <literal>docs</literal> folder. The layout is shown below.
- </para>
- <para>
- <imagedata fileref="images/snapsZipFile.png" align="center" width="12cm"/>
- </para>
- <para>
- Take the bundles and plan in the <literal>dist</literal> folder and place them in either the <literal>/repository/usr</literal>
- or <literal>/repository/ext</literal> folder of your Virgo install. Later you need the bundles in the <literal>sample</literal>
- folder. If you wish to view the source for @snaps.product.name.short@ or its sample, then these are in the <literal>src</literal>
- folder.
- </para>
- <para>
- In order to start the Snaps system as a part of your @tomcat.product.name@, the Snaps plan needs to be referenced
- from the <literal>initialArtifacts</literal> property. This is located in the config file at
- <literal>${SERVER_HOME}/config/org.eclipse.virgo.kernel.userregion.properties</literal>. The property should be
- extended like this.
- </para>
- <screen>initialArtifacts=repository:plan/org.eclipse.virgo.kernel.userregion.springdm,
- repository:plan/org.eclipse.virgo.web.tomcat,
- <emphasis>repository:plan/org.eclipse.virgo.snaps</emphasis></screen>
- <para>
- Now you are ready to check that Snaps is working.
- </para>
- </section>
-
- <section id="installation-post">
- <title>Verifying it's working</title>
- <para>
- The sample application in the Zip file demonstrates all of the features of Snaps. You will cover this application in
- detail later, but for now install it to verify that you have a working Snaps install. Start the server up and check
- the output it produces contains the following:
- </para>
- <screen><DE0004I> Starting plan 'org.eclipse.virgo.snaps' version '3.0.0'.
-<DE0004I> Starting bundle 'org.eclipse.virgo.snaps.api' version '@bundle.version@'.
-<DE0005I> Started bundle 'org.eclipse.virgo.snaps.api' version '@bundle.version@'.
-<DE0004I> Starting bundle 'org.eclipse.virgo.snaps.core' version '@bundle.version@'.
-<DE0005I> Started bundle 'org.eclipse.virgo.snaps.core' version '@bundle.version@'.
-<DE0005I> Started plan 'org.eclipse.virgo.snaps' version '3.0.0'.</screen>
- <para>
- Open up the @project.name@ Admin Console by navigating to <literal>http://localhost:8080/admin</literal> and then go
- to the artifacts tab to deploy some new bundles. The first bundle to deploy is located at
- <literal>/sample/org.eclipse.virgo.snaps.sample.animal-@bundle.version@.jar</literal>, select it in the browser and
- upload. In the terminal window you started the @tomcat.product.name@ in you should see the usual messages about the
- bundle starting and this message:
- </para>
- <screen><SN0000I> Host created for path '/animal-menu-bar'</screen>
- <para>
- This shows that the host has been registered and is ready for Snaps to attach to it. To view the application take
- your browser to <literal>http://localhost:8080/animal-menu-bar/</literal>. You should be presented with a green looking
- page that has a menu bar with two links on it. One will take you to the page you are currently on while the other goes
- back to the admin page.
- </para>
- <para>
- This is all very nice, but it's time to deploy another snap that will dynamicaly add some extra content to the app. The next bundle
- to deploy is located at <literal>/sample/org.eclipse.virgo.snaps.sample.dog-@bundle.version@.jar</literal>. Deploy it the same way
- as the last one using the admin console and check the messages to verify it has been bound to the host:
- </para>
- <screen><SN0010I> Snap bound to path '/animal-menu-bar/dog' </screen>
- <para>
- In your browser, go back to the application and refresh the page and a new menu item should now be present. If you click it a new
- page will load with content from the newly installed snap. In this case a picture of a dog.
- </para>
- <para>
- <imagedata fileref="images/sampleDog.png"/>
- </para>
- <para>
- You have now verified that your install is working and can continue on to learn how Snaps works and how you can use it to break up
- your web applications.
- </para>
- </section>
-
-</chapter>
diff --git a/snaps-guide/src/introduction.xml b/snaps-guide/src/introduction.xml
deleted file mode 100644
index 9394989..0000000
--- a/snaps-guide/src/introduction.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="introduction">
- <title>Introduction</title>
- <para>
- This Guide covers @snaps.product.name@ and assumes you are already familiar with OSGi and @project.name@. See <link linkend="further-reading">here</link>.
- </para>
-
- <section id="introduction-concepts">
- <title>Concepts</title>
- <para>
- Using @snaps.product.name@, or @snaps.product.name.short@ for short, you can construct a web application from multiple OSGi
- bundles, each of which serves up content for a distinct sub-portion of your application's URL space. @snaps.product.name.short@
- applications are arranged in a parent/child structure, with each application having at most one top-level parent, and zero or more
- children/grand children and so on. Parents are referred to as the hosts, children as snaps.
- </para>
- <para>
- <imagedata fileref="images/snapsAndHosts.png"/>
- </para>
- <para>
- Here you see that any <literal>HTTP</literal> requests for '/app' will be dealt with by the host bundle while '/app/orders'
- and '/app/billing' will be dealt with by their respective snaps bundles. Each host/snap can use completely different web technologies
- to deal with the requests, @snaps.product.name.short@ places no restrictions on your choices. The developer decides how to split
- the application up and how closely to couple the host and various snaps. @snaps.product.name.short@ has been designed to be as
- un-invasive as possible while still making it easy to share information between the host and its snaps.
- </para>
- </section>
-
- <section id="introduction-prereqs">
- <title>Prerequisites</title>
- <para>
- @snaps.product.name.short@ requires @tomcat.product.name@ and Java SE 6 or later to be installed. Java is available from
- <ulink url="http://www.java.com/">http://www.java.com/</ulink> and elsewhere. @tomcat.product.name@ is available from
- <ulink url="http://www.eclipse.org/virgo/download/">here</ulink>.
- </para>
- </section>
-
-</chapter>
\ No newline at end of file
diff --git a/snaps-guide/src/known-issues.xml b/snaps-guide/src/known-issues.xml
deleted file mode 100644
index 0248011..0000000
--- a/snaps-guide/src/known-issues.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="known-issues">
- <title>Known Issues</title>
- <para>
- This section describes known issues that you might run into, along with corresponding workarounds.
- </para>
-
- <section id="known-issues-jetty-restriction">
- <title>@jetty.product.name@ Restriction</title>
- <para>
- @snaps.product.name@ is not supported on the @jetty.product.name@, please use with the @tomcat.product.name@.
- </para>
- </section>
-
-</chapter>
\ No newline at end of file
diff --git a/snaps-guide/src/sample-application.xml b/snaps-guide/src/sample-application.xml
deleted file mode 100644
index 44d5877..0000000
--- a/snaps-guide/src/sample-application.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="sample-application">
- <title>A Sample Application</title>
- <para>
- The @snaps.product.name@ Zip file comes with a sample application that you may have already deployed to verify
- your @snaps.product.name.short@ install. In this chapter you will look at it in more detail to see how an
- application can be composed and see all the Snaps features in action.
- </para>
- <section id="sample-application-structure">
- <title>Structure of the sample application</title>
- <para>
- The application is very simple, it consists of just a front end, composed of four bundles, a host with
- three Snaps.
- </para>
- <para>
- <imagedata fileref="images/sampleApp.png"/>
- </para>
- <para>
- The host and three snaps show their <literal>Snap-ContextPath</literal>s. The Cat and Dog snaps both
- contribute content while the final snap just contributes styling information in the form of <literal>css</literal>
- files. The following sections look at each of these in detail.
- </para>
- </section>
-
- <section id="sample-application-host">
- <title>The Host bundle</title>
- <para>
- This bundle is very simple with no Java code. It defines the Snaps filter in its <literal>web.xml</literal>
- just as you have seen in the <link linkend="using-snaps-configuring-the-host">Using Snaps</link> section. The
- menu bar uses the taglibs support to render links for each registered Snap.
- </para>
- <programlisting>
-<![CDATA[<ul>
- <li><a href="<c:url value="/"/>">Home</a></li>
- <snaps:snaps var="snaps">
- <c:forEach var="snap" items="${snaps}">
- <c:if test="${snap.contextPath ne '/styles'}">
- <li><a href="<c:url value="${snap.contextPath}${snap.properties['link.path']}"/>">
- ${snap.properties['link.text']}</a>
- </li>
- </c:if>
- </c:forEach>
- </snaps:snaps>
-</ul>]]>
- </programlisting>
- <para>
- This is very similar to an example you have already seen. It puts the links in a list and adds a link at the
- beginning to return to the host. The properties it is referencing are located in the snaps themselves at
- <literal>/META-INF/snap.properties</literal>.
- </para>
- </section>
-
- <section id="sample-application-new-content">
- <title>Adding New Content</title>
- <para>
- If you now deploy both the Dog and Cat snaps, two new items will appear on the menu bar, each providing content
- from their respective snaps.
- </para>
- <para>
- <imagedata fileref="images/sampleCat.png"/>
- </para>
- <para>
- If you look at the Cat page you will see it is also displaying some properties. The Cat Snap is a little more
- complex, it has it's own <literal>DispatcherServlet</literal> defined in its <literal>web.xml</literal> and a
- controller defined using annotations. If you look at the controller code you will see where these two properties
- come from.
- </para>
-<programlisting>
-<![CDATA[@Controller
-public class CatController {
-
- @RequestMapping("/meow")
- public ModelAndView cat(HttpServletRequest request) throws IOException {
- URL host = request.getServletContext().getResource("host:/WEB-INF/sample.properties");
- Properties host_props = new Properties();
- if(host != null){
- host_props.load(host.openStream());
- }
- URL snap = request.getServletContext().getResource("/WEB-INF/sample.properties");
- Properties snap_props = new Properties();
- if(snap != null){
- snap_props.load(snap.openStream());
- }
- return new ModelAndView("index").addObject("host", host_props.getProperty("some.property"))
- .addObject("snap", snap_props.getProperty("some.property"));
- }
-}]]>
- </programlisting>
- <para>
- There are two properties files called <literal>sample.properties</literal> located at the same path within both
- the Cat snap and the host. Each contains a property called <literal>some.property</literal> but with distinct
- value. Looking at the code above you can see the <code>host:</code> prefix being used to ensure the first lookup
- only looks in the host and skips the snap. These values are then placed in the Model for the JSP page to render.
- </para>
- </section>
-
- <section id="sample-application-dynamic-styling">
- <title>Re-styling</title>
- <para>
- Finally the Blue styling snap shows how Snaps can be used in other ways. Deploying this will cause all requests
- to <literal>/styles</literal> to be redirected and the application will change in appearance but not content. All
- this happens without re-deploying the host bundle, although you may need to do a full refresh to clear your browser's
- cache.
- </para>
- <para>
- <imagedata fileref="images/sampleBlue.png"/>
- </para>
- This is the same page as before, being rendered by the host and the Cat snap, but with the style information now coming
- from the Blue snap.
- </section>
-
-</chapter>
\ No newline at end of file
diff --git a/snaps-guide/src/using-snaps.xml b/snaps-guide/src/using-snaps.xml
deleted file mode 100644
index f61a6e2..0000000
--- a/snaps-guide/src/using-snaps.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="using-snaps">
- <title>Using @snaps.product.name@ in your application</title>
- <para>
- Every snap or host should also be a regular WAB (Web Application Bundle), all you have to do is add some additional
- configuration to benefit from @snaps.product.name.short@.
- </para>
-
- <section id="using-snaps-configuring-the-host">
- <title>Configuring the Host</title>
- <para>
- In the WAB that is to act as a host to Snaps bundles, all that needs to be added is a filter in the hosts '
- <literal>web.xml</literal>'. This filter can be mapped to any sub path that you want forwarded to registered
- snaps. It is important to note the extra <literal>dispatcher</literal> declarations in the <literal>filter-mapping</literal>.
- Without these internal lookups, resources like JSPs won't get passed to the appropriate snap when needed.
- </para>
- <programlisting>
-<![CDATA[<filter>
- <filter-name>host-filter-name</filter-name>
- <filter-class>org.eclipse.virgo.snaps.core.SnapHostFilter</filter-class>
-</filter>
-
-<filter-mapping>
- <filter-name>host-filter-name</filter-name>
- <url-pattern>/*</url-pattern>
- <dispatcher>INCLUDE</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- <dispatcher>REQUEST</dispatcher>
-</filter-mapping>]]>
- </programlisting>
- </section>
-
- <section id="using-snaps-configuring-a-snap">
- <title>Configuring a Snap</title>
- <para>
- A snap is a normal WAB with the addition of two extra manifest headers. The first <literal>Snap-Host</literal> is used
- to resolve the WAB you want to act as a host for this snap. The second <literal>Snap-ContextPath</literal> gives the
- path the snap will answer to. In order to reach the snap a request must be made for the host's context path, plus any
- path in the host's Snaps filter followed by the path given with the <literal>Snap-ContextPath</literal> header.
- </para>
- <programlisting>
-<![CDATA[Snap-Host: org.eclipse.virgo.snaps.sample.animal;version="${version:[=.=.=, =.+1)}"
-Snap-ContextPath: /dog]]>
- </programlisting>
- </section>
-
- <section id="using-snaps-taglibs">
- <title>Using the Snaps taglibs</title>
- <para>
- There is a tag library available that makes information about the Snaps environment available to the host from within a
- JSP page. The prefix and URI to declare are <code><%@ taglib prefix="snaps" uri="http://www.eclipse.org/virgo/snaps"
- %></code>. You can now access an array of all the Snaps currently registered with the host. Each snap in the array
- has two values, the first is the context path the Snap is registered with, as given in the snaps manifest header. The
- second is an array of properties, if any, given in a property file in the snap. The file must be in the <literal>META-INF
- </literal> directory and have a name of <literal>snap.properties</literal>. The following code snippet shows all of these
- in use to produce links to each of the installed snaps.
- </para>
- <programlisting>
-<![CDATA[<snaps:snaps var="snaps">
- <c:forEach var="snap" items="${snaps}">
- <a href="<c:url value="${snap.contextPath}${snap.properties['link.path']}"/>">
- ${snap.properties['link.text']}</a>
- </c:forEach>
-</snaps:snaps>]]>
- </programlisting>
- <para>
- The first line uses the Snaps tag library to place the array of snaps into the <code>snaps</code> variable. Then a
- <code>forEach</code> loop goes through each snap. The content of the <code>forEach</code> loop is the really interesting
- bit. The first variable <code>${snap.contextPath}</code> returns the context path of the snap. The two lookups are for
- properties <code>${snap.properties['something']}</code>. They rely on the snap having the properties file in place with
- <literal>link.path</literal> and <literal>link.text</literal> defined in it. This shows the flexibility you have for defining
- your own contract between the host and its snaps. In this case each snap can contribute extra information about how links in
- a menu should be constructed.
- </para>
- </section>
-
- <section id="using-snaps-host-prefix">
- <title>Referencing Resources</title>
- <para>
- If the snap needs to lookup any resources, this can be done in the normal way and if the resource cannot be found in the snap,
- then the host will be checked. Remember that a host and all its snaps use a single <literal>ServletContext</literal>. As the
- snap is always checked first it can hide resources at the same path in its host. So if you want to look up a resource in the
- snaps host that exists in the snap simply prefix the path with <code>host:</code>. This will then cause the Snaps system to
- bypass the snap and look only in its host for the requested resource. If it is not found in its host the snap will NOT be
- checked, the lookup will return with nothing.
- <programlisting>
-<![CDATA[request.getServletContext().getResource("host:/WEB-INF/sample.properties");]]>
- </programlisting>
- <para>
- This line of Java code gets the ServletContext from the HttpRequest object and then tries to get a resource from the host,
- bypassing the snap.
- </para>
- </para>
- </section>
-
-</chapter>
\ No newline at end of file
diff --git a/snaps-guide/src/virgo-snaps-guide.xml b/snaps-guide/src/virgo-snaps-guide.xml
deleted file mode 100644
index e981c5c..0000000
--- a/snaps-guide/src/virgo-snaps-guide.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<book xmlns:xi="http://www.w3.org/2001/XInclude">
- <bookinfo>
- <title>@snaps.product.name@ User Guide</title>
- <titleabbrev>Snaps User Guide</titleabbrev>
- <productname>@snaps.product.name@</productname>
- <releaseinfo>@bundle.version@</releaseinfo>
-
- <mediaobject>
- <imageobject role="fo">
- <imagedata align="center" fileref="images/virgo-logo-small.png" format="PNG" />
- </imageobject>
- <imageobject role="html">
- <imagedata align="right" fileref="images/virgo-logo-small.png" format="PNG" />
- </imageobject>
- </mediaobject>
-
- <authorgroup>
- <author>
- <firstname>Christopher</firstname>
- <surname>Frost</surname>
- </author>
- </authorgroup>
-
- <legalnotice>
- <para>
- Copyright © 2011 VMware Inc.
- </para>
- </legalnotice>
- </bookinfo>
-
- <toc />
- <xi:include href="introduction.xml"/>
- <xi:include href="installing.xml"/>
- <xi:include href="using-snaps.xml"/>
- <xi:include href="sample-application.xml"/>
- <xi:include href="further-reading.xml"/>
- <xi:include href="known-issues.xml"/>
-</book>
diff --git a/test-apps/simple-host/.classpath b/test-apps/simple-host/.classpath
deleted file mode 100644
index dbef789..0000000
--- a/test-apps/simple-host/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/webapp"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.virgo.snaps.core"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/test-apps/simple-host/.project b/test-apps/simple-host/.project
deleted file mode 100644
index aae123e..0000000
--- a/test-apps/simple-host/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>simple-host</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/test-apps/simple-host/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/test-apps/simple-host/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/test-apps/simple-host/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/test-apps/simple-host/.settings/org.eclipse.wst.common.project.facet.core.xml b/test-apps/simple-host/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/test-apps/simple-host/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/test-apps/simple-host/.springBeans b/test-apps/simple-host/.springBeans
deleted file mode 100644
index d079ca1..0000000
--- a/test-apps/simple-host/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.4.RELEASE]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/test-apps/simple-host/build.xml b/test-apps/simple-host/build.xml
deleted file mode 100644
index 8bb1b59..0000000
--- a/test-apps/simple-host/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="simple-host">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <property name="wab.output.dir" value="${basedir}/../../org.eclipse.virgo.snaps.test/target/test-apps"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/test-apps/simple-host/ivy.xml b/test-apps/simple-host/ivy.xml
deleted file mode 100644
index e9db7d1..0000000
--- a/test-apps/simple-host/ivy.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="org.eclipse.virgo.snaps" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.api" rev="${org.slf4j.api}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="provided->runtime"/>
- </dependencies>
-
-</ivy-module>
diff --git a/test-apps/simple-snap/.classpath b/test-apps/simple-snap/.classpath
deleted file mode 100644
index f91dd9e..0000000
--- a/test-apps/simple-snap/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/webapp"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar" sourcepath="/IVY_CACHE/javax.servlet/com.springsource.javax.servlet/3.0.0.v201103241009/com.springsource.javax.servlet-sources-3.0.0.v201103241009.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.osgi/3.8.1.v20120830-144521/org.eclipse.osgi-3.8.1.v20120830-144521.jar" sourcepath="/IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.7.1.R37x_v20110808-1106/org.eclipse.osgi-sources-3.7.1.R37x_v20110808-1106.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.virgo.snaps.core"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/test-apps/simple-snap/.project b/test-apps/simple-snap/.project
deleted file mode 100644
index 4876a4c..0000000
--- a/test-apps/simple-snap/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>simple-snap</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/test-apps/simple-snap/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/test-apps/simple-snap/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/test-apps/simple-snap/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/test-apps/simple-snap/.settings/org.eclipse.wst.common.project.facet.core.xml b/test-apps/simple-snap/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/test-apps/simple-snap/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/test-apps/simple-snap/.springBeans b/test-apps/simple-snap/.springBeans
deleted file mode 100644
index d079ca1..0000000
--- a/test-apps/simple-snap/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.4.RELEASE]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/test-apps/simple-snap/build.xml b/test-apps/simple-snap/build.xml
deleted file mode 100644
index ee2b873..0000000
--- a/test-apps/simple-snap/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="simple-snap">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <property name="wab.output.dir" value="${basedir}/../../org.eclipse.virgo.snaps.test/target/test-apps"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/test-apps/simple-snap/ivy.xml b/test-apps/simple-snap/ivy.xml
deleted file mode 100644
index 5d8257d..0000000
--- a/test-apps/simple-snap/ivy.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="org.eclipse.virgo.snaps" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.osgi" rev="${org.eclipse.osgi}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.api" rev="${org.slf4j.api}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
- </dependencies>
-
-</ivy-module>
diff --git a/test-apps/spring-snap/.classpath b/test-apps/spring-snap/.classpath
deleted file mode 100644
index da2405f..0000000
--- a/test-apps/spring-snap/.classpath
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/webapp"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar" sourcepath="/IVY_CACHE/javax.servlet/com.springsource.javax.servlet/3.0.0.v201103241009/com.springsource.javax.servlet-sources-3.0.0.v201103241009.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.web.servlet/3.1.0.RELEASE/org.springframework.web.servlet-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.web.servlet/3.1.0.RELEASE/org.springframework.web.servlet-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.core/3.1.0.RELEASE/org.springframework.core-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.core/3.1.0.RELEASE/org.springframework.core-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.context/3.1.0.RELEASE/org.springframework.context-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.context/3.1.0.RELEASE/org.springframework.context-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.web/3.1.0.RELEASE/org.springframework.web-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.web/3.1.0.RELEASE/org.springframework.web-sources-3.1.0.RELEASE.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.springframework/org.springframework.beans/3.1.0.RELEASE/org.springframework.beans-3.1.0.RELEASE.jar" sourcepath="/IVY_CACHE/org.springframework/org.springframework.beans/3.1.0.RELEASE/org.springframework.beans-sources-3.1.0.RELEASE.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.virgo.snaps.core"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/test-apps/spring-snap/.project b/test-apps/spring-snap/.project
deleted file mode 100644
index 8f82fb2..0000000
--- a/test-apps/spring-snap/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>spring-snap</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/test-apps/spring-snap/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/test-apps/spring-snap/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/test-apps/spring-snap/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/test-apps/spring-snap/.settings/org.eclipse.wst.common.project.facet.core.xml b/test-apps/spring-snap/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/test-apps/spring-snap/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/test-apps/spring-snap/.springBeans b/test-apps/spring-snap/.springBeans
deleted file mode 100644
index a8d841a..0000000
--- a/test-apps/spring-snap/.springBeans
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.5.M1]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- <config>src/main/webapp/WEB-INF/snap-servlet.xml</config>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/test-apps/spring-snap/build.xml b/test-apps/spring-snap/build.xml
deleted file mode 100644
index afe6de0..0000000
--- a/test-apps/spring-snap/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="spring-snap">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <property name="wab.output.dir" value="${basedir}/../../org.eclipse.virgo.snaps.test/target/test-apps"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/test-apps/spring-snap/ivy.xml b/test-apps/spring-snap/ivy.xml
deleted file mode 100644
index 58fcd33..0000000
--- a/test-apps/spring-snap/ivy.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="org.eclipse.virgo.snaps" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.api" rev="${org.slf4j.api}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="provided->runtime"/>
- <dependency org="org.springframework" name="org.springframework.spring-library" rev="${org.springframework}" conf="provided->runtime"/>
-
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
- </dependencies>
-
-</ivy-module>
diff --git a/test-apps/taglib-host/.classpath b/test-apps/taglib-host/.classpath
deleted file mode 100644
index 2093cf8..0000000
--- a/test-apps/taglib-host/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/webapp"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.virgo.snaps.api"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/test-apps/taglib-host/.project b/test-apps/taglib-host/.project
deleted file mode 100644
index b2b09b2..0000000
--- a/test-apps/taglib-host/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>taglib-host</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/test-apps/taglib-host/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/test-apps/taglib-host/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/test-apps/taglib-host/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/test-apps/taglib-host/.settings/org.eclipse.wst.common.project.facet.core.xml b/test-apps/taglib-host/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/test-apps/taglib-host/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/test-apps/taglib-host/.springBeans b/test-apps/taglib-host/.springBeans
deleted file mode 100644
index d079ca1..0000000
--- a/test-apps/taglib-host/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.4.RELEASE]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/test-apps/taglib-host/build.xml b/test-apps/taglib-host/build.xml
deleted file mode 100644
index 09759e4..0000000
--- a/test-apps/taglib-host/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="taglib-host">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <property name="wab.output.dir" value="${basedir}/../../org.eclipse.virgo.snaps.test/target/test-apps"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/test-apps/taglib-host/ivy.xml b/test-apps/taglib-host/ivy.xml
deleted file mode 100644
index e9db7d1..0000000
--- a/test-apps/taglib-host/ivy.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="org.eclipse.virgo.snaps" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.api" rev="${org.slf4j.api}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="provided->runtime"/>
- </dependencies>
-
-</ivy-module>
diff --git a/test-apps/taglib-snap-one/.classpath b/test-apps/taglib-snap-one/.classpath
deleted file mode 100644
index f91dd9e..0000000
--- a/test-apps/taglib-snap-one/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/webapp"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar" sourcepath="/IVY_CACHE/javax.servlet/com.springsource.javax.servlet/3.0.0.v201103241009/com.springsource.javax.servlet-sources-3.0.0.v201103241009.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.osgi/3.8.1.v20120830-144521/org.eclipse.osgi-3.8.1.v20120830-144521.jar" sourcepath="/IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.7.1.R37x_v20110808-1106/org.eclipse.osgi-sources-3.7.1.R37x_v20110808-1106.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.virgo.snaps.core"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/test-apps/taglib-snap-one/.project b/test-apps/taglib-snap-one/.project
deleted file mode 100644
index 2d6de7e..0000000
--- a/test-apps/taglib-snap-one/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>taglib-snap-one</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/test-apps/taglib-snap-one/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/test-apps/taglib-snap-one/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/test-apps/taglib-snap-one/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/test-apps/taglib-snap-one/.settings/org.eclipse.wst.common.project.facet.core.xml b/test-apps/taglib-snap-one/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/test-apps/taglib-snap-one/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/test-apps/taglib-snap-one/.springBeans b/test-apps/taglib-snap-one/.springBeans
deleted file mode 100644
index d079ca1..0000000
--- a/test-apps/taglib-snap-one/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.4.RELEASE]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/test-apps/taglib-snap-one/build.xml b/test-apps/taglib-snap-one/build.xml
deleted file mode 100644
index 18b8899..0000000
--- a/test-apps/taglib-snap-one/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="taglib-snap-one">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <property name="wab.output.dir" value="${basedir}/../../org.eclipse.virgo.snaps.test/target/test-apps"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/test-apps/taglib-snap-one/ivy.xml b/test-apps/taglib-snap-one/ivy.xml
deleted file mode 100644
index 5d8257d..0000000
--- a/test-apps/taglib-snap-one/ivy.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="org.eclipse.virgo.snaps" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.osgi" rev="${org.eclipse.osgi}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.api" rev="${org.slf4j.api}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
- </dependencies>
-
-</ivy-module>
diff --git a/test-apps/taglib-snap-two/.classpath b/test-apps/taglib-snap-two/.classpath
deleted file mode 100644
index f91dd9e..0000000
--- a/test-apps/taglib-snap-two/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/webapp"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar" sourcepath="/IVY_CACHE/javax.servlet/com.springsource.javax.servlet/3.0.0.v201103241009/com.springsource.javax.servlet-sources-3.0.0.v201103241009.jar"/>
- <classpathentry kind="var" path="IVY_CACHE/org.eclipse.virgo.mirrored/org.eclipse.osgi/3.8.1.v20120830-144521/org.eclipse.osgi-3.8.1.v20120830-144521.jar" sourcepath="/IVY_CACHE/org.eclipse.osgi/org.eclipse.osgi/3.7.1.R37x_v20110808-1106/org.eclipse.osgi-sources-3.7.1.R37x_v20110808-1106.jar"/>
- <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.virgo.snaps.core"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
diff --git a/test-apps/taglib-snap-two/.project b/test-apps/taglib-snap-two/.project
deleted file mode 100644
index 049ba7b..0000000
--- a/test-apps/taglib-snap-two/.project
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>taglib-snap-two</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.wst.common.project.facet.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.springframework.ide.eclipse.core.springbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.springsource.server.ide.bundlor.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.springsource.server.ide.facet.core.bundlenature</nature>
- <nature>org.springframework.ide.eclipse.core.springnature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
- </natures>
-</projectDescription>
diff --git a/test-apps/taglib-snap-two/.settings/org.eclipse.virgo.ide.bundlor.core.prefs b/test-apps/taglib-snap-two/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
deleted file mode 100644
index ad66f73..0000000
--- a/test-apps/taglib-snap-two/.settings/org.eclipse.virgo.ide.bundlor.core.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Apr 15 15:27:27 BST 2009
-org.eclipse.virgo.ide.bundlor.core.template.properties.files=../../build.properties;../../build.versions
-eclipse.preferences.version=1
diff --git a/test-apps/taglib-snap-two/.settings/org.eclipse.wst.common.project.facet.core.xml b/test-apps/taglib-snap-two/.settings/org.eclipse.wst.common.project.facet.core.xml
deleted file mode 100644
index 92aa290..0000000
--- a/test-apps/taglib-snap-two/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
- <installed facet="org.eclipse.virgo.server.bundle" version="1.0"/>
-</faceted-project>
diff --git a/test-apps/taglib-snap-two/.springBeans b/test-apps/taglib-snap-two/.springBeans
deleted file mode 100644
index d079ca1..0000000
--- a/test-apps/taglib-snap-two/.springBeans
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<beansProjectDescription>
- <version>1</version>
- <pluginVersion><![CDATA[2.2.4.RELEASE]]></pluginVersion>
- <configSuffixes>
- <configSuffix><![CDATA[xml]]></configSuffix>
- </configSuffixes>
- <enableImports><![CDATA[false]]></enableImports>
- <configs>
- </configs>
- <configSets>
- </configSets>
-</beansProjectDescription>
diff --git a/test-apps/taglib-snap-two/build.xml b/test-apps/taglib-snap-two/build.xml
deleted file mode 100644
index bc063fd..0000000
--- a/test-apps/taglib-snap-two/build.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="taglib-snap-two">
-
- <property file="${basedir}/../build.properties"/>
- <property file="${basedir}/../../build.versions"/>
- <property name="wab.output.dir" value="${basedir}/../../org.eclipse.virgo.snaps.test/target/test-apps"/>
- <import file="${basedir}/../../virgo-build/wab/default.xml"/>
-
-</project>
diff --git a/test-apps/taglib-snap-two/ivy.xml b/test-apps/taglib-snap-two/ivy.xml
deleted file mode 100644
index 5d8257d..0000000
--- a/test-apps/taglib-snap-two/ivy.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
-<ivy-module
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
- version="1.3">
-
- <info organisation="org.eclipse.virgo.snaps" module="${ant.project.name}"/>
-
- <configurations>
- <include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
- </configurations>
-
- <publications>
- <artifact name="${ant.project.name}" type="wab" ext="jar"/>
- <artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
- </publications>
-
- <dependencies>
- <dependency org="org.eclipse.virgo.mirrored" name="org.eclipse.osgi" rev="${org.eclipse.osgi}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.api" rev="${org.slf4j.api}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="javax.servlet" rev="${javax.servlet}" conf="provided->runtime"/>
- <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
- </dependencies>
-
-</ivy-module>
diff --git a/virgo-build b/virgo-build
deleted file mode 160000
index b3513e2..0000000
--- a/virgo-build
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b3513e2cdfc6f908d7b03f30a2e863c3203b62cb