private Set<String> getStubClasses(ClassLoader jcl, EjbBundleDescriptor ejbBundle) throws IOException, ClassNotFoundException { Set<String> stubClasses = new HashSet<String>(); for (Iterator iter = ejbBundle.getEjbs().iterator(); iter.hasNext();) { EjbDescriptor desc = (EjbDescriptor) iter.next(); if( desc.isRemoteInterfacesSupported() ) { String home = desc.getHomeClassName(); String remote = desc.getRemoteClassName(); stubClasses.add(home); Set homeSuperIntfs = getRemoteSuperInterfaces(jcl, home); stubClasses.addAll(homeSuperIntfs); stubClasses.add(remote); Set remoteSuperIntfs = getRemoteSuperInterfaces(jcl, remote); stubClasses.addAll(remoteSuperIntfs); } } return stubClasses; }
private Set<String> getStubClasses(ClassLoader jcl, EjbBundleDescriptor ejbBundle) throws IOException, ClassNotFoundException { Set<String> stubClasses = new HashSet<String>(); for (Iterator iter = ejbBundle.getEjbs().iterator(); iter.hasNext();) { EjbDescriptor desc = (EjbDescriptor) iter.next(); if( desc.isRemoteInterfacesSupported() ) { String home = desc.getHomeClassName(); String remote = desc.getRemoteClassName(); stubClasses.add(home); Set homeSuperIntfs = getRemoteSuperInterfaces(jcl, home); stubClasses.addAll(homeSuperIntfs); stubClasses.add(remote); Set remoteSuperIntfs = getRemoteSuperInterfaces(jcl, remote); stubClasses.addAll(remoteSuperIntfs); } } return stubClasses; }
/** * Returns the full set of method descriptors I have (from all the methods on my home and remote interfaces). */ public Set getMethodDescriptors() { ClassLoader classLoader = getEjbBundleDescriptor().getClassLoader(); Set methods = getBusinessMethodDescriptors(); try { if (isRemoteInterfacesSupported()) { addAllInterfaceMethodsIn(methods, classLoader.loadClass(getHomeClassName()), MethodDescriptor.EJB_HOME); } if (isLocalInterfacesSupported()) { addAllInterfaceMethodsIn(methods, classLoader.loadClass(getLocalHomeClassName()), MethodDescriptor.EJB_LOCALHOME); } } catch (Throwable t) { _logger.log(Level.SEVERE, "enterprise.deployment.backend.methodClassLoadFailure", new Object[]{"(EjbDescriptor.getMethods())"}); throw new RuntimeException(t); } return methods; }
/** * visits an ejb descriptor * @param ejb descriptor */ public void accept(EjbDescriptor ejb) { DOLUtils.getDefaultLogger().info("=================="); DOLUtils.getDefaultLogger().info(ejb.getType() + " Bean " + ejb.getName()); DOLUtils.getDefaultLogger().info("\thomeClassName " + ejb.getHomeClassName()); DOLUtils.getDefaultLogger().info("\tremoteClassName " + ejb.getRemoteClassName()); DOLUtils.getDefaultLogger().info("\tlocalhomeClassName " +ejb.getLocalHomeClassName()); DOLUtils.getDefaultLogger().info("\tlocalClassName " + ejb.getLocalClassName()); DOLUtils.getDefaultLogger().info("\tremoteBusinessIntfs " + ejb.getRemoteBusinessClassNames()); DOLUtils.getDefaultLogger().info("\tlocalBusinessIntfs " + ejb.getLocalBusinessClassNames()); DOLUtils.getDefaultLogger().info("\tjndiName " + ejb.getJndiName()); DOLUtils.getDefaultLogger().info("\tejbClassName " + ejb.getEjbClassName()); DOLUtils.getDefaultLogger().info("\ttransactionType " + ejb.getTransactionType()); if (ejb.getUsesCallerIdentity() == false) { DOLUtils.getDefaultLogger().info("\trun-as role " + ejb.getRunAsIdentity()); } else { DOLUtils.getDefaultLogger().info("\tuse-caller-identity " + ejb.getUsesCallerIdentity()); } }
addAllInterfaceMethodsIn(methods, classLoader.loadClass(ejbDescriptor.getHomeClassName())); addAllInterfaceMethodsIn(methods, classLoader.loadClass(ejbDescriptor.getRemoteClassName()));
/** * Set runtime default value for EjbDescriptor. */ private void computeRuntimeDefault(EjbDescriptor ejb) { String intfName = null; if ((ejb.getJndiName() == null) || (ejb.getJndiName().length() == 0)) { if (ejb.isRemoteInterfacesSupported() && ejb.isRemoteBusinessInterfacesSupported()) { // can't use a default. } else if (ejb.isRemoteInterfacesSupported()) { // For 2.x view, use the Home as the basis for the default intfName = ejb.getHomeClassName(); } else if (ejb.isRemoteBusinessInterfacesSupported()) { Set<String> classNames = ejb.getRemoteBusinessClassNames(); if (classNames.size() == 1) { intfName = (String)classNames.iterator().next(); } } } if( intfName != null ) { String jndiName = getDefaultEjbJndiName(intfName); ejb.setJndiName(jndiName); } if (!ejb.getUsesCallerIdentity()) { computeRunAsPrincipalDefault( ejb.getRunAsIdentity(), ejb.getApplication()); } }
addAllInterfaceMethodsIn(methods, classLoader.loadClass(ejbDescriptor.getHomeClassName())); addAllInterfaceMethodsIn(methods, classLoader.loadClass(ejbDescriptor.getRemoteClassName()));
intfsForPortableJndi.put(ejbDescriptor.getHomeClassName(), ejbHomeStub);
homeName = dd.getHomeClassName(); ejbClassSymbol = MethodDescriptor.EJB_HOME;
EjbDescriptor next = (EjbDescriptor) iter.next(); if( next.isRemoteInterfacesSupported() ) { addIntfInfo(intfInfoMap, next.getHomeClassName(), EjbIntfType.REMOTE_HOME, next);
addIntfInfo(intfInfoMap, next.getHomeClassName(), EjbIntfType.REMOTE_HOME, next);
String homeIntf = ejbDescriptor.getHomeClassName(); if (homeIntf!=null) {
if( ejbDescriptor.isRemoteInterfacesSupported() ) { Class homeClass = classloader.loadClass (ejbDescriptor.getHomeClassName()); return TypeUtil.getMethod(homeClass, classloader, getName(), javaParamClassNames); try { Class homeClass = classloader.loadClass(ejbDescriptor.getHomeClassName()); method = TypeUtil.getMethod(homeClass, classloader, getName(), javaParamClassNames);
if( ejbDescriptor.isRemoteInterfacesSupported() ) { Class homeClass = classloader.loadClass (ejbDescriptor.getHomeClassName()); return TypeUtil.getMethod(homeClass, classloader, getName(), javaParamClassNames); try { Class homeClass = classloader.loadClass(ejbDescriptor.getHomeClassName()); method = TypeUtil.getMethod(homeClass, classloader, getName(), javaParamClassNames);
hasRemoteHomeView = true; String homeClassName = ejbDescriptor.getHomeClassName();
String intf = ejb.getHomeClassName(); String fullyQualifiedJavaGlobalName = javaGlobalName + "!" + intf; appResources.storeInNamespace(fullyQualifiedJavaGlobalName, ejb);
ejbReferee.getHomeClassName();
appendTextChild(ejbNode, EjbTagNames.HOME, descriptor.getHomeClassName()); appendTextChild(ejbNode, EjbTagNames.REMOTE, descriptor.getRemoteClassName()); appendTextChild(ejbNode, EjbTagNames.LOCAL_HOME, descriptor.getLocalHomeClassName());