private ObjectFactory factoryFromReference(final Reference reference, final ClassLoader classLoader, final Hashtable<?, ?> environment) throws Exception { try { final Class<?> factoryClass = classLoader.loadClass(reference.getFactoryClassName()); ObjectFactory factory = ObjectFactory.class.cast(factoryClass.newInstance()); if (factory instanceof ServiceAwareObjectFactory) { ((ServiceAwareObjectFactory) factory).injectServiceRegistry(currentServiceContainer()); } return factory; } catch (Throwable t) { throw NamingLogger.ROOT_LOGGER.objectFactoryCreationFailure(t); } }
private ObjectFactory factoryFromReference(final Reference reference, final Hashtable<?, ?> environment) throws Exception { if (reference.getFactoryClassName() == null) { return lookForURLs(reference, environment); } if (reference instanceof ModularReference) { return factoryFromModularReference(ModularReference.class.cast(reference), environment); } return factoryFromReference(reference, WildFlySecurityManager.getCurrentContextClassLoaderPrivileged(), environment); }
/** * Retrieves the class name of the factory of the object to which this * reference refers. */ public String getFactoryClassName() { String factory = super.getFactoryClassName(); if (factory != null) { return factory; } else { factory = System.getProperty(Context.OBJECT_FACTORIES); if (factory != null) { return null; } else { return DEFAULT_FACTORY; } } }
/** * Retrieves the class name of the factory of the object to which this * reference refers. */ public String getFactoryClassName() { String factory = super.getFactoryClassName(); if (factory != null) { return factory; } else { factory = System.getProperty(Context.OBJECT_FACTORIES); if (factory != null) { return null; } else { return DEFAULT_FACTORY; } } }
private Object dereference(Reference ref) throws Exception { ObjectFactory objFactory = (ObjectFactory) Class.forName( ref.getFactoryClassName()).newInstance(); return objFactory.getObjectInstance(ref, null, null, null); }
private ObjectFactory factoryFromReference(final Reference reference, final ClassLoader classLoader, final Hashtable<?, ?> environment) throws Exception { try { final Class<?> factoryClass = classLoader.loadClass(reference.getFactoryClassName()); ObjectFactory factory = ObjectFactory.class.cast(factoryClass.newInstance()); return factory; } catch (Throwable t) { throw namingException("Failed to create object factory from classloader.", t); } } }
private Object dereference(Reference ref) throws Exception { ObjectFactory objFactory = (ObjectFactory) Class.forName( ref.getFactoryClassName()).newInstance(); return objFactory.getObjectInstance(ref, null, null, null); }
private Object getObjectInstance(final Reference reference, final Name name, final Hashtable<?, ?> environment) throws NamingException { try { final Class<?> factoryClass = Thread.currentThread().getContextClassLoader().loadClass(reference.getFactoryClassName()); ObjectFactory factory = ObjectFactory.class.cast(factoryClass.newInstance()); return factory.getObjectInstance(reference, name, this, environment); } catch(NamingException e) { throw e; } catch(Throwable t) { throw namingException("failed to get object instance from reference", t); } }
private ObjectFactory factoryFromReference(final Reference reference, final ClassLoader classLoader, final Hashtable<?, ?> environment) throws Exception { try { final Class<?> factoryClass = classLoader.loadClass(reference.getFactoryClassName()); ObjectFactory factory = ObjectFactory.class.cast(factoryClass.newInstance()); if (factory instanceof ServiceAwareObjectFactory) { ((ServiceAwareObjectFactory) factory).injectServiceRegistry(currentServiceContainer()); } return factory; } catch (Throwable t) { throw NamingLogger.ROOT_LOGGER.objectFactoryCreationFailure(t); } }
private ObjectFactory factoryFromReference(final Reference reference, final ClassLoader classLoader, final Hashtable<?, ?> environment) throws Exception { try { final Class<?> factoryClass = classLoader.loadClass(reference.getFactoryClassName()); ObjectFactory factory = ObjectFactory.class.cast(factoryClass.newInstance()); if (factory instanceof ServiceAwareObjectFactory) { ((ServiceAwareObjectFactory) factory).injectServiceRegistry(currentServiceContainer()); } return factory; } catch (Throwable t) { throw NamingLogger.ROOT_LOGGER.objectFactoryCreationFailure(t); } }
private ObjectFactory factoryFromReference(final Reference reference, final ClassLoader classLoader, final Hashtable<?, ?> environment) throws Exception { try { final Class<?> factoryClass = classLoader.loadClass(reference.getFactoryClassName()); ObjectFactory factory = ObjectFactory.class.cast(factoryClass.newInstance()); if (factory instanceof ServiceAwareObjectFactory) { ((ServiceAwareObjectFactory) factory).injectServiceRegistry(currentServiceContainer()); } return factory; } catch (Throwable t) { throw MESSAGES.objectFactoryCreationFailure(t); } }
private <T> T getObject(Reference reference, Class<T> tClass) throws Exception { String factoryName = reference.getFactoryClassName(); Class<?> factoryClass = Class.forName(factoryName); ObjectFactory factory = (ObjectFactory) factoryClass.newInstance(); Object o = factory.getObjectInstance(reference, null, null, null); if (tClass.isAssignableFrom(tClass)) { return tClass.cast(o); } else { throw new IllegalStateException("Expected class, " + tClass.getName()); } }
private ObjectFactory factoryFromReference(final Reference reference, final Hashtable<?, ?> environment) throws Exception { if (reference.getFactoryClassName() == null) { return lookForURLs(reference, environment); } if (reference instanceof ModularReference) { return factoryFromModularReference(ModularReference.class.cast(reference), environment); } return factoryFromReference(reference, WildFlySecurityManager.getCurrentContextClassLoaderPrivileged(), environment); }
private ObjectFactory factoryFromReference(final Reference reference, final Hashtable<?, ?> environment) throws Exception { if (reference.getFactoryClassName() == null) { return lookForURLs(reference, environment); } if (reference instanceof ModularReference) { return factoryFromModularReference(ModularReference.class.cast(reference), environment); } return factoryFromReference(reference, WildFlySecurityManager.getCurrentContextClassLoaderPrivileged(), environment); }
@Test public void testReferenceCF() throws Exception { Reference cfRef = ((Referenceable) cf).getReference(); String factoryName = cfRef.getFactoryClassName(); Class<?> factoryClass = Class.forName(factoryName); ObjectFactory factory = (ObjectFactory) factoryClass.newInstance(); Object instance = factory.getObjectInstance(cfRef, null, null, null); ProxyAssertSupport.assertTrue(instance instanceof ActiveMQConnectionFactory); ActiveMQJMSConnectionFactory cf2 = (ActiveMQJMSConnectionFactory) instance; simpleSendReceive(cf2, queue1); }
@Test public void testReferenceTopic() throws Exception { Reference topicRef = ((Referenceable) ActiveMQServerTestCase.topic1).getReference(); String factoryName = topicRef.getFactoryClassName(); Class factoryClass = Class.forName(factoryName); ObjectFactory factory = (ObjectFactory) factoryClass.newInstance(); Object instance = factory.getObjectInstance(topicRef, null, null, null); ProxyAssertSupport.assertTrue(instance instanceof ActiveMQDestination); ActiveMQTopic topic2 = (ActiveMQTopic) instance; ProxyAssertSupport.assertEquals(ActiveMQServerTestCase.topic1.getTopicName(), topic2.getTopicName()); simpleSendReceive(cf, topic2); }
@Test public void testReferenceQueue() throws Exception { Reference queueRef = ((Referenceable) queue1).getReference(); String factoryName = queueRef.getFactoryClassName(); Class<?> factoryClass = Class.forName(factoryName); ObjectFactory factory = (ObjectFactory) factoryClass.newInstance(); Object instance = factory.getObjectInstance(queueRef, null, null, null); ProxyAssertSupport.assertTrue(instance instanceof ActiveMQDestination); ActiveMQQueue queue2 = (ActiveMQQueue) instance; ProxyAssertSupport.assertEquals(queue1.getQueueName(), queue2.getQueueName()); simpleSendReceive(cf, queue2); }
@Test public void testReference() throws Exception { ActiveMQDestination queue = (ActiveMQDestination) ActiveMQJMSClient.createQueue(RandomUtil.randomString()); Reference reference = queue.getReference(); String factoryName = reference.getFactoryClassName(); Class<?> factoryClass = Class.forName(factoryName); ObjectFactory factory = (ObjectFactory) factoryClass.newInstance(); Object object = factory.getObjectInstance(reference, null, null, null); Assert.assertNotNull(object); Assert.assertTrue(object instanceof ActiveMQDestination); Assert.assertEquals(queue, object); }
@Test public void testJNDIReference() throws Exception { final EntityManagerFactory emf = Persistence.createEntityManagerFactory( "ogm", TestHelper.getDefaultTestSettings() ); SessionFactory factory = (SessionFactory) emf; Reference reference = factory.getReference(); assertThat( reference.getClassName() ).isEqualTo( OgmSessionFactoryImpl.class.getName() ); assertThat( reference.getFactoryClassName() ).isEqualTo( ObjectFactoryImpl.class.getName() ); assertThat( reference.get( 0 ) ).isNotNull(); assertThat( reference.getFactoryClassLocation() ).isNull(); ObjectFactory objFactory = new ObjectFactoryImpl(); SessionFactory factoryFromRegistry = (SessionFactory) objFactory.getObjectInstance( reference, null, null, null ); assertThat( factoryFromRegistry.getClass() ).isEqualTo( OgmSessionFactoryImpl.class ); assertThat( factoryFromRegistry.getReference() ).isEqualTo( factory.getReference() ); emf.close(); }
@Test public void testGetReferenceImplementation() throws Exception { final Session session = openSession(); SessionFactory factory = session.getSessionFactory(); assertThat( factory.getClass() ).isEqualTo( OgmSessionFactoryImpl.class ); Reference reference = factory.getReference(); assertThat( reference.getClassName() ).isEqualTo( OgmSessionFactoryImpl.class.getName() ); assertThat( reference.getFactoryClassName() ).isEqualTo( ObjectFactoryImpl.class.getName() ); assertThat( reference.get( 0 ) ).isNotNull(); assertThat( reference.getFactoryClassLocation() ).isNull(); ObjectFactory objFactory = new ObjectFactoryImpl(); SessionFactory factoryFromRegistry = (SessionFactory) objFactory.getObjectInstance( reference, null, null, null ); assertThat( factoryFromRegistry.getClass() ).isEqualTo( OgmSessionFactoryImpl.class ); assertThat( factoryFromRegistry.getReference() ).isEqualTo( factory.getReference() ); session.close(); }