public GBeanSingleReference(GBeanInstance gbeanInstance, GReferenceInfo referenceInfo, Kernel kernel, ReferencePatterns referencePatterns) throws InvalidConfigurationException { super(gbeanInstance, referenceInfo, kernel, referencePatterns != null && referencePatterns.getAbstractName() != null); targetName = referencePatterns != null? referencePatterns.getAbstractName(): null; }
public void addDependency(AbstractNameQuery refInfo) { this.dependencies.add(new ReferencePatterns(refInfo)); }
public AbstractName findGBean(ReferencePatterns referencePatterns) throws GBeanNotFoundException { if (referencePatterns == null) throw new NullPointerException("referencePatterns is null"); if (referencePatterns.isResolved()) { return referencePatterns.getAbstractName(); } // check the local config Set<AbstractNameQuery> patterns = referencePatterns.getPatterns(); return findGBean(patterns); }
private static boolean hasTargets(ReferencePatterns referencePatterns) { if (referencePatterns == null) { return false; } if (referencePatterns.isResolved()) { return true; } return !referencePatterns.getPatterns().isEmpty(); }
public LinkedHashSet<AbstractName> findGBeans(ReferencePatterns referencePatterns) { if (referencePatterns == null) throw new NullPointerException("referencePatterns is null"); if (referencePatterns.getAbstractName() != null) { // this pattern is already resolved LinkedHashSet<AbstractName> result = new LinkedHashSet<AbstractName>(); result.add(referencePatterns.getAbstractName()); return result; } // check the local config Set<AbstractNameQuery> patterns = referencePatterns.getPatterns(); return findGBeans(patterns); }
private String verifyDependency(AbstractName name, ReferencePatterns referencePatterns, Configuration configuration) { String message = isVerifyReference(referencePatterns, configuration); if (message != null) { return "Unable to resolve dependency in gbean " + name + "\n to a gbean matching the pattern " + referencePatterns.getPatterns() + "\n due to: " + message; } return null; }
private String isVerifyReference(ReferencePatterns referencePatterns, Configuration configuration) { // we can't verify a resolved reference since it will have a specific artifact already set... // hopefully the deployer won't generate bad resolved references if (referencePatterns.isResolved()) return null; // Do not verify the reference if it has an explicit depenency on another artifact, because it it likely // that the other artifact is not in the "environment" (if it were you wouldn't use the long form) Set<AbstractNameQuery> patterns = referencePatterns.getPatterns(); for (AbstractNameQuery query : patterns) { if (query.getArtifact() != null) return null; } // attempt to find the bean try { configuration.findGBean(patterns); return null; } catch (GBeanNotFoundException e) { //TODO bug!! GERONIMO-3140 Multiple matches may be caused by using an already-loaded configuration rather than reloading one // using the client_artifact_aliases.properties which e.g. remap the server tm to the client tm. if (e.hasMatches()) { return null; } return e.getMessage(); } } }
private String verifyReference(GBeanData gbean, String referenceName, ReferencePatterns referencePatterns, Configuration configuration) { GReferenceInfo referenceInfo = gbean.getGBeanInfo().getReference(referenceName); // if there is no reference info we can't verify if (referenceInfo == null) return null; // A collection valued reference doesn't need to be verified if (referenceInfo.getProxyType().equals(Collection.class.getName())) return null; String message = isVerifyReference(referencePatterns, configuration); if (message != null) { return "Unable to resolve reference \"" + referenceName + "\"\n" + " in gbean " + gbean.getAbstractName() + "\n to a gbean matching the pattern " + referencePatterns.getPatterns() + "\n due to: " + message; } return null; }
/** * Gets the ObjectNames of any existing connectors for the specified container. */ public NetworkConnector[] getConnectorsForContainer(Object container) { AbstractName containerName = kernel.getAbstractNameFor(container); ProxyManager mgr = kernel.getProxyManager(); try { List results = new ArrayList(); AbstractNameQuery query = new AbstractNameQuery(TomcatWebConnector.class.getName()); Set set = kernel.listGBeans(query); // all Tomcat connectors for (Iterator it = set.iterator(); it.hasNext();) { AbstractName name = (AbstractName) it.next(); // a single Tomcat connector GBeanData data = kernel.getGBeanData(name); ReferencePatterns refs = data.getReferencePatterns(ConnectorGBean.CONNECTOR_CONTAINER_REFERENCE); if (containerName.equals(refs.getAbstractName())) { results.add(mgr.createProxy(name, TomcatWebConnector.class.getClassLoader())); } } return (TomcatWebConnector[]) results.toArray(new TomcatWebConnector[results.size()]); } catch (Exception e) { throw (IllegalArgumentException) new IllegalArgumentException("Unable to look up connectors for Tomcat container '"+containerName).initCause(e); } }
public final synchronized void setReferencePatterns(ReferencePatterns referencePatterns) { if (isOnline) { throw new IllegalStateException("Pattern set can not be modified while online"); } if (referencePatterns.isResolved()) { this.patterns = Collections.unmodifiableSet(Collections.singleton(new AbstractNameQuery(referencePatterns.getAbstractName()))); } else { this.patterns = Collections.unmodifiableSet(referencePatterns.getPatterns()); } }
public void addDependency(AbstractName dependency) { this.dependencies.add(new ReferencePatterns(dependency)); }
/** * Gets the ObjectNames of any existing connectors for the specified container. */ public NetworkConnector[] getConnectorsForContainer(Object container) { AbstractName containerName = kernel.getAbstractNameFor(container); ProxyManager mgr = kernel.getProxyManager(); try { List results = new ArrayList(); AbstractNameQuery query = new AbstractNameQuery(TomcatWebConnector.class.getName()); Set set = kernel.listGBeans(query); // all Tomcat connectors for (Iterator it = set.iterator(); it.hasNext();) { AbstractName name = (AbstractName) it.next(); // a single Tomcat connector GBeanData data = kernel.getGBeanData(name); ReferencePatterns refs = data.getReferencePatterns(ConnectorGBean.CONNECTOR_CONTAINER_REFERENCE); if (containerName.equals(refs.getAbstractName())) { results.add(mgr.createProxy(name, TomcatWebConnector.class.getClassLoader())); } } return (TomcatWebConnector[]) results.toArray(new TomcatWebConnector[results.size()]); } catch (Exception e) { throw (IllegalArgumentException) new IllegalArgumentException("Unable to look up connectors for Tomcat container '"+containerName).initCause(e); } }
public void setReferencePattern(String name, AbstractName abstractName) { setReferencePatterns(name, new ReferencePatterns(abstractName)); }
public NetworkConnector[] getConnectorsForContainer(Object broker) { AbstractName containerName = kernel.getAbstractNameFor(broker); ProxyManager mgr = kernel.getProxyManager(); try { List results = new ArrayList(); AbstractNameQuery query = new AbstractNameQuery(ActiveMQConnector.class.getName()); Set set = kernel.listGBeans(query); // all Jetty connectors for (Iterator it = set.iterator(); it.hasNext();) { AbstractName name = (AbstractName) it.next(); // a single Jetty connector GBeanData data = kernel.getGBeanData(name); ReferencePatterns refs = data.getReferencePatterns("brokerService"); if (containerName.equals(refs.getAbstractName())) { results.add(mgr.createProxy(name, ActiveMQConnector.class.getClassLoader())); } } return (ActiveMQConnector[]) results.toArray(new ActiveMQConnector[results.size()]); } catch (Exception e) { throw (IllegalArgumentException) new IllegalArgumentException("Unable to look up connectors for ActiveMQ broker '"+containerName).initCause(e); } }
public void setReferencePatterns(String name, Set patterns) { setReferencePatterns(name, new ReferencePatterns(patterns)); }
if(containerName.equals(refs.getAbstractName())) { try { String testProtocol = (String) kernel.getAttribute(name, "protocol");
throw new InvalidConfigException("Unable to resolve reference \"" + referenceName + "\" in gbean " + gbeanData.getAbstractName() + " to a gbean matching the pattern " + referencePatterns, e); gbeanData.setReferencePatterns(referenceName, new ReferencePatterns(abstractName)); throw new InvalidConfigException("Unable to resolve dependency in gbean " + gbeanData.getAbstractName(), e); newDependencies.add(new ReferencePatterns(abstractName));
if(containerName.equals(refs.getAbstractName())) { try { String testProtocol = (String) kernel.getAttribute(name, "protocol");
throw new DeploymentException("Error initializing J2EEApplication managed object", e); gbeanData.setReferencePatterns("Server", new ReferencePatterns(new AbstractNameQuery(J2EEServer.class.getName()))); gbeanData.setReferencePatterns("Resources", resourcePatterns); gbeanData.setReferencePatterns("AppClientModules", new ReferencePatterns(new AbstractNameQuery(null, thisApp, org.apache.geronimo.management.AppClientModule.class.getName()))); gbeanData.setReferencePatterns("EJBModules", new ReferencePatterns(new AbstractNameQuery(null, thisApp, org.apache.geronimo.management.EJBModule.class.getName()))); gbeanData.setReferencePatterns("ResourceAdapterModules", new ReferencePatterns(new AbstractNameQuery(null, thisApp, org.apache.geronimo.management.geronimo.ResourceAdapterModule.class.getName()))); gbeanData.setReferencePatterns("WebModules", new ReferencePatterns(new AbstractNameQuery(null, thisApp, org.apache.geronimo.management.geronimo.WebModule.class.getName()))); earContext.addGBean(gbeanData);
if(containerName.equals(refs.getAbstractName())) { try { String testProtocol = (String) kernel.getAttribute(name, "protocol");