use of com.sun.corba.ee.spi.oa.rfm.ReferenceFactory in project Payara by payara.
the class POARemoteReferenceFactory method createReferenceFactory.
private ReferenceFactory createReferenceFactory(String poaId, String repoid) throws Exception {
try {
if (logger.isLoggable(Level.FINE)) {
logger.log(Level.FINE, ".createReferenceFactory->: {0} {1}", new Object[] { poaId, repoid });
}
ReferenceFactoryManager rfm = (ReferenceFactoryManager) orb.resolve_initial_references(ORBConstants.REFERENCE_FACTORY_MANAGER);
List<Policy> policies = new ArrayList<Policy>();
// Servant caching for local RMI-IIOP invocation performance
policies.add(ServantCachingPolicy.getPolicy());
// OTS Policy
policies.add(new OTSPolicyImpl());
if (logger.isLoggable(Level.FINE)) {
logger.log(Level.FINE, ".createReferenceFactory: {0} {1}: {2}", new Object[] { poaId, repoid, ejbDescriptor });
}
// CSIv2 Policy
policies.add(new CSIv2Policy(ejbDescriptor));
String threadPoolName = container.getUseThreadPoolId();
int threadPoolNumericID = 0;
boolean usePassByReference = container.getPassByReference();
if (usePassByReference) {
policies.add(new CopyObjectPolicy(PASS_BY_REFERENCE_ID));
}
if (threadPoolName != null) {
ThreadPoolManager threadPoolManager = S1ASThreadPoolManager.getThreadPoolManager();
try {
threadPoolNumericID = threadPoolManager.getThreadPoolNumericId(threadPoolName);
policies.add(new RequestPartitioningPolicy(threadPoolNumericID));
} catch (Exception ex) {
logger.log(Level.WARNING, "Not using threadpool-request-partitioning...", ex);
}
}
if (logger.isLoggable(Level.FINE)) {
String jndiName = ejbDescriptor.getJndiName();
logger.log(Level.FINE, "Using Thread-Pool: [{0} ==> {1}] for jndi name: {2}", new Object[] { threadPoolName, threadPoolNumericID, jndiName });
logger.log(Level.FINE, "Pass by reference: [{0}] for jndi name: {1}", new Object[] { usePassByReference, usePassByReference });
}
// if EJB allows only SSL invocations
if (ejbDescriptor.allMechanismsRequireSSL()) {
if (logger.isLoggable(Level.FINE)) {
logger.log(Level.WARNING, ".createReferenceFactory: {0} {1}: adding ZeroPortPolicy", new Object[] { poaId, repoid });
}
if (!GlassFishORBManager.disableSSLCheck()) {
policies.add(ZeroPortPolicy.getPolicy());
}
}
if (logger.isLoggable(Level.FINE)) {
logger.log(Level.FINE, ".createReferenceFactory: {0} {1}: policies: {2}", new Object[] { poaId, repoid, policies });
}
ReferenceFactory rf = rfm.create(poaId, repoid, policies, this);
return rf;
} finally {
if (logger.isLoggable(Level.FINE)) {
logger.log(Level.WARNING, ".createReferenceFactory<-: {0} {1}", new Object[] { poaId, repoid });
}
}
}
use of com.sun.corba.ee.spi.oa.rfm.ReferenceFactory in project Payara by payara.
the class POAProtocolMgr method getRemoteNamingReference.
private org.omg.CORBA.Object getRemoteNamingReference(Remote remoteNamingProvider) {
final ServantLocator locator = new RemoteNamingServantLocator(orb, remoteNamingProvider);
final PresentationManager pm = ORB.getPresentationManager();
String repositoryId;
try {
repositoryId = pm.getRepositoryId(remoteNamingProvider);
} catch (Exception exc) {
throw new RuntimeException(exc);
}
final List<Policy> policies = new ArrayList<Policy>();
final ReferenceFactory rf = getRFM().create("RemoteSerialContextProvider", repositoryId, policies, locator);
// arbitrary
final byte[] oid = { 0, 3, 5, 7, 2, 37, 42 };
final org.omg.CORBA.Object ref = rf.createReference(oid);
return ref;
}
Aggregations