Examples of IAnnotationFinder


Examples of org.apache.xbean.finder.IAnnotationFinder

      if (specVersion < 1.6 || Boolean.TRUE.equals(connector.isMetadataComplete())) {
        return connectorModule;
      }


          IAnnotationFinder finder = connectorModule.getFinder();
          if (finder == null) {
            try {
              finder = FinderFactory.createFinder(connectorModule);
          connectorModule.setFinder(finder);
        } catch (Exception e) {
          // TODO: some sort of error
          return connectorModule;
        }
          }

          List<Class<?>> connectorClasses = finder.findAnnotatedClasses(Connector.class);

          // are we allowed to have more than one connector class? Not without a deployment descriptor
          if (connector.getResourceAdapter() == null || connector.getResourceAdapter().getResourceAdapterClass() == null ||  connector.getResourceAdapter().getResourceAdapterClass().length() == 0) {
            if (connectorClasses.size() == 0) {
              // fail some validation here too
            }

            if (connectorClasses.size() > 1) {
              // too many connector classes, this is against the spec
              // something like connectorModule.getValidation().fail(ejbName, "abstractAnnotatedAsBean", annotationClass.getSimpleName(), beanClass.get().getName());
            }
          }

          Class<?> connectorClass = null;
          if (connectorClasses.size() == 1) {
            connectorClass = connectorClasses.get(0);
          }

          if (connectorClasses.size() > 1) {
            for (Class<?> cls : connectorClasses) {
              if (cls.getName().equals(connector.getResourceAdapter().getResourceAdapterClass())) {
                connectorClass = cls;
                break;
              }
            }
          }

          if (connectorClass != null) {
          if (connector.getResourceAdapter() == null) {
            connector.setResourceAdapter(new ResourceAdapter());
          }

          if (connector.getResourceAdapter().getResourceAdapterClass() == null || connector.getResourceAdapter().getResourceAdapterClass().length() == 0) {
            connector.getResourceAdapter().setResourceAdapterClass(connectorClass.getName());
          }

          Connector connectorAnnotation = connectorClass.getAnnotation(Connector.class);

          connector.setDisplayNames(getTexts(connector.getDisplayNames(), connectorAnnotation.displayName()));
          connector.setDescriptions(getTexts(connector.getDescriptions(), connectorAnnotation.description()));

          connector.setEisType(getString(connector.getEisType(), connectorAnnotation.eisType()));
          connector.setVendorName(getString(connector.getVendorName(), connectorAnnotation.vendorName()));
          connector.setResourceAdapterVersion(getString(connector.getResourceAdapterVersion(), connectorAnnotation.version()));

          if (connector.getIcons().isEmpty()) {
            int smallIcons = connectorAnnotation.smallIcon().length;
            int largeIcons = connectorAnnotation.largeIcon().length;

            for (int i = 0; i < smallIcons && i < largeIcons; i++) {
              Icon icon = new Icon();
                        // locale can't be specified in the annotation and it is en by default
                        // so on other systems it doesn't work because Icon return the default locale
                        icon.setLang(Locale.getDefault().getLanguage());
              if (i < smallIcons) {
                icon.setSmallIcon(connectorAnnotation.smallIcon()[i]);
              }

              if (i < largeIcons) {
                icon.setLargeIcon(connectorAnnotation.largeIcon()[i]);
              }

              connector.getIcons().add(icon);
            }
          }

          if (connector.getLicense() == null) {
            License license = new License();
          connector.setLicense(license);
          license.setLicenseRequired(connectorAnnotation.licenseRequired());
          }

          connector.getLicense().setDescriptions(getTexts(connector.getLicense().getDescriptions(), connectorAnnotation.licenseDescription()));


          SecurityPermission[] annotationSecurityPermissions = connectorAnnotation.securityPermissions();
        List<org.apache.openejb.jee.SecurityPermission> securityPermission = connector.getResourceAdapter().getSecurityPermission();
        if (securityPermission == null || securityPermission.size() == 0) {
          for (SecurityPermission sp : annotationSecurityPermissions) {
            org.apache.openejb.jee.SecurityPermission permission = new org.apache.openejb.jee.SecurityPermission();
            permission.setSecurityPermissionSpec(sp.permissionSpec());
            permission.setDescriptions(stringsToTexts(sp.description()));
            securityPermission.add(permission);
          }
        }

        Class<? extends WorkContext>[] annotationRequiredWorkContexts = connectorAnnotation.requiredWorkContexts();
        List<String> requiredWorkContext = connector.getRequiredWorkContext();
        if (requiredWorkContext.size() == 0) {
          for (Class<? extends WorkContext> cls : annotationRequiredWorkContexts) {
            requiredWorkContext.add(cls.getName());
          }
        }

        OutboundResourceAdapter outboundResourceAdapter = connector.getResourceAdapter().getOutboundResourceAdapter();
        if (outboundResourceAdapter == null) {
          outboundResourceAdapter = new OutboundResourceAdapter();
          connector.getResourceAdapter().setOutboundResourceAdapter(outboundResourceAdapter);
        }

        List<AuthenticationMechanism> authenticationMechanisms = outboundResourceAdapter.getAuthenticationMechanism();
        javax.resource.spi.AuthenticationMechanism[] authMechanisms = connectorAnnotation.authMechanisms();
        if (authenticationMechanisms.size() == 0) {
          for (javax.resource.spi.AuthenticationMechanism am : authMechanisms) {
            AuthenticationMechanism authMechanism = new AuthenticationMechanism();
            authMechanism.setAuthenticationMechanismType(am.authMechanism());
            authMechanism.setCredentialInterface(am.credentialInterface().toString());
            authMechanism.setDescriptions(stringsToTexts(am.description()));

            authenticationMechanisms.add(authMechanism);
          }
        }

        if (outboundResourceAdapter.getTransactionSupport() == null) {
          outboundResourceAdapter.setTransactionSupport(TransactionSupportType.fromValue(connectorAnnotation.transactionSupport().toString()));
        }

        if (outboundResourceAdapter.isReauthenticationSupport() == null) {
          outboundResourceAdapter.setReauthenticationSupport(connectorAnnotation.reauthenticationSupport());
        }
          } else {
            // we couldn't process a connector class - probably a validation issue which we should warn about.
          }

          // process @ConnectionDescription(s)
          List<Class<?>> classes = finder.findAnnotatedClasses(ConnectionDefinitions.class);
          for (Class<?> cls : classes) {
        ConnectionDefinitions connectionDefinitionsAnnotation = cls.getAnnotation(ConnectionDefinitions.class);
        ConnectionDefinition[] definitions = connectionDefinitionsAnnotation.value();

        for (ConnectionDefinition definition : definitions) {
          processConnectionDescription(connector.getResourceAdapter(), definition, cls);
        }
      }

          classes = finder.findAnnotatedClasses(ConnectionDefinition.class);
          for (Class<?> cls : classes) {
        ConnectionDefinition connectionDefinitionAnnotation = cls.getAnnotation(ConnectionDefinition.class);
        processConnectionDescription(connector.getResourceAdapter(), connectionDefinitionAnnotation, cls);
      }


          InboundResourceadapter inboundResourceAdapter = connector.getResourceAdapter().getInboundResourceAdapter();
          if (inboundResourceAdapter == null) {
            inboundResourceAdapter = new InboundResourceadapter();
            connector.getResourceAdapter().setInboundResourceAdapter(inboundResourceAdapter);
          }

          MessageAdapter messageAdapter = inboundResourceAdapter.getMessageAdapter();
          if (messageAdapter == null) {
            messageAdapter = new MessageAdapter();
            inboundResourceAdapter.setMessageAdapter(messageAdapter);
          }

          classes = finder.findAnnotatedClasses(Activation.class);
          for (Class<?> cls : classes) {
            MessageListener messageListener = null;
            Activation activationAnnotation = cls.getAnnotation(Activation.class);

            List<MessageListener> messageListeners = messageAdapter.getMessageListener();
        for (MessageListener ml : messageListeners) {
          if (cls.getName().equals(ml.getActivationSpec().getActivationSpecClass())) {
            messageListener = ml;
            break;
          }
        }

        if (messageListener == null) {
          Class<?>[] listeners = activationAnnotation.messageListeners();
          for (Class<?> listener : listeners) {
            messageAdapter.addMessageListener(new MessageListener(listener.getName(), cls.getName()));
          }
        }
      }

          classes = finder.findAnnotatedClasses(AdministeredObject.class);
          List<AdminObject> adminObjects = connector.getResourceAdapter().getAdminObject();
          for (Class<?> cls : classes) {
        AdministeredObject administeredObjectAnnotation = cls.getAnnotation(AdministeredObject.class);
        Class[] adminObjectInterfaces = administeredObjectAnnotation.adminObjectInterfaces();
View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

                if (servlet.getServletClass() != null) {
                    existingServlets.add(servlet.getServletClass());
                }
            }

            IAnnotationFinder finder = webModule.getFinder();
            List<Class> classes = new ArrayList<Class>();
            classes.addAll(finder.findAnnotatedClasses(WebService.class));
            classes.addAll(finder.findAnnotatedClasses(WebServiceProvider.class));

            for (Class<?> webServiceClass : classes) {
                // If this class is also annotated @Stateless or @Singleton, we should skip it
                if (webServiceClass.isAnnotationPresent(Singleton.class) || webServiceClass.isAnnotationPresent(Stateless.class)) {
                    webModule.getEjbWebServices().add(webServiceClass.getName());
                    continue;
                }

                int modifiers = webServiceClass.getModifiers();
                if (!Modifier.isPublic(modifiers) || Modifier.isFinal(modifiers) || isAbstract(modifiers)) {
                    continue;
                }

                if (existingServlets.contains(webServiceClass.getName())) continue;

                // create webApp and webservices objects if they don't exist already

                // add new <servlet/> element
                Servlet servlet = new Servlet();
                servlet.setServletName(webServiceClass.getName());
                servlet.setServletClass(webServiceClass.getName());
                webApp.getServlet().add(servlet);
            }

           /*
            * REST
            */
            // get by annotations
            webModule.getRestClasses().addAll(findRestClasses(webModule, finder));

            // Applications with a default constructor
            // findSubclasses will not work by default to gain a lot of time
            // look FinderFactory for the flag to activate it or
            // use @ApplicationPath("/")
            List<Class<? extends Application>> applications = finder.findSubclasses(Application.class);
            for (Class<? extends Application> app : applications) {
                addRestApplicationIfPossible(webModule, app);
            }

            // look for ApplicationPath, it will often return the same than the previous one
            // but without finder.link() invocation it still works
            // so it can save a lot of startup time
            List<Annotated<Class<?>>> applicationsByAnnotation = finder.findMetaAnnotatedClasses(ApplicationPath.class);
            for (Annotated<Class<?>> annotatedApp : applicationsByAnnotation) {
                final Class<?> app = annotatedApp.get();
                if (!Application.class.isAssignableFrom(app)) {
                    logger.error("class '" + app.getName() + "' is annotated with @ApplicationPath but doesn't implement " + Application.class.getName());
                    continue;
                }

                addRestApplicationIfPossible(webModule, (Class<? extends Application>) app);
            }

            /*
             * JSF
             */
            final ClassLoader classLoader = webModule.getClassLoader();
            for (String jsfClass : JSF_CLASSES) {
                final Class<? extends Annotation> clazz;
                try {
                    clazz = (Class<? extends Annotation>) classLoader.loadClass(jsfClass);
                } catch (ClassNotFoundException e) {
                    continue;
                }

                final List<Annotated<Class<?>>> found = finder.findMetaAnnotatedClasses(clazz);
                final Set<String> convertedClasses = new HashSet<String>(found.size());
                for (Annotated<Class<?>> annotated : found) {
                    convertedClasses.add(annotated.get().getName());
                }
                webModule.getJsfAnnotatedClasses().put(jsfClass, convertedClasses);
            }

            /*
             * Servlet, Filter, Listener
             */
            for (String apiClassName : WEB_CLASSES) {
                final Class<? extends Annotation> clazz;
                try {
                    clazz = (Class<? extends Annotation>) classLoader.loadClass(apiClassName);
                } catch (ClassNotFoundException e) {
                    continue;
                }

                final List<Class<?>> found = finder.findAnnotatedClasses(clazz);
                for (Class<?> annotatedClass : found) {
                    webModule.getWebAnnotatedClasses().add(annotatedClass.getName());
                }
            }

