1 17 18 package org.apache.geronimo.naming.deployment; 19 20 import java.util.Map ; 21 22 import javax.xml.namespace.QName ; 23 24 import org.apache.geronimo.j2ee.deployment.NamingBuilder; 25 import org.apache.geronimo.j2ee.deployment.Module; 26 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; 27 import org.apache.geronimo.kernel.repository.Environment; 28 import org.apache.geronimo.kernel.config.Configuration; 29 import org.apache.geronimo.common.DeploymentException; 30 import org.apache.geronimo.gbean.GBeanInfo; 31 import org.apache.geronimo.gbean.GBeanInfoBuilder; 32 import org.apache.xmlbeans.XmlObject; 33 import org.apache.xmlbeans.QNameSet; 34 35 38 public class UnavailableRefBuilder implements NamingBuilder { 39 private final QNameSet unavailableQNameSet; 40 private QName unavailableQName; 41 42 public UnavailableRefBuilder(String namespaceURI, String localPart) { 43 unavailableQName = new QName (namespaceURI, localPart); 44 unavailableQNameSet = QNameSet.singleton(unavailableQName); 45 } 46 public void buildEnvironment(XmlObject specDD, XmlObject plan, Environment environment) throws DeploymentException { 47 checkUnavailable(specDD); 48 } 49 50 private void checkUnavailable(XmlObject specDD) throws DeploymentException { 51 XmlObject[] specRefs = specDD.selectChildren(unavailableQNameSet); 52 if (specRefs.length > 0) { 53 throw new DeploymentException("This server cannot deploy references of type " + unavailableQName); 54 } 55 } 56 57 public void initContext(XmlObject specDD, XmlObject plan, Configuration localConfiguration, Configuration remoteConfiguration, Module module) throws DeploymentException { 58 checkUnavailable(specDD); 59 } 60 61 public void buildNaming(XmlObject specDD, XmlObject plan, Configuration localConfiguration, Configuration remoteConfiguration, Module module, Map componentContext) throws DeploymentException { 62 checkUnavailable(specDD); 63 } 64 65 public QNameSet getSpecQNameSet() { 66 return unavailableQNameSet; 67 } 68 69 public QNameSet getPlanQNameSet() { 70 return QNameSet.EMPTY; 71 } 72 73 public static final GBeanInfo GBEAN_INFO; 74 75 static { 76 GBeanInfoBuilder infoBuilder = GBeanInfoBuilder.createStatic(UnavailableRefBuilder.class, NameFactory.MODULE_BUILDER); 77 infoBuilder.addAttribute("specNamespaceURI", String .class, true, true); 78 infoBuilder.addAttribute("specLocalPart", String .class, true, true); 79 80 infoBuilder.setConstructor(new String [] {"specNamespaceURI", "specLocalPart"}); 81 82 GBEAN_INFO = infoBuilder.getBeanInfo(); 83 } 84 85 public static GBeanInfo getGBeanInfo() { 86 return GBEAN_INFO; 87 } 88 } 89 | Popular Tags |