List of usage examples for javax.naming Name get
public String get(int posn);
From source file:org.apache.naming.NamingContext.java
/** * Enumerates the names bound in the named context, along with the * objects bound to them. The contents of any subcontexts are not * included.//from w w w. ja v a 2 s . c o m * <p> * If a binding is added to or removed from this context, its effect on * an enumeration previously returned is undefined. * * @param name the name of the context to list * @return an enumeration of the bindings in this context. * Each element of the enumeration is of type Binding. * @exception NamingException if a naming exception is encountered */ public NamingEnumeration listBindings(Name name) throws NamingException { // Removing empty parts while ((!name.isEmpty()) && (name.get(0).length() == 0)) name = name.getSuffix(1); if (name.isEmpty()) { return new NamingContextBindingsEnumeration(bindings.elements()); } NamingEntry entry = (NamingEntry) bindings.get(name.get(0)); if (entry == null) { throw new NameNotFoundException(sm.getString("namingContext.nameNotBound", name.get(0))); } if (entry.type != NamingEntry.CONTEXT) { throw new NamingException(sm.getString("namingContext.contextExpected")); } return ((Context) entry.value).listBindings(name.getSuffix(1)); }
From source file:org.apache.naming.NamingContext.java
/** * Destroys the named context and removes it from the namespace. Any * attributes associated with the name are also removed. Intermediate * contexts are not destroyed.//from w ww. jav a 2s . c o m * <p> * This method is idempotent. It succeeds even if the terminal atomic * name is not bound in the target context, but throws * NameNotFoundException if any of the intermediate contexts do not exist. * * In a federated naming system, a context from one naming system may be * bound to a name in another. One can subsequently look up and perform * operations on the foreign context using a composite name. However, an * attempt destroy the context using this composite name will fail with * NotContextException, because the foreign context is not a "subcontext" * of the context in which it is bound. Instead, use unbind() to remove * the binding of the foreign context. Destroying the foreign context * requires that the destroySubcontext() be performed on a context from * the foreign context's "native" naming system. * * @param name the name of the context to be destroyed; may not be empty * @exception NameNotFoundException if an intermediate context does not * exist * @exception NotContextException if the name is bound but does not name * a context, or does not name a context of the appropriate type */ public void destroySubcontext(Name name) throws NamingException { checkWritable(); while ((!name.isEmpty()) && (name.get(0).length() == 0)) name = name.getSuffix(1); if (name.isEmpty()) throw new NamingException(sm.getString("namingContext.invalidName")); NamingEntry entry = (NamingEntry) bindings.get(name.get(0)); if (entry == null) { throw new NameNotFoundException(sm.getString("namingContext.nameNotBound", name.get(0))); } if (name.size() > 1) { if (entry.type == NamingEntry.CONTEXT) { ((Context) entry.value).unbind(name.getSuffix(1)); } else { throw new NamingException(sm.getString("namingContext.contextExpected")); } } else { if (entry.type == NamingEntry.CONTEXT) { ((Context) entry.value).close(); bindings.remove(name.get(0)); } else { throw new NotContextException(sm.getString("namingContext.contextExpected")); } } }
From source file:org.apache.naming.NamingContext.java
/** * Retrieves the parser associated with the named context. In a * federation of namespaces, different naming systems will parse names * differently. This method allows an application to get a parser for * parsing names into their atomic components using the naming convention * of a particular naming system. Within any single naming system, * NameParser objects returned by this method must be equal (using the * equals() test).//from w w w . ja v a 2 s . co m * * @param name the name of the context from which to get the parser * @return a name parser that can parse compound names into their atomic * components * @exception NamingException if a naming exception is encountered */ public NameParser getNameParser(Name name) throws NamingException { while ((!name.isEmpty()) && (name.get(0).length() == 0)) name = name.getSuffix(1); if (name.isEmpty()) return nameParser; if (name.size() > 1) { Object obj = bindings.get(name.get(0)); if (obj instanceof Context) { return ((Context) obj).getNameParser(name.getSuffix(1)); } else { throw new NotContextException(sm.getString("namingContext.contextExpected")); } } return nameParser; }
From source file:org.apache.naming.NamingContext.java
/** * Retrieves the named object.//from w ww . j a va 2 s . c o m * * @param name the name of the object to look up * @param resolveLinks If true, the links will be resolved * @return the object bound to name * @exception NamingException if a naming exception is encountered */ protected Object lookup(Name name, boolean resolveLinks) throws NamingException { // Removing empty parts while ((!name.isEmpty()) && (name.get(0).length() == 0)) name = name.getSuffix(1); if (name.isEmpty()) { // If name is empty, a newly allocated naming context is returned return new NamingContext(env, this.name, bindings); } NamingEntry entry = (NamingEntry) bindings.get(name.get(0)); if (entry == null) { throw new NameNotFoundException(sm.getString("namingContext.nameNotBound", name.get(0))); } if (name.size() > 1) { // If the size of the name is greater that 1, then we go through a // number of subcontexts. if (entry.type != NamingEntry.CONTEXT) { throw new NamingException(sm.getString("namingContext.contextExpected")); } return ((Context) entry.value).lookup(name.getSuffix(1)); } else { if ((resolveLinks) && (entry.type == NamingEntry.LINK_REF)) { String link = ((LinkRef) entry.value).getLinkName(); if (link.startsWith(".")) { // Link relative to this context return lookup(link.substring(1)); } else { return (new InitialContext(env)).lookup(link); } } else if (entry.type == NamingEntry.REFERENCE) { try { Object obj = NamingManager.getObjectInstance(entry.value, name, this, env); if (obj != null) { entry.value = obj; entry.type = NamingEntry.ENTRY; } return obj; } catch (NamingException e) { throw e; } catch (Exception e) { log.warn(sm.getString("namingContext.failResolvingReference"), e); throw new NamingException(e.getMessage()); } } else { return entry.value; } } }
From source file:org.apache.naming.NamingContext.java
/** * Binds a name to an object. All intermediate contexts and the target * context (that named by all but terminal atomic component of the name) * must already exist./*from w w w . j ava2 s .com*/ * * @param name the name to bind; may not be empty * @param object the object to bind; possibly null * @param rebind if true, then perform a rebind (ie, overwrite) * @exception NameAlreadyBoundException if name is already bound * @exception InvalidAttributesException if object did not supply all * mandatory attributes * @exception NamingException if a naming exception is encountered */ protected void bind(Name name, Object obj, boolean rebind) throws NamingException { checkWritable(); while ((!name.isEmpty()) && (name.get(0).length() == 0)) name = name.getSuffix(1); if (name.isEmpty()) throw new NamingException(sm.getString("namingContext.invalidName")); NamingEntry entry = (NamingEntry) bindings.get(name.get(0)); if (name.size() > 1) { if (entry == null) { throw new NameNotFoundException(sm.getString("namingContext.nameNotBound", name.get(0))); } if (entry.type == NamingEntry.CONTEXT) { if (rebind) { ((Context) entry.value).rebind(name.getSuffix(1), obj); } else { ((Context) entry.value).bind(name.getSuffix(1), obj); } } else { throw new NamingException(sm.getString("namingContext.contextExpected")); } } else { if ((!rebind) && (entry != null)) { throw new NamingException(sm.getString("namingContext.alreadyBound", name.get(0))); } else { // Getting the type of the object and wrapping it within a new // NamingEntry Object toBind = NamingManager.getStateToBind(obj, name, this, env); if (toBind instanceof Context) { entry = new NamingEntry(name.get(0), toBind, NamingEntry.CONTEXT); } else if (toBind instanceof LinkRef) { entry = new NamingEntry(name.get(0), toBind, NamingEntry.LINK_REF); } else if (toBind instanceof Reference) { entry = new NamingEntry(name.get(0), toBind, NamingEntry.REFERENCE); } else if (toBind instanceof Referenceable) { toBind = ((Referenceable) toBind).getReference(); entry = new NamingEntry(name.get(0), toBind, NamingEntry.REFERENCE); } else { entry = new NamingEntry(name.get(0), toBind, NamingEntry.ENTRY); } bindings.put(name.get(0), entry); } } }
From source file:org.compass.core.jndi.NamingHelper.java
/** * Bind val to name in ctx, and make sure that all intermediate contexts * exist./*www.j a va 2 s. c o m*/ * * @param ctx * the root context * @param name * the name as a string * @param val * the object to be bound * @throws javax.naming.NamingException */ public static void bind(Context ctx, String name, Object val) throws NamingException { try { ctx.rebind(name, val); } catch (Exception e) { Name n = ctx.getNameParser("").parse(name); while (n.size() > 1) { String ctxName = n.get(0); Context subctx = null; try { subctx = (Context) ctx.lookup(ctxName); } catch (NameNotFoundException nfe) { // don't do nothing } if (subctx != null) { ctx = subctx; } else { ctx = ctx.createSubcontext(ctxName); } n = n.getSuffix(1); } ctx.rebind(n, val); } }
From source file:org.eclipse.ecr.testlib.runner.RuntimeFeature.java
public static void rebind(Context ctx, String key, Object value) throws NamingException { Name name = ctx.getNameParser("").parse(key); int depth = name.size() - 1; for (int i = 0; i < depth; i++) { String segment = name.get(i); try {/* w ww .ja v a 2 s .c om*/ ctx = (Context) ctx.lookup(segment); } catch (NameNotFoundException e) { ctx = ctx.createSubcontext(segment); } } ctx.rebind(name.get(depth), value); }
From source file:org.nuxeo.runtime.binding.ServiceBindings.java
public static void createAlias(InitialContext ctx, String existingName, String aliasName) throws NamingException { LinkRef link = new LinkRef(existingName); Context aliasCtx = ctx;/*from w ww .j av a 2s .c om*/ Name name = ctx.getNameParser("").parse(aliasName); int len = name.size() - 1; String atom = name.get(len); for (int i = 0; i < len; i++) { String comp = name.get(i); try { aliasCtx = (Context) aliasCtx.lookup(comp); } catch (NameNotFoundException e) { aliasCtx = aliasCtx.createSubcontext(comp); } } aliasCtx.rebind(atom, link); if (log.isDebugEnabled()) { log.debug("Created JNDI link [" + aliasName + "] pointing to [" + existingName + "]"); } }
From source file:org.nuxeo.runtime.datasource.DataSourceComponent.java
@Override public void applicationStarted(ComponentContext context) { if (namingContext != null) { return;/*from w ww . j a v a 2s .c om*/ } namingContext = NuxeoContainer.getRootContext(); // allocate datasource sub-contexts Name comp; try { comp = new CompositeName(DataSourceHelper.getDataSourceJNDIPrefix()); } catch (NamingException e) { throw new RuntimeException(e); } Context ctx = namingContext; for (int i = 0; i < comp.size(); i++) { try { ctx = (Context) ctx.lookup(comp.get(i)); } catch (NamingException e) { try { ctx = ctx.createSubcontext(comp.get(i)); } catch (NamingException e1) { throw new RuntimeException(e1); } } } // bind datasources for (DataSourceDescriptor datasourceDesc : datasources.values()) { bindDataSource(datasourceDesc); } // bind links for (DataSourceLinkDescriptor linkDesc : links.values()) { bindDataSourceLink(linkDesc); } }
From source file:org.nuxeo.runtime.jtajca.NuxeoConnectionManagerFactory.java
@Override public Object getObjectInstance(Object obj, Name objName, Context nameCtx, Hashtable<?, ?> env) { Reference ref = (Reference) obj; if (!ConnectionManager.class.getName().equals(ref.getClassName())) { return null; }//from ww w . j a v a 2s. co m String name; int size = objName.size(); if (size == 1) { name = "default"; } else { name = objName.get(size - 1); } final ConnectionManager cm = NuxeoContainer.connectionManagers.get(name); if (cm != null) { return cm; } NuxeoConnectionManagerConfiguration config = new NuxeoConnectionManagerConfiguration(); for (RefAddr addr : Collections.list(ref.getAll())) { String type = addr.getType(); String content = (String) addr.getContent(); try { BeanUtils.setProperty(config, type, content); } catch (ReflectiveOperationException e) { log.error(String.format("NuxeoConnectionManagerFactory cannot set %s = %s", type, content)); } } return NuxeoContainer.initConnectionManager(config); }