Author: andygumbrecht
Date: Mon Jun  3 11:52:40 2013
New Revision: 1488967

URL: http://svn.apache.org/r1488967
Log:
Address https://issues.apache.org/jira/browse/OPENEJB-2030
Cleanups and some helpful debugging.

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/PerformanceTimer.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java?rev=1488967&r1=1488966&r2=1488967&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/cdi/ThreadSingletonServiceImpl.java
 Mon Jun  3 11:52:40 2013
@@ -15,7 +15,6 @@
  * limitations under the License.
  */
 
-
 package org.apache.openejb.cdi;
 
 import org.apache.openejb.AppContext;
@@ -71,7 +70,7 @@ public class ThreadSingletonServiceImpl 
     }
 
     @Override
-    public void initialize(StartupObject startupObject) {
+    public void initialize(final StartupObject startupObject) {
         final AppContext appContext = startupObject.getAppContext();
 
         appContext.setCdiEnabled(hasBeans(startupObject.getAppInfo()));
@@ -79,7 +78,7 @@ public class ThreadSingletonServiceImpl 
         //initialize owb context, cf geronimo's OpenWebBeansGBean
         final Properties properties = new Properties();
 
-        Map<Class<?>, Object> services = new HashMap<Class<?>, Object>();
+        final Map<Class<?>, Object> services = new HashMap<Class<?>, Object>();
         properties.setProperty(OpenWebBeansConfiguration.APPLICATION_IS_JSP, 
"true");
         properties.setProperty(OpenWebBeansConfiguration.USE_EJB_DISCOVERY, 
"true");
         //from CDI builder
@@ -90,7 +89,8 @@ public class ThreadSingletonServiceImpl 
         properties.setProperty(OpenWebBeansConfiguration.IGNORED_INTERFACES, 
"org.apache.aries.proxy.weaving.WovenProxy");
 
         final String failoverService = 
startupObject.getAppInfo().properties.getProperty("org.apache.webbeans.spi.FailOverService",
-                
SystemInstance.get().getProperty("org.apache.webbeans.spi.FailOverService", 
(String) null));
+                                                                               
          
SystemInstance.get().getProperty("org.apache.webbeans.spi.FailOverService",
+                                                                               
                                           null));
         if (failoverService != null) {
             
properties.setProperty(OpenWebBeansConfiguration.IGNORED_INTERFACES, 
failoverService);
         }
@@ -119,24 +119,24 @@ public class ThreadSingletonServiceImpl 
         services.put(JNDIService.class, new OpenEJBJndiService());
         services.put(TransactionService.class, new 
OpenEJBTransactionService());
         if (startupObject.getWebContext() == null) {
-            services.put(ELAdaptor.class,new CustomELAdapter(appContext));
+            services.put(ELAdaptor.class, new CustomELAdapter(appContext));
         } else {
-            services.put(ELAdaptor.class,new CustomELAdapter(appContext, 
startupObject.getWebContext()));
+            services.put(ELAdaptor.class, new CustomELAdapter(appContext, 
startupObject.getWebContext()));
         }
         services.put(ScannerService.class, new CdiScanner());
         services.put(LoaderService.class, new OptimizedLoaderService());
 
         optional(services, ConversationService.class, 
"org.apache.webbeans.jsf.DefaultConversationService");
 
-        ClassLoader oldClassLoader = 
Thread.currentThread().getContextClassLoader();
-        ClassLoader cl;
+        final ClassLoader oldClassLoader = 
Thread.currentThread().getContextClassLoader();
+        final ClassLoader cl;
         if (oldClassLoader != 
ThreadSingletonServiceImpl.class.getClassLoader() && 
ThreadSingletonServiceImpl.class.getClassLoader() != 
oldClassLoader.getParent()) {
             cl = new MultipleClassLoader(oldClassLoader, 
ThreadSingletonServiceImpl.class.getClassLoader());
         } else {
             cl = oldClassLoader;
         }
         Thread.currentThread().setContextClassLoader(cl);
-        WebBeansContext webBeansContext;
+        final WebBeansContext webBeansContext;
         Object old = null;
         try {
             if (startupObject.getWebContext() == null) {
@@ -165,16 +165,18 @@ public class ThreadSingletonServiceImpl 
         }
     }
 
-    private boolean hasBeans(AppInfo appInfo) {
-        for (EjbJarInfo ejbJar : appInfo.ejbJars) {
-            if (ejbJar.beans != null) return true;
+    private boolean hasBeans(final AppInfo appInfo) {
+        for (final EjbJarInfo ejbJar : appInfo.ejbJars) {
+            if (ejbJar.beans != null) {
+                return true;
+            }
         }
         return false;
     }
 
-    private <T> void optional(Map<Class<?>, Object> services, Class<T> type, 
String implementation) {
+    private <T> void optional(final Map<Class<?>, Object> services, final 
Class<T> type, final String implementation) {
         try {
-            Class clazz = 
this.getClass().getClassLoader().loadClass(implementation);
+            final Class clazz = 
this.getClass().getClassLoader().loadClass(implementation);
             services.put(type, type.cast(clazz.newInstance()));
 
             logger.debug(String.format("CDI Service Installed: %s = %s", 
type.getName(), implementation));
@@ -187,11 +189,11 @@ public class ThreadSingletonServiceImpl 
 
     //not sure what openejb will need
 
-    private void setConfiguration(OpenWebBeansConfiguration configuration) {
+    private void setConfiguration(final OpenWebBeansConfiguration 
configuration) {
         //from CDI builder
         configuration.setProperty(SecurityService.class.getName(), 
ManagedSecurityService.class.getName());
         
configuration.setProperty(OpenWebBeansConfiguration.INTERCEPTOR_FORCE_NO_CHECKED_EXCEPTIONS,
 "false");
-//        
configuration.setProperty(OpenWebBeansConfiguration.APPLICATION_IS_JSP, "true");
+        //        
configuration.setProperty(OpenWebBeansConfiguration.APPLICATION_IS_JSP, "true");
 
         
configuration.setProperty(OpenWebBeansConfiguration.CONTAINER_LIFECYCLE, 
OpenEJBLifecycle.class.getName());
         
configuration.setProperty(OpenWebBeansConfiguration.TRANSACTION_SERVICE, 
OpenEJBTransactionService.class.getName());
@@ -202,30 +204,30 @@ public class ThreadSingletonServiceImpl 
     }
 
     @Override
-    public Object contextEntered(WebBeansContext newOWBContext) {
+    public Object contextEntered(final WebBeansContext newOWBContext) {
         return enter(newOWBContext);
     }
 
-    public static WebBeansContext enter(WebBeansContext newOWBContext) {
-        WebBeansContext oldContext = contexts.get();
+    public static WebBeansContext enter(final WebBeansContext newOWBContext) {
+        final WebBeansContext oldContext = contexts.get();
         contexts.set(newOWBContext);
-        contextMessage(newOWBContext, "Enter:");
-        return oldContext;
-    }
 
-    private static void contextMessage(WebBeansContext newOWBContext, String 
prefix) {
         if (logger.isDebugEnabled()) {
-            logger.debug(prefix + "'" + newOWBContext + "'");
+            logger.debug("Enter:'" + newOWBContext + "'");
         }
+
+        return oldContext;
     }
 
     @Override
-    public void contextExited(Object oldContext) {
+    public void contextExited(final Object oldContext) {
         exit(oldContext);
     }
 
-    public static void exit(Object oldContext) {
-        if (oldContext != null && !(oldContext instanceof WebBeansContext)) 
throw new IllegalArgumentException("ThreadSingletonServiceImpl can only be used 
with WebBeansContext, not " + oldContext.getClass().getName());
+    public static void exit(final Object oldContext) {
+        if (oldContext != null && !(oldContext instanceof WebBeansContext)) {
+            throw new IllegalArgumentException("ThreadSingletonServiceImpl can 
only be used with WebBeansContext, not " + oldContext.getClass().getName());
+        }
         contexts.set((WebBeansContext) oldContext);
     }
 
@@ -251,12 +253,12 @@ public class ThreadSingletonServiceImpl 
         }
 
         final ContainerSystem containerSystem = 
SystemInstance.get().getComponent(ContainerSystem.class);
-        for (AppContext appContext : containerSystem.getAppContexts()) {
+        for (final AppContext appContext : containerSystem.getAppContexts()) {
             if (appContext.getClassLoader().equals(cl)) {
                 context = appContext.getWebBeansContext();
                 break;
             }
-            for (WebContext web : appContext.getWebContexts()) {
+            for (final WebContext web : appContext.getWebContexts()) {
                 if (web.getClassLoader().equals(cl)) {
                     if (web.getWebbeansContext() != null) { // ear
                         context = web.getWebbeansContext();
@@ -310,14 +312,16 @@ public class ThreadSingletonServiceImpl 
     }
 
     @Override
-    public WebBeansContext get(Object key) {
+    public WebBeansContext get(final Object key) {
         return getContext((ClassLoader) key);
     }
 
     @Override
-    public void clear(Object key) {
+    public void clear(final Object key) {
         final WebBeansContext ctx = getContext((ClassLoader) key);
-        contextMessage(ctx, "clearing ");
+        if (logger.isDebugEnabled()) {
+            logger.debug("Clearing:'" + ctx + "'");
+        }
         contextByClassLoader.remove(key);
         ctx.clear();
     }
@@ -325,7 +329,7 @@ public class ThreadSingletonServiceImpl 
     public static String sessionContextClass() {
         if (SESSION_CONTEXT_CLAZZ != null) {
             if ("http".equals(SESSION_CONTEXT_CLAZZ)) { // easy way to manage 
this config
-                return  
"org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession";
+                return 
"org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession";
             }
             return SESSION_CONTEXT_CLAZZ;
         }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java?rev=1488967&r1=1488966&r2=1488967&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java
 Mon Jun  3 11:52:40 2013
@@ -49,7 +49,7 @@ import static org.apache.openejb.util.UR
  */
 public class DeploymentsResolver implements DeploymentFilterable {
 
-    private static final String EXCLUDE_INCLUDE_ORDER = 
SystemInstance.get().getOptions().get("openejb.exclude-include.order", 
"include-exclude");
+    private static final String EXCLUDE_INCLUDE_ORDER = 
SystemInstance.get().getOptions().get("openejb.exclude-include.order", 
"exclude-include");
     private static final String[] ignoreDirs = 
SystemInstance.get().getProperty("openejb.ignore.directories", 
".svn,_svn,cvs,.git,.hg").split(",");
     private static final Logger logger = DeploymentLoader.logger;
     private static File lib = null;
@@ -66,10 +66,7 @@ public class DeploymentsResolver impleme
         if (new File(f.getParentFile(), f.getName() + ".war").exists()) {
             return true;
         }
-        if (new File(f.getParentFile(), f.getName() + ".ear").exists()) {
-            return true;
-        }
-        return false;
+        return new File(f.getParentFile(), f.getName() + ".ear").exists();
     }
 
     protected static boolean isValidDirectory(final File file) {
@@ -126,6 +123,7 @@ public class DeploymentsResolver impleme
     }
 
     public static class DeploymentsConfigurationException extends 
RuntimeException {
+
         public DeploymentsConfigurationException(final String message) {
             super(message);
         }
@@ -170,7 +168,9 @@ public class DeploymentsResolver impleme
 
             // Ignore any unpacked versions
             for (final File file : list) {
-                if (!isArchive(file)) continue;
+                if (!isArchive(file)) {
+                    continue;
+                }
                 final String archive = file.getAbsolutePath();
                 files.remove(archive.substring(0, archive.length() - 4));
             }
@@ -184,8 +184,12 @@ public class DeploymentsResolver impleme
     }
 
     private static boolean isArchive(final File file) {
-        if (!file.isFile()) return false;
-        if (!file.getName().toLowerCase().endsWith("ar")) return false;
+        if (!file.isFile()) {
+            return false;
+        }
+        if (!file.getName().toLowerCase().endsWith("ar")) {
+            return false;
+        }
 
         final String name = file.getName();
         final char c = name.charAt(name.length() - 4);
@@ -276,7 +280,17 @@ public class DeploymentsResolver impleme
                 final boolean willScrape = requireDescriptors.size() < 
RequireDescriptors.values().length;
 
                 if (size < 50 && willScrape) {
-                    logger.info("Inspecting classpath for applications: " + 
urls.size() + " urls. Consider adjusting your exclude/include.  Current 
settings: " + CLASSPATH_EXCLUDE + "='" + exclude + "', " + CLASSPATH_INCLUDE + 
"='" + include + "'");
+                    logger.info("Inspecting classpath for applications: " +
+                                urls.size() +
+                                " urls. Consider adjusting your 
exclude/include.  Current settings: " +
+                                CLASSPATH_EXCLUDE +
+                                "='" +
+                                exclude +
+                                "', " +
+                                CLASSPATH_INCLUDE +
+                                "='" +
+                                include +
+                                "'");
                 } else if (willScrape) {
                     logger.warning("Inspecting classpath for applications: " + 
urls.size() + " urls.");
                     logger.warning("ADJUST THE EXCLUDE/INCLUDE!!!.  Current 
settings: " + CLASSPATH_EXCLUDE + "='" + exclude + "', " + CLASSPATH_INCLUDE + 
"='" + include + "'");
@@ -284,22 +298,23 @@ public class DeploymentsResolver impleme
             }
 
             final long begin = System.currentTimeMillis();
-            processUrls(urls, classLoader, requireDescriptors, base, jarList);
+            processUrls("DeploymentsResolver1", urls, classLoader, 
requireDescriptors, base, jarList);
             final long end = System.currentTimeMillis();
             final long time = end - begin;
 
             UrlSet unchecked = new UrlSet();
+
             if (!filterDescriptors) {
                 unchecked = 
NewLoaderLogic.applyBuiltinExcludes(prefiltered.exclude(urlSet));
                 if (filterSystemApps) {
                     unchecked = 
unchecked.exclude(".*/openejb-[^/]+(.(jar|ear|war)(./)?|/target/classes/?)");
                 }
-                processUrls(unchecked.getUrls(), classLoader, 
EnumSet.allOf(RequireDescriptors.class), base, jarList);
+                processUrls("DeploymentsResolver2", unchecked.getUrls(), 
classLoader, EnumSet.allOf(RequireDescriptors.class), base, jarList);
             }
 
             if (logger.isDebugEnabled()) {
                 final int urlCount = urlSet.getUrls().size() + 
unchecked.getUrls().size();
-                logger.debug("URLs after filtering: " + urlCount);
+                logger.debug("DeploymentsResolver: URLs after filtering: " + 
urlCount);
                 for (final URL url : urlSet.getUrls()) {
                     logger.debug("Annotations path: " + url);
                 }
@@ -308,7 +323,9 @@ public class DeploymentsResolver impleme
                 }
             }
 
-            if (urls.size() == 0) return;
+            if (urls.size() == 0) {
+                return;
+            }
 
             if (time < 1000) {
                 logger.debug("Searched " + urls.size() + " classpath urls in " 
+ time + " milliseconds.  Average " + (time / urls.size()) + " milliseconds per 
url.");
@@ -316,7 +333,15 @@ public class DeploymentsResolver impleme
                 logger.info("Searched " + urls.size() + " classpath urls in " 
+ time + " milliseconds.  Average " + (time / urls.size()) + " milliseconds per 
url.");
             } else if (time < 10000) {
                 logger.warning("Searched " + urls.size() + " classpath urls in 
" + time + " milliseconds.  Average " + (time / urls.size()) + " milliseconds 
per url.");
-                logger.warning("Consider adjusting your " + CLASSPATH_EXCLUDE 
+ " and " + CLASSPATH_INCLUDE + " settings.  Current settings: exclude='" + 
exclude + "', include='" + include + "'");
+                logger.warning("Consider adjusting your " +
+                               CLASSPATH_EXCLUDE +
+                               " and " +
+                               CLASSPATH_INCLUDE +
+                               " settings.  Current settings: exclude='" +
+                               exclude +
+                               "', include='" +
+                               include +
+                               "'");
             } else {
                 logger.fatal("Searched " + urls.size() + " classpath urls in " 
+ time + " milliseconds.  Average " + (time / urls.size()) + " milliseconds per 
url.  TOO LONG!");
                 logger.fatal("ADJUST THE EXCLUDE/INCLUDE!!!.  Current 
settings: " + CLASSPATH_EXCLUDE + "='" + exclude + "', " + CLASSPATH_INCLUDE + 
"='" + include + "'");
@@ -336,7 +361,12 @@ public class DeploymentsResolver impleme
 
     }
 
-    public static void processUrls(final List<URL> urls, final ClassLoader 
classLoader, final Set<RequireDescriptors> requireDescriptors, final FileUtils 
base, final List<URL> jarList) {
+    public static void processUrls(final String caller,
+                                   final List<URL> urls,
+                                   final ClassLoader classLoader,
+                                   final Set<RequireDescriptors> 
requireDescriptors,
+                                   final FileUtils base,
+                                   final List<URL> jarList) {
         for (final URL url : urls) {
 
             final String urlProtocol = url.getProtocol();
@@ -347,12 +377,20 @@ public class DeploymentsResolver impleme
                 continue;
             }
 
+            if (logger.isDebugEnabled()) {
+                logger.debug(caller + ".processing: " + url);
+            }
+
             try {
 
                 final DeploymentLoader deploymentLoader = new 
DeploymentLoader();
 
                 final Class<? extends DeploymentModule> moduleType = 
deploymentLoader.discoverModuleType(url, classLoader, requireDescriptors);
-                if (AppModule.class.isAssignableFrom(moduleType) || 
EjbModule.class.isAssignableFrom(moduleType) || 
PersistenceModule.class.isAssignableFrom(moduleType) || 
ConnectorModule.class.isAssignableFrom(moduleType) || 
ClientModule.class.isAssignableFrom(moduleType)) {
+                if (AppModule.class.isAssignableFrom(moduleType) ||
+                    EjbModule.class.isAssignableFrom(moduleType) ||
+                    PersistenceModule.class.isAssignableFrom(moduleType) ||
+                    ConnectorModule.class.isAssignableFrom(moduleType) ||
+                    ClientModule.class.isAssignableFrom(moduleType)) {
 
                     final URL archive = toFileUrl(url);
 

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java?rev=1488967&r1=1488966&r2=1488967&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/NewLoaderLogic.java
 Mon Jun  3 11:52:40 2013
@@ -57,6 +57,7 @@ import java.util.Set;
  * @version $Rev$ $Date$
  */
 public class NewLoaderLogic {
+
     private static final Logger logger = DeploymentLoader.logger;
     public static final String DEFAULT_EXCLUSIONS_ALIAS = "default-list";
     public static final String ADDITIONAL_EXCLUDES = 
SystemInstance.get().getOptions().get("openejb.additional.exclude", (String) 
null);
@@ -101,35 +102,40 @@ public class NewLoaderLogic {
                 iterator.remove();
 
                 // If we haven't yet reached an entry point, just keep going
-                if (!start.accept(element.getClassName())) continue;
+                if (!start.accept(element.getClassName())) {
+                    continue;
+                }
 
                 // We found an entry point.
                 // Fast-forward past this class
-                while (iterator.hasNext() && 
element.getClassName().equals(iterator.next().getClassName())) 
iterator.remove();
+                while (iterator.hasNext() && 
element.getClassName().equals(iterator.next().getClassName())) {
+                    iterator.remove();
+                }
 
                 // Ok, we have iterated up to the calling user class, so stop 
now
                 break;
             }
         }
 
-
         // Now iterate till we find an END point
         // We don't want any of the classes after that
         {
             final Filter end = Filters.packages(
-                    "junit.",
-                    "org.junit.",
-                    "org.testng.",
-                    "org.apache.maven.",
-                    "org.eclipse.",
-                    "com.intellij.",
-                    "org.scalatest."
-            );
+                                                   "junit.",
+                                                   "org.junit.",
+                                                   "org.testng.",
+                                                   "org.apache.maven.",
+                                                   "org.eclipse.",
+                                                   "com.intellij.",
+                                                   "org.scalatest."
+                                               );
 
             // Everything between here and the end is part
             // of the call chain in which we are interested
             for (final StackTraceElement element : elements) {
-                if (end.accept(element.getClassName())) break;
+                if (end.accept(element.getClassName())) {
+                    break;
+                }
 
                 callers.add(element.getClassName());
             }
@@ -141,18 +147,19 @@ public class NewLoaderLogic {
         // Finally filter out everything that we definitely don't want
         {
             final Filter unwanted = Filters.packages(
-                    "java.",
-                    "javax.",
-                    "sun.reflect."
-            );
+                                                        "java.",
+                                                        "javax.",
+                                                        "sun.reflect."
+                                                    );
 
             final Iterator<String> classes = callers.iterator();
             while (classes.hasNext()) {
-                if (unwanted.accept(classes.next())) classes.remove();
+                if (unwanted.accept(classes.next())) {
+                    classes.remove();
+                }
             }
         }
 
-
         return callers;
     }
 
@@ -267,10 +274,11 @@ public class NewLoaderLogic {
         return excludes.toArray(new String[excludes.size()]);
     }
 
+    @SuppressWarnings("unchecked")
     public static Filter getFilter() {
         if (filter == null) {
             final List<Filter> filters = new ArrayList<Filter>();
-            for (String s : getExclusions()) {
+            for (final String s : getExclusions()) {
                 filters.add(new PrefixOrStringFilter(s));
             }
 
@@ -323,9 +331,7 @@ public class NewLoaderLogic {
                 }
 
                 if (DEFAULT_EXCLUSIONS_ALIAS.equals(value)) {
-                    for (String v : readDefaultExclusions()) {
-                        list.add(v);
-                    }
+                    Collections.addAll(list, readDefaultExclusions());
                 } else {
                     list.add(sanitize(value));
                 }
@@ -360,7 +366,7 @@ public class NewLoaderLogic {
         return location;
     }
 
-
+    @SuppressWarnings("UseOfSystemOutOrSystemErr")
     public static void _loadFromClasspath(final FileUtils base, final 
List<URL> jarList, final ClassLoader classLoader) {
 
         final PerformanceTimer timer = new PerformanceTimer();
@@ -373,7 +379,6 @@ public class NewLoaderLogic {
         final PatternFilter classpathExclude = new 
PatternFilter(options.get(DeploymentFilterable.CLASSPATH_EXCLUDE, ""));
         final Filter classpathFilter = new 
ExcludeIncludeFilter(classpathInclude, classpathExclude);
 
-
         final PatternFilter packageInclude = new 
PatternFilter(options.get(DeploymentFilterable.PACKAGE_INCLUDE, ".*"));
         final PatternFilter packageExclude = new 
PatternFilter(options.get(DeploymentFilterable.PACKAGE_EXCLUDE, ""));
 
@@ -419,24 +424,25 @@ public class NewLoaderLogic {
             timer.event("exclude system urls");
             urlSet = URLs.cullSystemJars(urlSet);
 
-
             timer.event("classpath filter");
 
             final UrlSet beforeFiltering = urlSet;
 
             urlSet = urlSet.filter(classpathFilter);
 
-
             // If the user filtered out too much, that's a problem
             if (urlSet.size() == 0) {
-                final String message = String.format("Classpath 
Include/Exclude resulted in zero URLs.  There were %s possible URLs before 
filtering and 0 after: include=\"%s\", exclude=\"%s\"", beforeFiltering.size(), 
include, exclude);
+                final String message = String.format("Classpath 
Include/Exclude resulted in zero URLs.  There were %s possible URLs before 
filtering and 0 after: include=\"%s\", exclude=\"%s\"",
+                                                     beforeFiltering.size(),
+                                                     include,
+                                                     exclude);
                 logger.error(message);
                 logger.info("Eligible Classpath before filtering:");
 
                 for (final URL url : beforeFiltering) {
                     logger.info(String.format("   %s", url.toExternalForm()));
                 }
-//                throw new IllegalStateException(message);
+                //                throw new IllegalStateException(message);
 
             }
 
@@ -452,8 +458,7 @@ public class NewLoaderLogic {
 
             }
 
-            DeploymentsResolver.processUrls(urlSet.getUrls(), classLoader, 
EnumSet.allOf(RequireDescriptors.class), base, jarList);
-
+            DeploymentsResolver.processUrls("NewLoaderLogic1", 
urlSet.getUrls(), classLoader, EnumSet.allOf(RequireDescriptors.class), base, 
jarList);
 
             timer.event("package filter");
 
@@ -462,46 +467,46 @@ public class NewLoaderLogic {
             timer.event("process urls");
 
             // we should exclude system apps before and apply user properties 
after
-//            if (filterSystemApps){
-//                urlSet = 
urlSet.exclude(".*/openejb-[^/]+(.(jar|ear|war)(!/)?|/target/(test-)?classes/?)");
-//            }
+            //            if (filterSystemApps){
+            //                urlSet = 
urlSet.exclude(".*/openejb-[^/]+(.(jar|ear|war)(!/)?|/target/(test-)?classes/?)");
+            //            }
 
             final List<URL> urls = urlSet.getUrls();
             final int size = urls.size();
-//            if (size == 0) {
-//                logger.warning("No classpath URLs matched.  Current 
settings: " + CLASSPATH_EXCLUDE + "='" + exclude + "', " + CLASSPATH_INCLUDE + 
"='" + include + "'");
-//                return;
-//            } else if (size == 0 && (!filterDescriptors && 
prefiltered.getUrls().size() == 0)) {
-//                return;
-//            } else if (size < 20) {
-//                logger.debug("Inspecting classpath for applications: " + 
urls.size() + " urls.");
-//            } else {
-//                // Has the user allowed some module types to be discoverable 
via scraping?
-//                boolean willScrape = requireDescriptors.size() < 
RequireDescriptors.values().length;
-//
-//                if (size < 50 && willScrape) {
-//                    logger.info("Inspecting classpath for applications: " + 
urls.size() + " urls. Consider adjusting your exclude/include.  Current 
settings: " + CLASSPATH_EXCLUDE + "='" + exclude + "', " + CLASSPATH_INCLUDE + 
"='" + include + "'");
-//                } else if (willScrape) {
-//                    logger.warning("Inspecting classpath for applications: " 
+ urls.size() + " urls.");
-//                    logger.warning("ADJUST THE EXCLUDE/INCLUDE!!!.  Current 
settings: " + CLASSPATH_EXCLUDE + "='" + exclude + "', " + CLASSPATH_INCLUDE + 
"='" + include + "'");
-//                }
-//            }
+            //            if (size == 0) {
+            //                logger.warning("No classpath URLs matched.  
Current settings: " + CLASSPATH_EXCLUDE + "='" + exclude + "', " + 
CLASSPATH_INCLUDE + "='" + include + "'");
+            //                return;
+            //            } else if (size == 0 && (!filterDescriptors && 
prefiltered.getUrls().size() == 0)) {
+            //                return;
+            //            } else if (size < 20) {
+            //                logger.debug("Inspecting classpath for 
applications: " + urls.size() + " urls.");
+            //            } else {
+            //                // Has the user allowed some module types to be 
discoverable via scraping?
+            //                boolean willScrape = requireDescriptors.size() < 
RequireDescriptors.values().length;
+            //
+            //                if (size < 50 && willScrape) {
+            //                    logger.info("Inspecting classpath for 
applications: " + urls.size() + " urls. Consider adjusting your 
exclude/include.  Current settings: " + CLASSPATH_EXCLUDE + "='" + exclude + 
"', " + CLASSPATH_INCLUDE + "='" + include + "'");
+            //                } else if (willScrape) {
+            //                    logger.warning("Inspecting classpath for 
applications: " + urls.size() + " urls.");
+            //                    logger.warning("ADJUST THE 
EXCLUDE/INCLUDE!!!.  Current settings: " + CLASSPATH_EXCLUDE + "='" + exclude + 
"', " + CLASSPATH_INCLUDE + "='" + include + "'");
+            //                }
+            //            }
 
             final long begin = System.currentTimeMillis();
-            DeploymentsResolver.processUrls(urls, classLoader, 
requireDescriptors, base, jarList);
+            DeploymentsResolver.processUrls("NewLoaderLogic2", urls, 
classLoader, requireDescriptors, base, jarList);
             final long end = System.currentTimeMillis();
             final long time = end - begin;
 
             timer.stop(System.out);
 
             final UrlSet unchecked = new UrlSet();
-//            if (!filterDescriptors){
-//                unchecked = prefiltered.exclude(urlSet);
-//                if (filterSystemApps){
-//                    unchecked = 
unchecked.exclude(".*/openejb-[^/]+(.(jar|ear|war)(./)?|/target/classes/?)");
-//                }
-            DeploymentsResolver.processUrls(unchecked.getUrls(), classLoader, 
EnumSet.allOf(RequireDescriptors.class), base, jarList);
-//            }
+            //            if (!filterDescriptors){
+            //                unchecked = prefiltered.exclude(urlSet);
+            //                if (filterSystemApps){
+            //                    unchecked = 
unchecked.exclude(".*/openejb-[^/]+(.(jar|ear|war)(./)?|/target/classes/?)");
+            //                }
+            DeploymentsResolver.processUrls("NewLoaderLogic3", 
unchecked.getUrls(), classLoader, EnumSet.allOf(RequireDescriptors.class), 
base, jarList);
+            //            }
 
             if (logger.isDebugEnabled()) {
                 final int urlCount = urlSet.getUrls().size() + 
unchecked.getUrls().size();
@@ -514,7 +519,9 @@ public class NewLoaderLogic {
                 }
             }
 
-            if (urls.size() == 0) return;
+            if (urls.size() == 0) {
+                return;
+            }
 
             if (time < 1000) {
                 logger.debug("Searched " + urls.size() + " classpath urls in " 
+ time + " milliseconds.  Average " + (time / urls.size()) + " milliseconds per 
url.");
@@ -522,10 +529,26 @@ public class NewLoaderLogic {
                 logger.info("Searched " + urls.size() + " classpath urls in " 
+ time + " milliseconds.  Average " + (time / urls.size()) + " milliseconds per 
url.");
             } else if (time < 10000) {
                 logger.warning("Searched " + urls.size() + " classpath urls in 
" + time + " milliseconds.  Average " + (time / urls.size()) + " milliseconds 
per url.");
-                logger.warning("Consider adjusting your " + 
DeploymentFilterable.CLASSPATH_EXCLUDE + " and " + 
DeploymentFilterable.CLASSPATH_INCLUDE + " settings.  Current settings: 
exclude='" + exclude + "', include='" + include + "'");
+                logger.warning("Consider adjusting your " +
+                               DeploymentFilterable.CLASSPATH_EXCLUDE +
+                               " and " +
+                               DeploymentFilterable.CLASSPATH_INCLUDE +
+                               " settings.  Current settings: exclude='" +
+                               exclude +
+                               "', include='" +
+                               include +
+                               "'");
             } else {
                 logger.fatal("Searched " + urls.size() + " classpath urls in " 
+ time + " milliseconds.  Average " + (time / urls.size()) + " milliseconds per 
url.  TOO LONG!");
-                logger.fatal("ADJUST THE EXCLUDE/INCLUDE!!!.  Current 
settings: " + DeploymentFilterable.CLASSPATH_EXCLUDE + "='" + exclude + "', " + 
DeploymentFilterable.CLASSPATH_INCLUDE + "='" + include + "'");
+                logger.fatal("ADJUST THE EXCLUDE/INCLUDE!!!.  Current 
settings: " +
+                             DeploymentFilterable.CLASSPATH_EXCLUDE +
+                             "='" +
+                             exclude +
+                             "', " +
+                             DeploymentFilterable.CLASSPATH_INCLUDE +
+                             "='" +
+                             include +
+                             "'");
                 final List<String> list = new ArrayList<String>();
                 for (final URL url : urls) {
                     list.add(url.toExternalForm());
@@ -543,6 +566,7 @@ public class NewLoaderLogic {
     }
 
     private static class PrefixOrStringFilter extends PrefixFilter {
+
         protected final String simplePrefix;
 
         public PrefixOrStringFilter(final String s) {
@@ -557,7 +581,7 @@ public class NewLoaderLogic {
         @Override
         public boolean accept(final String name) {
             return super.accept(name)
-                    || (name.endsWith(".jar") && name.substring(0, 
name.length() - ".jar".length()).equals(simplePrefix));
+                   || (name.endsWith(".jar") && name.substring(0, 
name.length() - ".jar".length()).equals(simplePrefix));
         }
     }
 }

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/PerformanceTimer.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/PerformanceTimer.java?rev=1488967&r1=1488966&r2=1488967&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/PerformanceTimer.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/PerformanceTimer.java
 Mon Jun  3 11:52:40 2013
@@ -16,14 +16,12 @@
  */
 package org.apache.openejb.util;
 
-import org.apache.openejb.config.DeploymentsResolver;
-
 import java.io.PrintStream;
 import java.util.concurrent.TimeUnit;
 
 /**
-* @version $Rev$ $Date$
-*/
+ * @version $Rev$ $Date$
+ */
 public class PerformanceTimer {
 
     protected Start start;
@@ -33,39 +31,44 @@ public class PerformanceTimer {
         event = start = new Start();
     }
 
-    public void event(String event) {
+    public void event(final String event) {
         this.event = new Event(this.event, event);
     }
 
-    public void stop(PrintStream out) {
-        Event event = new Event(this.event, "stop");
+    public void stop(final PrintStream out) {
+        final Event event = new Event(this.event, "stop");
         this.event.stop(event, out);
         start.stop(event, out);
     }
 
     private class Event {
+
         protected final long start = System.nanoTime();
         private final Event previous;
         private final String description;
 
-        private Event(Event previous, String description) {
+        private Event(final Event previous, final String description) {
             this.previous = previous;
             this.description = description;
         }
 
-        public void stop(Event next, PrintStream out) {
-            if (previous != PerformanceTimer.this.start) previous.stop(this, 
out);
+        public void stop(final Event next, final PrintStream out) {
+            if (previous != PerformanceTimer.this.start) {
+                previous.stop(this, out);
+            }
             out.printf("%s  %s", TimeUnit.NANOSECONDS.toMillis(next.start - 
this.start), this.description);
             out.println();
         }
     }
+
     private class Start extends Event {
+
         private Start() {
             super(null, "start");
         }
 
         @Override
-        public void stop(Event next, PrintStream out) {
+        public void stop(final Event next, final PrintStream out) {
             out.printf("%s  %s", TimeUnit.NANOSECONDS.toMillis(next.start - 
this.start), "total");
             out.println();
         }


Reply via email to