ObjectNameMatchResourceAction(ObjectName baseName) { this.baseName = baseName; this.properties = baseName == null ? Collections.<String, String>emptyMap() : baseName.getKeyPropertyList(); try { this.domainOnlyName = baseName == null ? null : ObjectName.getInstance(baseName.getDomain() + ":*"); } catch (MalformedObjectNameException e) { throw new IllegalStateException(e); } this.propertyListPattern = baseName != null && baseName.isPropertyListPattern(); }
ObjectName localToRemote(ObjectName localName) throws IOException { if (nonRoutableDomains.contains(localName.getDomain()) || nonRoutableMBeans.contains(localName)) { return localName; } else { synchronized (localToRemoteCache) { ObjectName remoteName = localToRemoteCache.get(localName); if (remoteName == null) { Hashtable<String,String> newProps = new Hashtable<>(localName.getKeyPropertyList()); newProps.put("cell", cell); newProps.put("node", node); newProps.put("process", process); try { remoteName = new ObjectName(localName.getDomain(), newProps); if (localName.isPropertyListPattern()) { remoteName = new ObjectName(remoteName + ",*"); } } catch (MalformedObjectNameException ex) { // It's unlikely that we ever get here throw new Error(ex); } localToRemoteCache.put(localName, remoteName); } return remoteName; } } }
private Set<Handler> getHandlers(final ObjectName name){ if (name == null) { return getHandlersForName(IllAcceptAnythingNameMatcher.INSTANCE); } if (!isMyDomain(name)) { return Collections.emptySet(); } String property = name.getKeyProperty(Handler.J2EE_TYPE); if (property != null) { if (property.contains("*")) { return getHandlersForName(new WildcardPatternNameMatcher(Pattern.compile(property.replace("*", ".*")))); } return getHandlersForName(new ExactNameMatcher(property)); } if (name.isPropertyListPattern()) { return getHandlersForName(IllAcceptAnythingNameMatcher.INSTANCE); } return Collections.emptySet(); }