public List<Annotated<Class<?>>> findMetaAnnotatedClasses(Class<? extends Annotation> annotation) { List<Class<?>> classes = findAnnotatedClasses(annotation); List<Annotated<Class<?>>> list = new ArrayList<Annotated<Class<?>>>(); for (final Class<?> clazz : classes) { list.add(new MetaAnnotatedClass(clazz)); } return list; }
public List<Annotated<Class<?>>> findMetaAnnotatedClasses(Class<? extends Annotation> annotation) { List<Class<?>> classes = findAnnotatedClasses(annotation); List<Annotated<Class<?>>> list = new ArrayList<Annotated<Class<?>>>(); for (final Class<?> clazz : classes) { list.add(new MetaAnnotatedClass(clazz)); } return list; }
public List<Annotated<Class<?>>> findMetaAnnotatedClasses(Class<? extends Annotation> annotation) { List<Class<?>> classes = findAnnotatedClasses(annotation); List<Annotated<Class<?>>> list = new ArrayList<Annotated<Class<?>>>(); for (final Class<?> clazz : classes) { list.add(new MetaAnnotatedClass(clazz)); } return list; }
/** * Process @RunAs annotations (for servlets only) * * @param webApp Access to the spec dd * @param classFinder Access to the classes of interest * @throws DeploymentException if parsing or validation error */ private static void processRunAs(WebApp webApp, AbstractFinder classFinder) throws DeploymentException { log.debug("processRunAs(): Entry: webApp: " + webApp.toString()); List<Class<?>> classesWithRunAs = classFinder.findAnnotatedClasses(RunAs.class); // Class-level annotation for (Class cls : classesWithRunAs) { RunAs runAs = (RunAs) cls.getAnnotation(RunAs.class); if (runAs != null && Servlet.class.isAssignableFrom(cls)) { addRunAs(webApp, runAs, cls); } } // Validate deployment descriptor to ensure it's still okay // validateDD(new AnnotatedWebApp(webApp)); log.debug("processRunAs(): Exit: webApp: " + webApp.toString()); }
/** * Process @DeclareRole annotations (for servlets only) * * @param webApp Access to the spec dd * @param classFinder Access to the classes of interest * @throws DeploymentException if parsing or validation error */ private static void processDeclareRoles(WebApp webApp, AbstractFinder classFinder) throws DeploymentException { log.debug("processDeclareRoles(): Entry: webApp: " + webApp.toString()); List<Class<?>> classesWithDeclareRoles = classFinder.findAnnotatedClasses(DeclareRoles.class); // Class-level annotation for (Class cls : classesWithDeclareRoles) { DeclareRoles declareRoles = (DeclareRoles) cls.getAnnotation(DeclareRoles.class); if (declareRoles != null && Servlet.class.isAssignableFrom(cls)) { addDeclareRoles(webApp, declareRoles, cls); } } // Validate deployment descriptor to ensure it's still okay // validateDD(new AnnotatedWebApp(webApp)); log.debug("processDeclareRoles(): Exit: webApp: " + webApp.toString()); }
/** * Process multiple annotations * * @param annotatedApp * @param classFinder * @param resourceProcessor * @throws Exception */ private static void processResources(JndiConsumer annotatedApp, AbstractFinder classFinder, ResourceProcessor resourceProcessor) throws Exception { log.debug("processResources(): Entry"); List<Class<?>> classeswithResources = classFinder.findAnnotatedClasses(Resources.class); // Class-level annotation(s) List<Resource> resourceList = new ArrayList<Resource>(); for (Class cls : classeswithResources) { Resources resources = (Resources) cls.getAnnotation(Resources.class); if (resources != null) { resourceList.addAll(Arrays.asList(resources.value())); } for (Resource resource : resourceList) { resourceProcessor.processResource(annotatedApp, resource, cls, null, null); } resourceList.clear(); } log.debug("processResources(): Exit"); }
/** * Process multiple annotations * * @param annotatedApp * @param classFinder * @throws Exception */ private static void processEJBs(JndiConsumer annotatedApp, AbstractFinder classFinder) throws Exception { log.debug("processEJBs(): Entry"); List<Class<?>> classesWithEJBs = classFinder.findAnnotatedClasses(EJBs.class); // Class-level annotation(s) List<EJB> ejbList = new ArrayList<EJB>(); for (Class cls : classesWithEJBs) { EJBs ejbs = (EJBs) cls.getAnnotation(EJBs.class); if (ejbs != null) { ejbList.addAll(Arrays.asList(ejbs.value())); } for (EJB ejb : ejbList) { addEJB(annotatedApp, ejb, cls, null, null); } ejbList.clear(); } log.debug("processEJBs(): Exit"); }
/** * Process multiple annotations * * @param annotatedApp Access to the spec dd * @param classFinder Access to the classes of interest * @throws DeploymentException if parsing or validation error */ private static void processPersistenceUnits(JndiConsumer annotatedApp, AbstractFinder classFinder) throws DeploymentException { log.debug("processPersistenceUnits(): Entry"); List<Class<?>> classeswithPersistenceUnits = classFinder.findAnnotatedClasses(PersistenceUnits.class); // Class-level annotation(s) List<PersistenceUnit> persistenceUnitList = new ArrayList<PersistenceUnit>(); for (Class cls : classeswithPersistenceUnits) { PersistenceUnits persistenceUnits = (PersistenceUnits) cls.getAnnotation(PersistenceUnits.class); if (persistenceUnits != null) { persistenceUnitList.addAll(Arrays.asList(persistenceUnits.value())); } for (PersistenceUnit persistenceUnit : persistenceUnitList) { addPersistenceUnit(annotatedApp, persistenceUnit, cls, null, null); } persistenceUnitList.clear(); } log.debug("processPersistenceUnits(): Exit"); }
/** * Process multiple annotations * * @param annotatedApp Access to the spec dd * @param classFinder Access to the classes of interest * @throws DeploymentException if parsing or validation error */ private static void processPersistenceContexts(JndiConsumer annotatedApp, AbstractFinder classFinder) throws DeploymentException { log.debug("processPersistenceContexts(): Entry"); List<Class<?>> classeswithPersistenceContexts = classFinder.findAnnotatedClasses(PersistenceContexts.class); // Class-level annotation(s) List<PersistenceContext> persistenceContextList = new ArrayList<PersistenceContext>(); for (Class cls : classeswithPersistenceContexts) { PersistenceContexts persistenceContexts = (PersistenceContexts) cls.getAnnotation(PersistenceContexts.class); if (persistenceContexts != null) { persistenceContextList.addAll(Arrays.asList(persistenceContexts.value())); } for (PersistenceContext persistenceContext : persistenceContextList) { addPersistenceContext(annotatedApp, persistenceContext, cls, null, null); } persistenceContextList.clear(); } log.debug("processPersistenceContexts(): Exit"); }
/** * Process multiple annotations * * @param annotatedApp Access to the spec dd * @param classFinder Access to the classes of interest * @throws DeploymentException if parsing or validation error */ private static void processWebServiceRefs(JndiConsumer annotatedApp, AbstractFinder classFinder) throws DeploymentException { if (log.isDebugEnabled()) { log.debug("processWebServiceRefs(): Entry"); } List<Class<?>> classeswithWebServiceRefs = classFinder.findAnnotatedClasses(WebServiceRefs.class); // Class-level annotation(s) List<WebServiceRef> webServiceRefList = new ArrayList<WebServiceRef>(); for (Class cls : classeswithWebServiceRefs) { WebServiceRefs webServiceRefs = (WebServiceRefs) cls.getAnnotation(WebServiceRefs.class); if (webServiceRefs != null) { webServiceRefList.addAll(Arrays.asList(webServiceRefs.value())); } for (WebServiceRef webServiceRef : webServiceRefList) { addWebServiceRef(annotatedApp, webServiceRef, cls, null, null); } webServiceRefList.clear(); } if (log.isDebugEnabled()) { log.debug("processWebServiceRefs(): Exit"); } }
log.debug("processPersistenceUnit(): Entry: AnnotatedApp: " + annotatedApp.toString()); List<Class<?>> classeswithPersistenceUnit = classFinder.findAnnotatedClasses(PersistenceUnit.class); List<Method> methodswithPersistenceUnit = classFinder.findAnnotatedMethods(PersistenceUnit.class); List<Field> fieldswithPersistenceUnit = classFinder.findAnnotatedFields(PersistenceUnit.class);
log.debug("processWebServiceRef(): Entry: AnnotatedApp: " + annotatedApp.toString()); List<Class<?>> classeswithWebServiceRef = classFinder.findAnnotatedClasses(WebServiceRef.class); List<Method> methodswithWebServiceRef = classFinder.findAnnotatedMethods(WebServiceRef.class); List<Field> fieldswithWebServiceRef = classFinder.findAnnotatedFields(WebServiceRef.class);
log.debug("processEJB(): Entry: AnnotatedApp: " + annotatedApp.toString()); List<Class<?>> classesWithEJB = classFinder.findAnnotatedClasses(EJB.class); List<Method> methodsWithEJB = classFinder.findAnnotatedMethods(EJB.class); List<Field> fieldsWithEJB = classFinder.findAnnotatedFields(EJB.class);
log.debug("processPersistenceContext(): Entry: AnnotatedApp: " + annotatedApp.toString()); List<Class<?>> classeswithPersistenceContext = classFinder.findAnnotatedClasses(PersistenceContext.class); List<Method> methodswithPersistenceContext = classFinder.findAnnotatedMethods(PersistenceContext.class); List<Field> fieldswithPersistenceContext = classFinder.findAnnotatedFields(PersistenceContext.class);
log.debug("processResource(): Entry: AnnotatedApp: " + annotatedApp.toString()); List<Class<?>> classeswithResource = classFinder.findAnnotatedClasses(Resource.class); List<Method> methodswithResource = classFinder.findAnnotatedMethods(Resource.class); List<Field> fieldswithResource = classFinder.findAnnotatedFields(Resource.class);
public void buildNaming(JndiConsumer specDD, XmlObject plan, Module module, Map<EARContext.Key, Object> sharedContext) throws DeploymentException { // step 1: process annotations and update deployment descriptor if ((module != null) && (module.getClassFinder() != null)) { List<Class<?>> classes; classes = module.getClassFinder().findAnnotatedClasses(DataSourceDefinitions.class); if (classes != null) { for (Class<?> clazz : classes) { DataSourceDefinitions dsDefinitions = clazz.getAnnotation(DataSourceDefinitions.class); for (DataSourceDefinition dsDefinition : dsDefinitions.value()) { processDefinition(dsDefinition, specDD); } } } classes = module.getClassFinder().findAnnotatedClasses(DataSourceDefinition.class); if (classes != null) { for (Class<?> clazz : classes) { DataSourceDefinition dsDefinition = clazz.getAnnotation(DataSourceDefinition.class); processDefinition(dsDefinition, specDD); } } } // step 2: bind all defined data sources into jndi Collection<DataSource> dataSources = specDD.getDataSource(); if (dataSources != null) { for (DataSource dataSource: dataSources) { addDataSourceGBean(module, sharedContext, dataSource); } } }