private static IAnnotationFinder finderFromClasses(final DeploymentModule module, final Class<?>[] value, final Collection<File> others) { final Collection<Archive> archives = new ArrayList<Archive>(1 + (others == null ? 0 : others.size())); final Collection<Class<?>> classes = new ArrayList<Class<?>>(asList(FinderFactory.ensureMinimalClasses(module))); if (value != null) { classes.addAll(asList(value)); } archives.add(new ClassesArchive(classes)); if (others != null) { final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); for (final File f : others) { try { archives.add(new JarArchive(classLoader, f.toURI().toURL())); } catch (final MalformedURLException e) { throw new IllegalArgumentException(e); } } } return new FinderFactory.OpenEJBAnnotationFinder(new CompositeArchive(archives)).link(); }
private static IAnnotationFinder finderFromClasses(final DeploymentModule module, final Class<?>[] value, final Collection<File> others, final String[] excludes) { final Collection<Archive> archives = new ArrayList<>(1 + (others == null ? 0 : others.size())); final Filter filter = excludes == null || excludes.length == 0 ? null : Filters.invert(Filters.prefixes(excludes)); final Collection<Class<?>> classes = new ArrayList<>(asList(FinderFactory.ensureMinimalClasses(module))); if (value != null) { classes.addAll(asList(value)); } final ClassesArchive classesArchive = new ClassesArchive(classes); archives.add(filter == null ? classesArchive : new FilteredArchive(classesArchive, filter)); if (others != null) { final ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); for (final File f : others) { try { final Archive archive = f.isDirectory() ? new FileArchive(classLoader, f) : new JarArchive(classLoader, f.toURI().toURL()); archives.add(filter == null ? archive : new FilteredArchive(archive, filter)); } catch (final MalformedURLException e) { throw new IllegalArgumentException(e); } } } return new FinderFactory.OpenEJBAnnotationFinder(new CompositeArchive(archives)).link(); }
finder = fallbackAnnotationFinder(module); finder.link(); } else if (module instanceof ConnectorModule) { final ConnectorModule connectorModule = (ConnectorModule) module; finder = fallbackAnnotationFinder(module); finder.link(); } else if (module instanceof AppModule) { final Collection<URL> urls = NewLoaderLogic.applyBuiltinExcludes(new UrlSet(AppModule.class.cast(module).getAdditionalLibraries())).getUrls(); finder = fallbackAnnotationFinder(module); finder.link(); } else {
ejbModule.setFinder(new FinderFactory.OpenEJBAnnotationFinder(finalArchive).link());
private OpenEJBAnnotationFinder useFallbackFinderIfNeededOrLink(final DeploymentModule module, final OpenEJBAnnotationFinder finder) { if (!finder.foundSomething()) { // test case (AppComposer with new WebApp()) final OpenEJBAnnotationFinder fbFinder = fallbackAnnotationFinder(module); if (fbFinder.foundSomething()) { return fbFinder; } } finder.link(); return finder; }