diff options
Diffstat (limited to 'org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/ChainingJarScanner.java')
-rw-r--r-- | org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/ChainingJarScanner.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/ChainingJarScanner.java b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/ChainingJarScanner.java new file mode 100644 index 0000000..a7a6316 --- /dev/null +++ b/org.eclipse.gemini.web.tomcat/src/main/java/org/eclipse/gemini/web/tomcat/internal/ChainingJarScanner.java @@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright (c) 2009, 2010 VMware Inc. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * and Apache License v2.0 which accompanies this distribution. + * The Eclipse Public License is available at + * http://www.eclipse.org/legal/epl-v10.html + * and the Apache License v2.0 is available at + * http://www.opensource.org/licenses/apache2.0.php. + * You may elect to redistribute this code under either of these licenses. + * + * Contributors: + * VMware Inc. - initial contribution + *******************************************************************************/ + +package org.eclipse.gemini.web.tomcat.internal; + +import java.util.Set; + +import javax.servlet.ServletContext; + +import org.apache.tomcat.JarScanner; +import org.apache.tomcat.JarScannerCallback; + +/** + * A <code>JarScanner</code> implementation that delegates to a chain of <code>JarScanner</code>s. + * <p /> + * + * <strong>Concurrent Semantics</strong><br /> + * + * Thread-safe. + * + */ +final class ChainingJarScanner implements JarScanner { + + private final JarScanner[] jarScanners; + + public ChainingJarScanner(JarScanner... jarScanners) { + this.jarScanners = jarScanners; + } + + public void scan(ServletContext context, ClassLoader classloader, JarScannerCallback callback, Set<String> jarsToSkip) { + for (JarScanner jarScanner : jarScanners) { + jarScanner.scan(context, classloader, callback, jarsToSkip); + } + } + +} |