Handle case when the OSGi container is not Equinox.
diff --git a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/TomcatServletContainer.java b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/TomcatServletContainer.java
index 72d714c..4bc673a 100644
--- a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/TomcatServletContainer.java
+++ b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/TomcatServletContainer.java
@@ -102,7 +102,7 @@
 
             BundleWebappLoader loader = new BundleWebappLoader(bundle, this.classLoaderCustomizer);
             context.setLoader(loader);
-            context.setResources(new BundleWebResourceRoot(bundle, docBase));
+            context.setResources(new BundleWebResourceRoot(bundle));
 
             ServletContext servletContext = context.getServletContext();
 
diff --git a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceRoot.java b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceRoot.java
index d645640..7360db0 100644
--- a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceRoot.java
+++ b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceRoot.java
@@ -25,7 +25,6 @@
 import org.apache.catalina.Host;

 import org.apache.catalina.WebResource;

 import org.apache.catalina.WebResourceSet;

-import org.apache.catalina.webresources.EmptyResourceSet;

 import org.apache.catalina.webresources.StandardRoot;

 import org.osgi.framework.Bundle;

 

@@ -37,16 +36,9 @@
 

     private Path docBase;

 

-    public BundleWebResourceRoot(Bundle bundle, String docBaseStr) {

+    public BundleWebResourceRoot(Bundle bundle) {

         this.bundle = bundle;

         this.main = new BundleWebResource(this.bundle, this);

-

-        if (docBaseStr != null) {

-            this.docBase = Paths.get(docBaseStr);

-            if (!this.docBase.isAbsolute()) {

-                this.docBase = Paths.get(((Host) getContext().getParent()).getAppBaseFile().getPath()).resolve(this.docBase);

-            }

-        }

     }

 

     @Override

@@ -59,31 +51,18 @@
     public void createWebResourceSet(ResourceSetType type, String webAppMount, String base, String archivePath, String internalPath) {

         WebResourceSet resourceSet = null;

 

-        if (base.startsWith("bundleentry")) {

-            if (archivePath != null) {

-                if (archivePath.toLowerCase(Locale.ENGLISH).endsWith(".jar")) {

-                    resourceSet = new BundleJarResourceSet(this, webAppMount, base + archivePath, internalPath);

-                } else {

-                    WebResource entry = ((BundleWebResource) this.main).getNamedEntry(archivePath).getKey();

-                    if (entry != null) {

-                        resourceSet = new BundleWebResourceSet(entry, this, webAppMount, this.docBase.toAbsolutePath().toString() + archivePath,

-                            internalPath);

-                    }

-                }

-

-                if (type.equals(ResourceSetType.CLASSES_JAR) && resourceSet != null) {

-                    resourceSet.setClassLoaderOnly(true);

+        if (archivePath != null) {

+            if (archivePath.toLowerCase(Locale.ENGLISH).endsWith(".jar")) {

+                resourceSet = new BundleJarResourceSet(this, webAppMount, base + archivePath, internalPath);

+            } else {

+                WebResource entry = ((BundleWebResource) this.main).getNamedEntry(archivePath).getKey();

+                if (entry != null) {

+                    resourceSet = new BundleWebResourceSet(entry, this, webAppMount, base + archivePath, internalPath);

                 }

             }

-        } else {

-            // TODO need additional testing

-            WebResource entry = ((BundleWebResource) this.main).getNamedEntry(base).getKey();

-            if (entry != null) {

-                resourceSet = new BundleWebResourceSet(entry, this, webAppMount, base, internalPath);

 

-                if (type.equals(ResourceSetType.CLASSES_JAR)) {

-                    resourceSet.setClassLoaderOnly(true);

-                }

+            if (type.equals(ResourceSetType.CLASSES_JAR) && resourceSet != null) {

+                resourceSet.setClassLoaderOnly(true);

             }

         }

 

@@ -122,16 +101,15 @@
 

     @Override

     protected WebResourceSet createMainResourceSet() {

-        WebResourceSet mainResourceSet;

-

-        if (this.docBase == null) {

-            // TODO When we are in not Equinox case the docBase will be null

-            // we need to handle this case also

-            mainResourceSet = new EmptyResourceSet(this);

-        } else {

-            mainResourceSet = new BundleWebResourceSet(this.main, this, "/", this.docBase.toAbsolutePath().toString(), "/");

+        String docBaseStr = getContext().getDocBase();

+        if (docBaseStr != null) {

+            this.docBase = Paths.get(docBaseStr);

+            if (!this.docBase.isAbsolute()) {

+                this.docBase = Paths.get(((Host) getContext().getParent()).getAppBaseFile().getPath()).resolve(this.docBase);

+            }

         }

-        return mainResourceSet;

+

+        return new BundleWebResourceSet(this.main, this, "/", this.docBase != null ? this.docBase.toAbsolutePath().toString() : null, "/");

     }

 

     private static class BaseLocation {

diff --git a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSet.java b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSet.java
index b44bd94..f6bfbe6 100644
--- a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSet.java
+++ b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSet.java
@@ -17,9 +17,6 @@
 package org.eclipse.gemini.web.tomcat.internal.bundleresources;

 

 import java.net.URL;

-import java.nio.file.Files;

-import java.nio.file.Path;

-import java.nio.file.Paths;

 import java.util.ArrayList;

 import java.util.List;

 import java.util.Map.Entry;

@@ -28,7 +25,6 @@
 import org.apache.catalina.LifecycleException;

 import org.apache.catalina.WebResource;

 import org.apache.catalina.WebResourceRoot;

-import org.apache.catalina.WebResourceRoot.ResourceSetType;

 import org.apache.catalina.util.ResourceSet;

 import org.apache.catalina.webresources.EmptyResource;

 

@@ -43,14 +39,6 @@
         setInternalPath(internalPath);

         this.bundleEntry = bundleEntry;

 

-        if (root.getContext().getAddWebinfClassesResources()) {

-            Path f = Paths.get(base, internalPath, "/WEB-INF/classes/META-INF/resources");

-

-            if (Files.isDirectory(f)) {

-                root.createWebResourceSet(ResourceSetType.RESOURCE_JAR, "/", f.toAbsolutePath().toString(), null, "/");

-            }

-        }

-

         if (getRoot().getState().isAvailable()) {

             try {

                 start();

diff --git a/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSetTests.java b/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSetTests.java
index 5bf3be3..a2ec273 100644
--- a/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSetTests.java
+++ b/org.eclipse.gemini.web.tomcat/src/test/java/org/eclipse/gemini/web/tomcat/internal/bundleresources/BundleWebResourceSetTests.java
@@ -25,7 +25,6 @@
 
 import java.io.File;
 
-import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleState;
 import org.apache.catalina.WebResource;
 import org.apache.catalina.WebResourceRoot;
@@ -46,8 +45,6 @@
 
     private WebResourceRoot root;
 
-    private Context context;
-
     @Before
     public void setUp() throws Exception {
         this.testBundle.addEntry("", new File("src/test/resources/").toURI().toURL());
@@ -56,15 +53,12 @@
         this.testBundle.setFindEntriesDelegate(new FindEntriesDelegateImpl(this.testBundle));
 
         this.root = createMock(WebResourceRoot.class);
-        this.context = createMock(Context.class);
-        expect(this.root.getContext()).andReturn(this.context);
-        expect(this.context.getAddWebinfClassesResources()).andReturn(false);
         expect(this.root.getState()).andReturn(LifecycleState.STARTED);
     }
 
     @Test
     public void testGetAttributesOfDirectory() {
-        replay(this.root, this.context);
+        replay(this.root);
 
         this.bundleWebResourceSet = new BundleWebResourceSet(new BundleWebResource(this.testBundle, this.root), this.root, "/", null, "/");
         WebResource webResource = this.bundleWebResourceSet.getResource(DIRECTORY_NAME);
@@ -78,12 +72,12 @@
 
         assertTrue(webResource.getContentLength() != -1);
 
-        verify(this.root, this.context);
+        verify(this.root);
     }
 
     @Test
     public void testGetAttributesOfFile() {
-        replay(this.root, this.context);
+        replay(this.root);
 
         this.bundleWebResourceSet = new BundleWebResourceSet(new BundleWebResource(this.testBundle, this.root), this.root, "/", null, "/");
         WebResource webResource = this.bundleWebResourceSet.getResource(FILE_NAME);
@@ -97,7 +91,7 @@
 
         assertTrue(webResource.getContentLength() != -1);
 
-        verify(this.root, this.context);
+        verify(this.root);
     }
 
 }