use of com.sun.corba.ee.spi.extension.CopyObjectPolicy 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 });
}
}
}
Aggregations