1 17 package org.apache.geronimo.naming.reference; 18 19 import java.util.Set ; 20 21 import javax.naming.NameNotFoundException ; 22 23 import org.apache.geronimo.kernel.repository.Artifact; 24 import org.apache.geronimo.kernel.GBeanNotFoundException; 25 import org.apache.geronimo.gbean.AbstractNameQuery; 26 import org.apache.geronimo.gbean.AbstractName; 27 28 31 public class GBeanReference extends ConfigurationAwareReference { 32 private final Class type; 33 34 public GBeanReference(Artifact configId, Set abstractNameQueries, Class type) { 35 super(configId, abstractNameQueries); 36 this.type = type; 37 } 38 39 public String getClassName() { 40 return type.getName(); 41 } 42 43 public Object getContent() throws IllegalStateException , NameNotFoundException { 44 AbstractName target; 45 try { 46 target = resolveTargetName(); 47 } catch (GBeanNotFoundException e) { 48 throw (NameNotFoundException )new NameNotFoundException ("Could not resolve gbean from name query: " + abstractNameQueries).initCause(e); 49 } 50 try { 51 return getKernel().getGBean(target); 52 } catch (GBeanNotFoundException e) { 53 IllegalStateException illegalStateException = new IllegalStateException (); 54 illegalStateException.initCause(e); 55 throw illegalStateException; 56 } 57 } 58 } 59 | Popular Tags |