Il contenuto di questo sito è rilasciato sotto licenza Creative Commons License se non specificato diversamente

Usare il provider filesystem di jndi

nota: questo codice è instabile (alfa) … da notare la necessità di creare le varie directory dell'albero jndi. Nell'esempio viene creata solo la base ma nel caso di alberi più complessi tutte le sottocartelel dovono essere create; chiaramente sto indagando su come fare per ovviare al problema …

package test.jndi;
import java.io.File;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.Reference;
import javax.naming.StringRefAddr;
import test.jndi.mystuff.ClasseInutileFactory;
import junit.framework.TestCase;
 
public class SimpleJndi extends TestCase {
	private static final String JDBC_PIPPO = "data/inutile";
	private static final String PIPPO = "pippo";
	static Hashtable<String,String> props = new Hashtable<String,String>();
	static String dirname = "/tmp/";
	static {
		props.put("java.naming.factory.initial", "com.sun.jndi.fscontext.RefFSContextFactory");
		props.put("java.naming.provider.url", "file://" +
				dirname);
		new File(dirname).mkdirs(); // la directory deve esistere 
	}
        protected void setUp() throws Exception {
		super.setUp();
	}
	protected void tearDown() throws Exception {
		super.tearDown();
	}
	public void testFactory() throws Exception{
		InitialContext ctx = new InitialContext(props);
		Reference ref = new Reference(ClasseInutile.class.getName(),
				ClasseInutileFactory.class.getName(), null);
		ref.add(new StringRefAddr("name", "pippoName"));
		ctx.rebind(PIPPO, ref);
		Context ic2 = new InitialContext(props);
		ClasseInutile ci = (ClasseInutile)ic2.lookup(PIPPO);
		System.out.println(ci);
		ci = (ClasseInutile)ic2.lookup(PIPPO);
		System.out.println(ci);
	}
	public void aatestSimple() throws Exception {
		Context ctx = new InitialContext(props);
		ClasseInutile c = new ClasseInutile();
		c.setName(String.valueOf(Math.random()));
		ctx.rebind(PIPPO,new Reference(c.getClass().getName()));
		ClasseInutile cu = (ClasseInutile)ctx.lookup(PIPPO);
		assertEquals(cu,c);
	}
}
 
java/snipplets/jndi_su_filesystem.txt · Ultima modifica: 2009/01/12 11:45 da fcasadei
 
Recent changes RSS feed