Package javax.naming.spi

Examples of javax.naming.spi.ObjectFactory


        testXAConnection();
        deleteDb("dataSource");
    }

    private void testDataSourceFactory() throws Exception {
        ObjectFactory factory = new JdbcDataSourceFactory();
        assertTrue(null == factory.getObjectInstance("test", null, null, null));
        Reference ref = new Reference("java.lang.String");
        assertTrue(null == factory.getObjectInstance(ref, null, null, null));
        ref = new Reference(JdbcDataSource.class.getName());
        ref.add(new StringRefAddr("url", "jdbc:h2:mem:"));
        ref.add(new StringRefAddr("user", "u"));
        ref.add(new StringRefAddr("password", "p"));
        ref.add(new StringRefAddr("loginTimeout", "1"));
        ref.add(new StringRefAddr("description", "test"));
        JdbcDataSource ds = (JdbcDataSource) factory.getObjectInstance(ref, null, null, null);
        assertEquals(1, ds.getLoginTimeout());
        assertEquals("test", ds.getDescription());
        assertEquals("jdbc:h2:mem:", ds.getURL());
        assertEquals("u", ds.getUser());
        assertEquals("p", ds.getPassword());
View Full Code Here


        }

        Context ctx = null;
       
        if (ref != null) {
            ObjectFactory factory = (ObjectFactory) context.getService(ref);
            try {
                return (Context) factory.getObjectInstance(null, null, null, env);
            } catch (Exception e) {
                NamingException e2 = new NamingException();
                e2.initCause(e);
                throw e2;
            } finally {
View Full Code Here

        try {
            ServiceReference[] refs = callerContext.getServiceReferences(ObjectFactory.class.getName(), null);
            if (refs != null) {
                Arrays.sort(refs, Utils.SERVICE_REFERENCE_COMPARATOR);
                for (ServiceReference ref : refs) {
                    ObjectFactory factory = (ObjectFactory) callerContext.getService(ref);

                    try {
                        result = factory.getObjectInstance(obj, name, nameCtx, environment);
                    } finally {
                        callerContext.ungetService(ref);
                    }

                    // if the result comes back and is not null and not the reference
View Full Code Here

        Object result = null;
        while (addresses.hasMoreElements()) {
            RefAddr address = addresses.nextElement();
            if (address instanceof StringRefAddr && "URL".equals(address.getType())) {
                String urlScheme = getUrlScheme( (String) address.getContent() );
                ObjectFactory factory = null;
                ServiceReference ref = null;
                try {
                    ServiceReference[] services = callerContext.getServiceReferences(ObjectFactory.class.getName(),
                            "(&(" + JNDIConstants.JNDI_URLSCHEME + "=" + urlScheme + "))");

                    if (services != null && services.length > 0) {
                        ref = services[0];
                    }
                } catch (InvalidSyntaxException e) {
                    // should not happen
                    throw new RuntimeException("Invalid filter", e);
                }

                if (ref != null) {
                    factory = (ObjectFactory) callerContext.getService(ref);
                   
                    String value = (String) address.getContent();
                    try {
                        result = factory.getObjectInstance(value, name, nameCtx, environment);
                    } finally {
                        callerContext.ungetService(ref);
                    }
                   
                    // if the result comes back and is not null and not the reference
View Full Code Here

        }

        Object result = null;
       
        if (serviceReference != null) {
            ObjectFactory factory = (ObjectFactory) defaultContext.getService(serviceReference);
            try {
                result = factory.getObjectInstance(reference, name, nameCtx, environment);
            } finally {
                defaultContext.ungetService(serviceReference);
            }
        }
View Full Code Here

    private Object getObjectInstanceUsingObjectFactoryBuilders(Object obj,
                                                               Name name,
                                                               Context nameCtx,
                                                               Hashtable<?, ?> environment)
        throws Exception {
        ObjectFactory factory = null;
        try {
            ServiceReference[] refs = callerContext.getServiceReferences(ObjectFactoryBuilder.class.getName(), null);
            if (refs != null) {
                Arrays.sort(refs, Utils.SERVICE_REFERENCE_COMPARATOR);
                for (ServiceReference ref : refs) {
                    ObjectFactoryBuilder builder = (ObjectFactoryBuilder) callerContext.getService(ref);
                    try {
                        factory = builder.createObjectFactory(obj, environment);
                    } catch (NamingException e) {
                        // TODO: log it
                    } finally {
                        callerContext.ungetService(ref);
                    }
                    if (factory != null) {
                        break;
                    }
                }
            }
        } catch (InvalidSyntaxException e) {
            // should not happen
            throw new RuntimeException("Invalid filter", e);
        }

        Object result = null;
       
        if (factory != null) {
            result = factory.getObjectInstance(obj, name, nameCtx, environment);
        }
       
        return (result == null) ? obj : result;
    }
View Full Code Here

                                                               Name name,
                                                               Context nameCtx,
                                                               Hashtable<?, ?> environment,
                                                               Attributes attrs)
        throws Exception {
        ObjectFactory factory = null;
        try {
            ServiceReference[] refs = callerContext.getServiceReferences(ObjectFactoryBuilder.class.getName(), null);
            if (refs != null) {
                Arrays.sort(refs, Utils.SERVICE_REFERENCE_COMPARATOR);
                for (ServiceReference ref : refs) {
                    ObjectFactoryBuilder builder = (ObjectFactoryBuilder) callerContext.getService(ref);
                    try {
                        factory = builder.createObjectFactory(obj, environment);
                    } catch (NamingException e) {
                        // TODO: log it
                    } finally {
                        callerContext.ungetService(ref);
                    }
                    if (factory != null) {
                        break;
                    }
                }
            }
        } catch (InvalidSyntaxException e) {
            // should not happen
            throw new RuntimeException("Invalid filter", e);
        }

        Object result = null;
       
        if (factory != null) {
            if (factory instanceof DirObjectFactory) {      
                result = ((DirObjectFactory) factory).getObjectInstance(obj, name, nameCtx, environment, attrs);
            } else {
                result = factory.getObjectInstance(obj, name, nameCtx, environment);
            }
        }
       
        return (result == null) ? obj : result;
    }
View Full Code Here

            throw new NamingException(e.getMessage());
        }
    }
    private Object dereference(Reference ref) throws Exception
    {
        ObjectFactory objFactory = (ObjectFactory) Class.forName(
                ref.getFactoryClassName()).newInstance();
        return objFactory.getObjectInstance(ref, null, null, null);
    }
View Full Code Here

   
    Reference dsAsReference = refDS.getReference();
   
    String factoryClassName = dsAsReference.getFactoryClassName();
   
    ObjectFactory factory = (ObjectFactory) Class.forName(factoryClassName).newInstance()
   
    Object recreatedDS = factory.getObjectInstance(dsAsReference, null, null, null);
   
    System.out.println(" empty DataSource recreated using Reference as " + recreatedDS.getClass().getName());
    if (recreatedDS == ds)
      System.out.println("FAIL recreated as same instance!");
   
    compareDS(properties, ds, recreatedDS);
   
    // now serialize and recreate
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(baos)
    oos.writeObject(ds);
    oos.flush();
    oos.close();
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    ObjectInputStream ois = new ObjectInputStream(bais);
    recreatedDS = ois.readObject();
    System.out.println(" empty DataSource recreated using serialization");
    compareDS(properties, ds, recreatedDS);
   
    // now populate the data source
    for (int i = 0; i < properties.length; i++)
    {
      String property = properties[i];
      Method getMethod = getGet(property, ds);
     
      Method setMethod = getSet(getMethod, ds);
     
      Class pt = getMethod.getReturnType();
     
      // generate a somewhat unique value for a property
      int val = 0;
      for (int j = 0; j < property.length(); j++)
        val += property.charAt(j);
     
      if (pt.equals(Integer.TYPE))
      {
        setMethod.invoke(ds, new Object[] {new Integer(val)});
        continue;
      }
      if (pt.equals(String.class))
      {
        String value;
        if (property.equals("createDatabase"))
          value = "create";
        else if (property.equals("shutdownDatabase"))
          value = "shutdown";
        else
          value = "XX_" + property + "_" + val;
         
        setMethod.invoke(ds, new Object[] {value});
        continue;
      }
      if (pt.equals(Boolean.TYPE))
      {
        // set the opposite value
        Object gbv = getMethod.invoke(ds, null);
        Boolean sbv = Boolean.FALSE.equals(gbv) ? Boolean.TRUE : Boolean.FALSE;
        setMethod.invoke(ds, new Object[] {sbv});
        continue;
      }     
      if (pt.equals(Short.TYPE))
      {
        setMethod.invoke(ds, new Object[] {new Short((short)val)});
        continue;
      }
      if (pt.equals(Long.TYPE))
      {
        setMethod.invoke(ds, new Object[] {new Long(val)});
        continue;
      }
      System.out.println("FAIL " + property + " not settable - uhpdate test!!");
    }
   
    dsAsReference = refDS.getReference();
    recreatedDS = factory.getObjectInstance(dsAsReference, null, null, null);
    System.out.println(" populated DataSource recreated using Reference as " + recreatedDS.getClass().getName());
    if (recreatedDS == ds)
      System.out.println("FAIL recreated as same instance!");
   
    compareDS(properties, ds, recreatedDS);   
View Full Code Here

        }
        return obj;
    }

    protected Object federate(String compositName) throws NamingException {
        ObjectFactory factories [] = getFederatedFactories();
        for (ObjectFactory factory : factories) {
            try {
                CompositeName name = new CompositeName(compositName);
                Object obj = factory.getObjectInstance(null, name, null, null);
View Full Code Here

TOP

Related Classes of javax.naming.spi.ObjectFactory

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.