@Override protected Archive getAdditionalArchive() { return classes.isEmpty() ? null : new ClassesArchive(classes); }
private OpenEJBAnnotationFinder fallbackAnnotationFinder(final DeploymentModule module) { final OpenEJBAnnotationFinder finder = new OpenEJBAnnotationFinder(new ClassesArchive(ensureMinimalClasses(module))); finder.enableMetaAnnotations(); return finder; }
/** * Creates a list of the specified class and all its parent * classes then creates a AnnotationFinder from that list which * can be used for easy annotation scanning. * * @param classes * @return */ private AnnotationFinder createFinder(final Class<?>... classes) { final Set<Class<?>> parents = new HashSet<Class<?>>(); for (final Class<?> clazz : classes) { parents.addAll(Classes.ancestors(clazz)); } return new AnnotationFinder(new ClassesArchive(parents)).enableMetaAnnotations(); // no need to have subclasses/impl here }
private OpenEJBAnnotationFinder fallbackAnnotationFinder(DeploymentModule module) { final OpenEJBAnnotationFinder finder = new OpenEJBAnnotationFinder(new ClassesArchive(ensureMinimalClasses(module))); finder.enableMetaAnnotations(); return finder; }
public static Archive classesArchive(final Set<String> packages, final Set<String> classnames, final ClassLoader loader) { Class<?>[] classes = new Class<?>[classnames.size()]; int i = 0; for (final String clazz : classnames) { // skip classes managed by package filtering if (packages != null && clazzInPackage(packages, clazz)) { continue; } try { classes[i++] = loader.loadClass(clazz); } catch (final ClassNotFoundException e) { // ignored } } if (i != classes.length) { // shouldn't occur final Class<?>[] updatedClasses = new Class<?>[i]; System.arraycopy(classes, 0, updatedClasses, 0, i); classes = updatedClasses; } return new ClassesArchive(classes); }
public static Archive classesArchive(final Set<String> packages, final Set<String> classnames, final ClassLoader loader) { Class<?>[] classes = new Class<?>[classnames.size()]; int i = 0; for (final String clazz : classnames) { // skip classes managed by package filtering if (packages != null && clazzInPackage(packages, clazz)) { continue; } try { classes[i++] = loader.loadClass(clazz); } catch (final ClassNotFoundException e) { // ignored } } if (i != classes.length) { // shouldn't occur final Class<?>[] updatedClasses = new Class<?>[i]; System.arraycopy(classes, 0, updatedClasses, 0, i); classes = updatedClasses; } return new ClassesArchive(classes); }
/** * Creates a list of the specified class and all its parent * classes then creates a AnnotationFinder from that list which * can be used for easy annotation scanning. * * @param classes * @return */ private AnnotationFinder createFinder(final Class<?>... classes) { final Set<Class<?>> parents = new HashSet<Class<?>>(); for (final Class<?> clazz : classes) { parents.addAll(Classes.ancestors(clazz)); } return new AnnotationFinder(new ClassesArchive(parents)).enableMetaAnnotations(); // no need to have subclasses/impl here }
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(); }
archives.add(new ClassesArchive(classes)); if (beansXml != null) { final List<String> mainClasses = new ArrayList<String>();
archives.add(new ClassesArchive(classes)); if (beansXml != null) { try {
archive = new ClassesArchive(loaded.toArray(new Class[loaded.size()])); return;
null : new AnnotationFinder(new ClassesArchive(ancestors(clazz))); final List<Method> postConstructs = finder == null ? Collections.<Method>emptyList() : finder.findAnnotatedMethods(PostConstruct.class);
null : new AnnotationFinder(new ClassesArchive(ancestors(clazz))); final List<Method> postConstructs = finder == null ? Collections.<Method>emptyList() : finder.findAnnotatedMethods(PostConstruct.class);
archives.add(new ClassesArchive(earClasses));
final AnnotationFinder finder = new AnnotationFinder(new ClassesArchive(org.apache.openejb.util.Classes.ancestors(clazz))); for (final Method m : finder.findAnnotatedMethods(org.apache.openejb.testing.Module.class)) { instance = configureModule(appModule, ejbModule, clazz, instance, m);
final IAnnotationFinder finder = new org.apache.xbean.finder.AnnotationFinder(new ClassesArchive()); webModule.setFinder(finder); webEjbModule.setFinder(finder);
return ClasspathArchive.archive(loader, location); } else if (scanXml == null) { return new ClassesArchive(); } catch (final IOException e) { if (forceDescriptor) { return new ClassesArchive();
public static Archive archive(final Module module, final URL location, final boolean forceDescriptor) { final ClassLoader loader = module.getClassLoader(); final String name = "META-INF/" + name(); try { final URL scanXml = new URLClassLoader(new URL[]{location}, new EmptyResourcesClassLoader()).getResource(name); if (scanXml == null && !forceDescriptor) { return ClasspathArchive.archive(loader, location); } else if (scanXml == null) { return new ClassesArchive(); } // read descriptors final ScanUtil.ScanHandler scan = ScanUtil.read(scanXml); final Archive packageArchive = packageArchive(scan.getPackages(), loader, location); final Archive classesArchive = classesArchive(scan.getPackages(), scan.getClasses(), loader); if (packageArchive != null && classesArchive != null) { return new CompositeArchive(classesArchive, packageArchive); } else if (packageArchive != null) { return packageArchive; } return classesArchive; } catch (final IOException e) { if (forceDescriptor) { return new ClassesArchive(); } return ClasspathArchive.archive(loader, location); } }
clientModule.getFinderReference().set(new FinderFactory.OpenEJBAnnotationFinder(new ClassesArchive(loadedClasses)));