View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

            } catch (Exception e) {
                startupLogger.warning("Unable to scrape for @Stateful, @Stateless, @Singleton or @MessageDriven annotations. AnnotationFinder failed.", e);
                return ejbModule;
            }

            IAnnotationFinder finder = ejbModule.getFinder();


            final List<String> managedClasses;
            {
                final Beans beans = ejbModule.getBeans();

                if (beans != null) {
                    managedClasses = beans.getManagedClasses();
                    final List<String> classNames = getBeanClasses(finder);
                    for (String rawClassName : classNames) {
                        final String className = realClassName(rawClassName);
                        try {
                            final ClassLoader loader = ejbModule.getClassLoader();
                            final Class<?> clazz = loader.loadClass(className);

                            // The following can NOT be beans in CDI

                            // 1. Non-static inner classes
                            if (clazz.getEnclosingClass() != null && !Modifier.isStatic(clazz.getModifiers())) continue;
//
//                            // 2. Abstract classes (unless they are an @Decorator)
//                            if (Modifier.isAbstract(clazz.getModifiers()) && !clazz.isAnnotationPresent(javax.decorator.Decorator.class)) continue;
//
                            // 3. Implementations of Extension
                            if (Extension.class.isAssignableFrom(clazz)) continue;

                            managedClasses.add(className);
                        } catch (ClassNotFoundException e) {
                            // todo log debug warning
                        } catch (java.lang.NoClassDefFoundError e) {

                        }
                    }

                    // passing jar location to be able to manage maven classes/test-classes which have the same moduleId
                    String id = ejbModule.getModuleId();
                    if (ejbModule.getJarLocation() != null && ejbModule.getJarLocation().contains(ejbModule.getModuleId() + "/target/test-classes".replace("/", File.separator))) {
                        // with maven if both src/main/java and src/test/java are deployed
                        // moduleId.Comp exists twice so it fails
                        // here we simply modify the test comp bean name to avoid it
                        id += "_test";
                    }
                    final String name = BeanContext.Comp.openejbCompName(id);
                    final org.apache.openejb.jee.ManagedBean managedBean = new CompManagedBean(name, BeanContext.Comp.class);
                    managedBean.setTransactionType(TransactionType.BEAN);
                    ejbModule.getEjbJar().addEnterpriseBean(managedBean);
                } else {
                    managedClasses = new ArrayList<String>();
                }
            }

            final Set<Class<?>> specializingClasses = new HashSet<Class<?>>();


            // Fill in default sessionType for xml declared EJBs
            for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
                if (!(bean instanceof SessionBean)) continue;

                SessionBean sessionBean = (SessionBean) bean;

                if (sessionBean.getSessionType() != null) continue;

                try {
                    final Class<?> clazz = ejbModule.getClassLoader().loadClass(bean.getEjbClass());
                    sessionBean.setSessionType(getSessionType(clazz));
                } catch (Throwable handledInValidation) {
                }
            }

            // Fill in default ejbName for xml declared EJBs
            for (EnterpriseBean bean : ejbModule.getEjbJar().getEnterpriseBeans()) {
                if (bean.getEjbClass() == null) continue;
                if (bean.getEjbName() == null || bean.getEjbName().startsWith("@NULL@")) {
                    ejbModule.getEjbJar().removeEnterpriseBean(bean.getEjbName());
                    try {
                        final Class<?> clazz = ejbModule.getClassLoader().loadClass(bean.getEjbClass());
                        final String ejbName = getEjbName(bean, clazz);
                        bean.setEjbName(ejbName);
                    } catch (Throwable handledInValidation) {
                    }
                    ejbModule.getEjbJar().addEnterpriseBean(bean);
                }
            }
            /* 19.2:  ejb-name: Default is the unqualified name of the bean class */

            EjbJar ejbJar = ejbModule.getEjbJar();
            for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(Singleton.class)) {

                if (beanClass.isAnnotationPresent(Specializes.class)) {
                    managedClasses.remove(beanClass.get().getName());
                    specializingClasses.add(beanClass.get());
                    continue;
                }

                Singleton singleton = beanClass.getAnnotation(Singleton.class);
                String ejbName = getEjbName(singleton, beanClass.get());

                if (!isValidEjbAnnotationUsage(Singleton.class, beanClass, ejbName, ejbModule)) continue;

                EnterpriseBean enterpriseBean = ejbJar.getEnterpriseBean(ejbName);
                if (enterpriseBean == null) {
                    enterpriseBean = new SingletonBean(ejbName, beanClass.get());
                    ejbJar.addEnterpriseBean(enterpriseBean);
                }
                if (enterpriseBean.getEjbClass() == null) {
                    enterpriseBean.setEjbClass(beanClass.get());
                }
                if (enterpriseBean instanceof SessionBean) {
                    SessionBean sessionBean = (SessionBean) enterpriseBean;
                    sessionBean.setSessionType(SessionType.SINGLETON);

                    if (singleton.mappedName() != null) {
                        sessionBean.setMappedName(singleton.mappedName());
                    }
                }
                LegacyProcessor.process(beanClass.get(), enterpriseBean);
            }

            for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(Stateless.class)) {

                if (beanClass.isAnnotationPresent(Specializes.class)) {
                    managedClasses.remove(beanClass.get().getName());
                    specializingClasses.add(beanClass.get());
                    continue;
                }

                Stateless stateless = beanClass.getAnnotation(Stateless.class);
                String ejbName = getEjbName(stateless, beanClass.get());

                if (!isValidEjbAnnotationUsage(Stateless.class, beanClass, ejbName, ejbModule)) continue;

                EnterpriseBean enterpriseBean = ejbJar.getEnterpriseBean(ejbName);
                if (enterpriseBean == null) {
                    enterpriseBean = new StatelessBean(ejbName, beanClass.get());
                    ejbJar.addEnterpriseBean(enterpriseBean);
                }
                if (enterpriseBean.getEjbClass() == null) {
                    enterpriseBean.setEjbClass(beanClass.get());
                }
                if (enterpriseBean instanceof SessionBean) {
                    SessionBean sessionBean = (SessionBean) enterpriseBean;
                    sessionBean.setSessionType(SessionType.STATELESS);

                    if (stateless.mappedName() != null) {
                        sessionBean.setMappedName(stateless.mappedName());
                    }
                }
                LegacyProcessor.process(beanClass.get(), enterpriseBean);
            }

            // The Specialization code is good, but it possibly needs to be moved to after the full processing of the bean
            // the plus is that it would get the required interfaces.  The minus is that it would get all the other items

            // Possibly study alternatives.  Alternatives might have different meta data completely while it seems Specializing beans inherit all meta-data

            // Anyway.. the qualifiers aren't getting inherited, so we need to fix that

            for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(Stateful.class)) {

                if (beanClass.isAnnotationPresent(Specializes.class)) {
                    managedClasses.remove(beanClass.get().getName());
                    specializingClasses.add(beanClass.get());
                    continue;
                }

                Stateful stateful = beanClass.getAnnotation(Stateful.class);
                String ejbName = getEjbName(stateful, beanClass.get());

                if (!isValidEjbAnnotationUsage(Stateful.class, beanClass, ejbName, ejbModule)) continue;

                EnterpriseBean enterpriseBean = ejbJar.getEnterpriseBean(ejbName);
                if (enterpriseBean == null) {
                    enterpriseBean = new StatefulBean(ejbName, beanClass.get());
                    ejbJar.addEnterpriseBean(enterpriseBean);
                }
                if (enterpriseBean.getEjbClass() == null) {
                    enterpriseBean.setEjbClass(beanClass.get());
                }
                if (enterpriseBean instanceof SessionBean) {
                    SessionBean sessionBean = (SessionBean) enterpriseBean;
                    // TODO: We might be stepping on an xml override here
                    sessionBean.setSessionType(SessionType.STATEFUL);
                    if (stateful.mappedName() != null) {
                        sessionBean.setMappedName(stateful.mappedName());
                    }
                }
                LegacyProcessor.process(beanClass.get(), enterpriseBean);
            }

            for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(ManagedBean.class)) {

                if (beanClass.isAnnotationPresent(Specializes.class)) {
                    managedClasses.remove(beanClass.get().getName());
                    specializingClasses.add(beanClass.get());
                    continue;
                }

                ManagedBean managed = beanClass.getAnnotation(ManagedBean.class);
                String ejbName = getEjbName(managed, beanClass.get());

                // TODO: this is actually against the spec, but the requirement is rather silly
                // (allowing @Stateful and @ManagedBean on the same class)
                // If the TCK doesn't complain we should discourage it
                if (!isValidEjbAnnotationUsage(ManagedBean.class, beanClass, ejbName, ejbModule)) continue;

                EnterpriseBean enterpriseBean = ejbJar.getEnterpriseBean(ejbName);
                if (enterpriseBean == null) {
                    enterpriseBean = new org.apache.openejb.jee.ManagedBean(ejbName, beanClass.get());
                    ejbJar.addEnterpriseBean(enterpriseBean);
                }
                if (enterpriseBean.getEjbClass() == null) {
                    enterpriseBean.setEjbClass(beanClass.get());
                }
                if (enterpriseBean instanceof SessionBean) {
                    SessionBean sessionBean = (SessionBean) enterpriseBean;
                    sessionBean.setSessionType(SessionType.MANAGED);

                    final TransactionType transactionType = sessionBean.getTransactionType();
                    if (transactionType == null) sessionBean.setTransactionType(TransactionType.BEAN);
                }
            }

            for (Annotated<Class<?>> beanClass : finder.findMetaAnnotatedClasses(MessageDriven.class)) {

                if (beanClass.isAnnotationPresent(Specializes.class)) {
                    managedClasses.remove(beanClass.get().getName());
                    specializingClasses.add(beanClass.get());
                    continue;
                }

                MessageDriven mdb = beanClass.getAnnotation(MessageDriven.class);
                String ejbName = getEjbName(mdb, beanClass.get());

                if (!isValidEjbAnnotationUsage(MessageDriven.class, beanClass, ejbName, ejbModule)) continue;

                MessageDrivenBean messageBean = (MessageDrivenBean) ejbJar.getEnterpriseBean(ejbName);
                if (messageBean == null) {
                    messageBean = new MessageDrivenBean(ejbName);
                    ejbJar.addEnterpriseBean(messageBean);
                }
                if (messageBean.getEjbClass() == null) {
                    messageBean.setEjbClass(beanClass.get());
                }
                LegacyProcessor.process(beanClass.get(), messageBean);
            }


            for (Class<?> specializingClass : sortClassesParentFirst(new ArrayList<Class<?>>(specializingClasses))) {

                final Class<?> parent = specializingClass.getSuperclass();

                if (parent == null || parent.equals(Object.class)) {
                    ejbModule.getValidation().fail(specializingClass.getSimpleName(), "specializes.extendsNothing", specializingClass.getName());
                }

                boolean found = false;

                for (EnterpriseBean enterpriseBean : ejbJar.getEnterpriseBeans()) {

                    final String ejbClass = enterpriseBean.getEjbClass();

                    if (ejbClass != null && ejbClass.equals(parent.getName())) {
                        managedClasses.remove(ejbClass);
                        enterpriseBean.setEjbClass(specializingClass.getName());
                        found = true;
                    }
                }

                if (!found) {
                    ejbModule.getValidation().fail(specializingClass.getSimpleName(), "specializes.extendsSimpleBean", specializingClass.getName());
                }
            }

            AssemblyDescriptor assemblyDescriptor = ejbModule.getEjbJar().getAssemblyDescriptor();
            if (assemblyDescriptor == null) {
                assemblyDescriptor = new AssemblyDescriptor();
                ejbModule.getEjbJar().setAssemblyDescriptor(assemblyDescriptor);
            }

            startupLogger.debug("Searching for annotated application exceptions (see OPENEJB-980)");
            List<Class<?>> appExceptions = finder.findAnnotatedClasses(ApplicationException.class);
            for (Class<?> exceptionClass : appExceptions) {
                startupLogger.debug("...handling " + exceptionClass);
                ApplicationException annotation = exceptionClass.getAnnotation(ApplicationException.class);
                if (assemblyDescriptor.getApplicationException(exceptionClass) == null) {
                    startupLogger.debug("...adding " + exceptionClass + " with rollback=" + annotation.rollback());
View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

            //  more classes than actually apply to CDI.  This can "pollute"
            //  the CDI class space and break injection points

            if (!(finder instanceof FinderFactory.ModuleLimitedFinder)) return finder.getAnnotatedClassNames();

            final IAnnotationFinder delegate = ((FinderFactory.ModuleLimitedFinder) finder).getDelegate();
            if (!(delegate instanceof AnnotationFinder)) return finder.getAnnotatedClassNames();

            final AnnotationFinder annotationFinder = (AnnotationFinder) delegate;

            final Archive archive = annotationFinder.getArchive();
View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

            if (clientModule.getFinder() == null && clientModule.getAltDDs().containsKey("application-client.xml"))

            if (clientModule.getApplicationClient() != null && clientModule.getApplicationClient().isMetadataComplete()) return clientModule;


            IAnnotationFinder finder = clientModule.getFinder();

            if (finder == null) {
                try {
                    finder = FinderFactory.createFinder(clientModule);
                } catch (MalformedURLException e) {
                    startupLogger.warning("startup.scrapeFailedForClientModule.url", clientModule.getJarLocation());
                    return clientModule;
                } catch (Exception e) {
                    startupLogger.warning("startup.scrapeFailedForClientModule", e, clientModule.getJarLocation());
                    return clientModule;
                }
            }

            // This method is also called by the deploy(EjbModule) method to see if those
            // modules have any @LocalClient or @RemoteClient classes
            for (Annotated<Class<?>> clazz : finder.findMetaAnnotatedClasses(LocalClient.class)) {
                clientModule.getLocalClients().add(clazz.get().getName());
            }

            for (Annotated<Class<?>> clazz : finder.findMetaAnnotatedClasses(RemoteClient.class)) {
                clientModule.getRemoteClients().add(clazz.get().getName());
            }

            if (clientModule.getApplicationClient() == null){
                if (clientModule.getRemoteClients().size() > 0 || clientModule.getLocalClients().size() > 0) {
View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

        try {
            // TODO:  Put our scanning ehnancements back, here
            fillEjbJar(webModule, webEjbModule);

            if (isMetadataComplete(webModule, webEjbModule)) {
                final IAnnotationFinder finder = new org.apache.xbean.finder.AnnotationFinder(new ClassesArchive());
                webModule.setFinder(finder);
                webEjbModule.setFinder(finder);
            else {
                final IAnnotationFinder finder = FinderFactory.createFinder(webModule);
                webModule.setFinder(finder);
                webEjbModule.setFinder(finder);
            }
        } catch (Exception e) {
            throw new OpenEJBException("Unable to create annotation scanner for web module " + webModule.getModuleId(), e);
View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

                        }
                    }
                }
            }

            IAnnotationFinder finder = webModule.getFinder();

            if (finder != null) {

                for (String apiClassName : WEB_CLASSES) {
                    final Class<? extends Annotation> clazz;
                    try {
                        clazz = (Class<? extends Annotation>) classLoader.loadClass(apiClassName);
                    } catch (ClassNotFoundException e) {
                        continue;
                    }

                    final List<Class<?>> found = finder.findAnnotatedClasses(clazz);
                    classes.addAll(found);
                }
            }

            AnnotationFinder annotationFinder = createFinder(classes.toArray(new Class<?>[classes.size()]));
View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

    public static AnnotationFinder getFinder(ClassLoader classLoader, URL url) {
        return new AnnotationFinder(ClasspathArchive.archive(classLoader, url));
    }

    public IAnnotationFinder create(DeploymentModule module) throws Exception {
        IAnnotationFinder finder;
        if (module instanceof WebModule) {
            WebModule webModule = (WebModule) module;
            final AnnotationFinder annotationFinder = new AnnotationFinder(new WebappAggregatedArchive(webModule, webModule.getScannableUrls()));
            if (annotationFinder.hasMetaAnnotations()) annotationFinder.enableMetaAnnotations();
            if (enableFindSubclasses()) annotationFinder.enableFindSubclasses();
View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

                        }
                    }
                }
            }

            final IAnnotationFinder finder = webModule.getFinder();

            if (finder != null) {
                for (final String apiClassName : API_CLASSES) {
                    final Class<? extends Annotation> clazz;
                    try {
                        clazz = (Class<? extends Annotation>) classLoader.loadClass(apiClassName);
                    } catch (final ClassNotFoundException e) {
                        continue;
                    }
                    if (clazz.isAnnotation()) {
                        classes.addAll(metaToClass(finder.findMetaAnnotatedClasses(clazz)));
                    } else if (Modifier.isAbstract(clazz.getModifiers())) {
                        classes.addAll(finder.findSubclasses(clazz));
                    } else {
                        classes.addAll(finder.findImplementations(clazz));
                    }
                }
            }

            final AnnotationFinder annotationFinder = createFinder(classes.toArray(new Class<?>[classes.size()]));
