@Override protected WebResourceSet createMainResourceSet() { final Path docBase = config.docBase(); assert docBase.isAbsolute(); final String docBaseStr = docBase.toString(); getContext().setDocBase(docBaseStr); if (Files.isDirectory(docBase)) { return new DirResourceSet(this, "/", docBaseStr, "/"); } final Optional<String> jarRootOpt = config.jarRoot(); if (jarRootOpt.isPresent()) { // If docBase is a JAR file final String jarRoot = jarRootOpt.get(); if ("/".equals(jarRoot)) { return new JarResourceSet(this, "/", docBaseStr, "/"); } else { return new JarSubsetResourceSet(this, "/", docBaseStr, "/", jarRoot); } } throw new IllegalArgumentException(sm.getString("standardRoot.startInvalidMain", docBaseStr)); } }
protected WebResourceSet createMainResourceSet() { String docBase = context.getDocBase(); WebResourceSet mainResourceSet; if (docBase == null) { mainResourceSet = new EmptyResourceSet(this); } else { File f = new File(docBase); if (!f.isAbsolute()) { f = new File(((Host)context.getParent()).getAppBaseFile(), f.getPath()); } if (f.isDirectory()) { mainResourceSet = new DirResourceSet(this, "/", f.getAbsolutePath(), "/"); } else if(f.isFile() && docBase.endsWith(".war")) { mainResourceSet = new WarResourceSet(this, "/", f.getAbsolutePath()); } else { throw new IllegalArgumentException( sm.getString("standardRoot.startInvalidMain", f.getAbsolutePath())); } } return mainResourceSet; }
private void addConfiguredDocBases(final StandardContext standardContext, final ContextInfo contextInfo) { if (contextInfo.appInfo.path != null) { // add external web resources final String contextPath = standardContext.getServletContext().getContextPath(); final String name = contextPath.isEmpty() ? "ROOT" : contextPath.substring(1); final String webResources = SystemInstance.get().getProperty("tomee." + name + ".docBases", contextInfo.appInfo.properties.getProperty("docBases")); if (webResources != null) { for (final String alt : webResources.trim().split(",")) { final String trim = alt.trim(); if (trim.isEmpty()) { continue; } if (!new File(trim).isDirectory()) { logger.warning("Can't add docBase which are not directory: " + trim); continue; } final WebResourceRoot root = standardContext.getResources(); root.addPreResources(new DirResourceSet(root, "/", trim, "/")); } } } }
protected WebResourceSet createMainResourceSet() { String docBase = context.getDocBase(); WebResourceSet mainResourceSet; if (docBase == null) { mainResourceSet = new EmptyResourceSet(this); } else { File f = new File(docBase); if (!f.isAbsolute()) { f = new File(((Host)context.getParent()).getAppBaseFile(), f.getPath()); } if (f.isDirectory()) { mainResourceSet = new DirResourceSet(this, "/", f.getAbsolutePath(), "/"); } else if(f.isFile() && docBase.endsWith(".war")) { mainResourceSet = new WarResourceSet(this, "/", f.getAbsolutePath()); } else { throw new IllegalArgumentException( sm.getString("standardRoot.startInvalidMain", f.getAbsolutePath())); } } return mainResourceSet; }
File additionClassesFolder = new File(rootFolder.getAbsolutePath(), "target/classes"); if (additionClassesFolder.exists()) { resourceSet = new DirResourceSet(resources, "/WEB-INF/classes", additionClassesFolder.getAbsolutePath(), "/"); LOGGER.info("Loading application resources from '" + additionClassesFolder.getAbsolutePath() + "'"); } else {
File additionClassesFolder = new File(rootFolder.getAbsolutePath(), "target/classes"); if (additionClassesFolder.exists()) { resourceSet = new DirResourceSet(resources, "/WEB-INF/classes", additionClassesFolder.getAbsolutePath(), "/"); LOGGER.info("Loading application resources from '" + additionClassesFolder.getAbsolutePath() + "'"); } else {
main = new DirResourceSet(this, "/", f.getAbsolutePath(), "/"); } else if(f.isFile() && docBase.endsWith(".war")) { main = new JarResourceSet(this, "/", f.getAbsolutePath(), "/");
/** * @param context the context to configure * @throws IOException an IO Exception * @throws ServletException a Servlet Exception */ protected void configWebApp(final Context context) throws IOException, ServletException { final String libDir = getLibDir(); final String classesDir = getClassesDir(); configJarScanner(context); WebResourceRoot resources = new StandardRoot(context); context.setResources(resources); // Declare an alternative location for the "WEB-INF/lib" dir if (libDir != null && !libDir.isEmpty()) { resources.addPreResources(new DirResourceSet(resources, Constants.WEB_INF_LIB, libDir, "/")); } // Declare an alternative location for the "WEB-INF/classes" dir if (classesDir != null && !classesDir.isEmpty()) { resources.addPreResources(new DirResourceSet(resources, Constants.WEB_INF_CLASSES, classesDir, "/")); } // Stop persistent sessions StandardManager mgr = new StandardManager(); mgr.setPathname(null); context.setManager(mgr); // Delay for requets to stop processing in milliseconds ((StandardContext) context).setUnloadDelay(10000); }
@Test public void testingResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getCalledAnswer().getCalls()) .isEqualTo(0); }
@Test public void testingResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getWebResourceRoot().getCreateWebResourceSetCalls()) .isEqualTo(0); }
@Test public void testingResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getCalledAnswer().getCalls()) .isEqualTo(0); }
@Test public void embeddedJarWithoutAppResources2() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.jar"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(dirResourceSet, jarWarResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getWebResourceRoot().getCreateWebResourceSetCalls()) .isEqualTo(2); }
@Test public void embeddedJarWithoutAppResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.jar"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(jarWarResourceSet, dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getWebResourceRoot().getCreateWebResourceSetCalls()) .isEqualTo(2); }
@Test public void embeddedWarWithoutAppResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.war"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(jarWarResourceSet, dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getCalledAnswer().getCalls()) .isEqualTo(0); }
@Test public void embeddedJarWithoutAppResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.jar"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(jarWarResourceSet, dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getCalledAnswer().getCalls()) .isEqualTo(1); }
@Test public void embeddedJarWithoutAppResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.jar"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(jarWarResourceSet, dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getCalledAnswer().getCalls()) .isEqualTo(1); }
@Test public void embeddedWarWithoutAppResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.war"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(jarWarResourceSet, dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getCalledAnswer().getCalls()) .isEqualTo(0); }
@Test public void embeddedWarWithoutAppResources() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.war"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(jarWarResourceSet, dirResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getWebResourceRoot().getCreateWebResourceSetCalls()) .isEqualTo(0); }
@Test public void embeddedJarWithoutAppResources2() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.jar"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(dirResourceSet, jarWarResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getCalledAnswer().getCalls()) .isEqualTo(1); }
@Test public void embeddedJarWithoutAppResources2() throws LifecycleException { ContextMock contextMock = new ContextMock(); File file = new File(TARGET + File.separator + TEST_CLASSES + File.separator + "test.jar"); JarWarResourceSet jarWarResourceSet = new JarWarResourceSet(contextMock.getWebResourceRoot(), "/", file.getAbsolutePath(), INTERNAL_JAR, METAINF_RESOURCES); jarWarResourceSet.init(); DirResourceSet dirResourceSet = new DirResourceSet(contextMock.getWebResourceRoot(), TEST, TEST, TEST); contextMock.init(dirResourceSet, jarWarResourceSet); callApplicationEvent(contextMock); assertThat(contextMock.getCalledAnswer().getCalls()) .isEqualTo(1); }