protected void setAnnotationPropertyField(Field field, Object annotation, String value) throws Exception { if (field.getType() == String.class) field.set(annotation, value); else if (field.getType() == Long.class || field.getType() == Long.TYPE) field.setLong(annotation, Long.parseLong(value)); else if (field.getType() == Integer.class || field.getType() == Integer.TYPE) field.setInt(annotation, Integer.parseInt(value)); else if (field.getType() == Class.class) field.set(annotation, di.getClassLoader().loadClass(value)); else if (field.getType() == Boolean.class || field.getType() == Boolean.TYPE) field.setBoolean(annotation, Boolean.parseBoolean(value)); else throw new IllegalArgumentException("unsupported field type " + field.getType() + " on field " + field); }
/** * Helper method to load classes. If no class name is specified * the bean class is returned. * * @param container The EJB container * @param name The name of the class or null for the bean class * @return The resulting <tt>Class</tt> object or the bean class */ private Class<?> loadClass(EJBContainer container, String name) { if(name == null) return container.getBeanClass(); try { return di.getClassLoader().loadClass(name); } catch(ClassNotFoundException e) { // TODO: what shall be the proper exception throw new RuntimeException(e); } }
private void addServiceAnnotations(EJBContainer container, JBossServiceBeanMetaData service) throws ClassNotFoundException { if (service == null) return; String management = service.getManagement(); if (management != null) { ManagementImpl annotation = new ManagementImpl(di.getClassLoader().loadClass(management)); addClassAnnotation(container, Management.class, annotation); } }
Class<?> localClass = di.getClassLoader().loadClass(localClassName); Class<?> remoteClass = di.getClassLoader().loadClass(remoteClassName);
protected ConsumerContainer getConsumerContainer(int ejbIndex, JBossConsumerBeanMetaData beanMetaData) throws Exception { String containerName = getAspectDomain(ejbIndex, defaultConsumerDomain); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } return new ConsumerContainer(ejbNames.get(ejbIndex), (Domain) domain.getManager(), di.getClassLoader(), className, ctxProperties, deployment, beanMetaData); }
private void addHomeAnnotations(EJBContainer container, JBossSessionBeanMetaData sessionBean) throws Exception { if (sessionBean.getHome() != null) { RemoteHomeImpl annotation = new RemoteHomeImpl(di.getClassLoader() .loadClass(sessionBean.getHome())); addClassAnnotation(container, annotation.annotationType(), annotation); } if (sessionBean.getLocalHome() != null) { LocalHomeImpl annotation = new LocalHomeImpl(di.getClassLoader() .loadClass(sessionBean.getLocalHome())); addClassAnnotation(container, annotation.annotationType(), annotation); } }
for(String param : params) Class<?> paramClass = PrimitiveClassLoadingUtil.loadClass(param, di.getClassLoader()); methodSignature[paramIndex++] = paramClass;
protected EJBContainer getStatelessContainer(int ejbIndex, JBossSessionBeanMetaData beanMetaData) throws Exception { String containerName = getAspectDomain(ejbIndex, defaultSLSBDomain); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } return new StatelessContainer(di.getClassLoader(), className, ejbNames.get(ejbIndex), (Domain) domain .getManager(), ctxProperties, deployment, beanMetaData, deployment.getAsynchronousProcessor()); }
protected StatefulContainer getStatefulContainer(int ejbIndex, JBossSessionBeanMetaData beanMetaData) throws Exception { String containerName = getAspectDomain(ejbIndex, defaultSFSBDomain); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } return new StatefulContainer(di.getClassLoader(), className, ejbNames.get(ejbIndex), (Domain) domain.getManager(), ctxProperties, deployment, beanMetaData, deployment .getAsynchronousProcessor()); }
protected ServiceContainer getServiceContainer(int ejbIndex, JBossServiceBeanMetaData beanMetaData) throws Exception { String containerName = getAspectDomain(ejbIndex, defaultServiceDomain); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } return new ServiceContainer(deployment.getMbeanServer(), di.getClassLoader(), className, ejbNames.get(ejbIndex), (Domain) domain.getManager(), ctxProperties, deployment, beanMetaData); }
protected void populateBaseInfo() throws Exception ejbClass = di.getClassLoader().loadClass(className);
Class<?> clazz = di.getClassLoader().loadClass(name); impl.addValue(clazz);
Class<? extends Annotation> annotationClass = (Class<? extends Annotation>) di.getClassLoader().loadClass(xmlAnnotation.getAnnotationClass()); Class<? extends Annotation> annotationImplementationClass = (Class<? extends Annotation>) di.getClassLoader().loadClass(xmlAnnotation.getAnnotationImplementationClass()); Annotation annotation = annotationImplementationClass.newInstance();
else ejbClass = di.getClassLoader().loadClass(className); if (ejbType == EJB_TYPE.STATELESS)
protected MDB getMDB(int ejbIndex, JBossMessageDrivenBeanMetaData beanMetaData) throws Exception { String domainName = getMDBDomainName(ejbIndex); String containerName = getAspectDomain(ejbIndex, domainName); DomainDefinition domain = AspectManager.instance().getContainer(containerName); if (domain == null) { throw new RuntimeException("Could not get container for bean class " + beanMetaData.getEjbClass() + " with bean name " + beanMetaData.getEjbName() + " because no container configured with name '" + containerName + "'"); } MDB container = new MDB(ejbNames.get(ejbIndex), (Domain) domain.getManager(), di.getClassLoader(), className, ctxProperties, deployment, beanMetaData); // EJB 3.0 5.6.3: the class or any super-class may implement the ejbCreate method Method method = getMethod(container.getBeanClass(), "ejbCreate"); if(method != null) { addAnnotation(new PostConstructImpl(), container, method); } return container; }
ProducerImpl annotation = new ProducerImpl(di.getClassLoader() .loadClass(producer.getClassName())); if (producer.getConnectionFactory() != null) ProducerImpl annotation = new ProducerImpl(di.getClassLoader() .loadClass(producer.getClassName())); if (producer.getConnectionFactory() != null) if (interfac != null) Class<?> clazz = di.getClassLoader().loadClass(interfac); annotation.setInterface(clazz);
private static EjbDeploymentSummary getUnitSummary(DeploymentUnit unit, JBossEnterpriseBeanMetaData beanMD) { ClassLoader loader = unit.getClassLoader(); EjbDeploymentSummary summary = new EjbDeploymentSummary(); summary.setBeanMD(beanMD); summary.setBeanClassName(beanMD.getEjbClass()); summary.setDeploymentName(unit.getShortName()); String baseName = unit.getRootFile().getName(); summary.setDeploymentScopeBaseName(baseName); summary.setEjbName(beanMD.getEjbName()); summary.setLoader(loader); summary.setLocal(beanMD.isMessageDriven()); if(beanMD instanceof JBossSessionBeanMetaData) { JBossSessionBeanMetaData sbeanMD = (JBossSessionBeanMetaData) beanMD; summary.setStateful(sbeanMD.isStateful()); } summary.setService(beanMD.isService()); return summary; }