View Full Code Here

Examples of org.apache.xbean.finder.IAnnotationFinder

            if (clientModule.getFinder() == null && clientModule.getAltDDs().containsKey("application-client.xml"))

            if (clientModule.getApplicationClient() != null && clientModule.getApplicationClient().isMetadataComplete()) return clientModule;


            IAnnotationFinder finder = clientModule.getFinder();

            if (finder == null) {
                try {
                    finder = FinderFactory.createFinder(clientModule);
                } catch (MalformedURLException e) {
                    startupLogger.warning("startup.scrapeFailedForClientModule.url", clientModule.getJarLocation());
                    return clientModule;
                } catch (Exception e) {
                    startupLogger.warning("startup.scrapeFailedForClientModule", e, clientModule.getJarLocation());
                    return clientModule;
                }
            }

            // This method is also called by the deploy(EjbModule) method to see if those
            // modules have any @LocalClient or @RemoteClient classes
            for (Annotated<Class<?>> clazz : finder.findMetaAnnotatedClasses(LocalClient.class)) {
                clientModule.getLocalClients().add(clazz.get().getName());
            }

            for (Annotated<Class<?>> clazz : finder.findMetaAnnotatedClasses(RemoteClient.class)) {
                clientModule.getRemoteClients().add(clazz.get().getName());
            }

            if (clientModule.getApplicationClient() == null){
                if (clientModule.getRemoteClients().size() > 0 || clientModule.getLocalClients().size() > 0) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.