package org.marketcetera.module; import org.marketcetera.util.misc.ClassVersion; import org.marketcetera.util.log.I18NMessage0P; import javax.management.*; /* $License$ */ /** * Factory for testing JMX integration when the module factory is a * dynamic mbean. * * @author anshul@marketcetera.com * @version $Id: DynamicBeanModuleFactory.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: DynamicBeanModuleFactory.java 16154 2012-07-14 16:34:05Z colin $") public class DynamicBeanModuleFactory extends ModuleFactory implements DynamicMBean { /** * Creates an instance. */ public DynamicBeanModuleFactory() { super(PROVIDER_URN, new I18NMessage0P(Messages.LOGGER, "dynamicBeanFactory"), true, false, String.class); } @Override public Module create(Object... inParameters) throws ModuleCreationException { return new DynamicBeanModule(new ModuleURN(PROVIDER_URN, (String)inParameters[0])); } @Override public Object getAttribute(String attribute) throws AttributeNotFoundException { return mDelegate.getAttribute(attribute); } @Override public void setAttribute(Attribute attribute) throws AttributeNotFoundException { mDelegate.setAttribute(attribute); } @Override public AttributeList getAttributes(String[] attributes) { return mDelegate.getAttributes(attributes); } @Override public AttributeList setAttributes(AttributeList attributes) { return mDelegate.setAttributes(attributes); } @Override public Object invoke(String actionName, Object[] params, String[] signature) throws ReflectionException { return mDelegate.invoke(actionName, params, signature); } @Override public MBeanInfo getMBeanInfo() { return mDelegate.getMBeanInfo(); } static final ModuleURN PROVIDER_URN = new ModuleURN("metc:test:dynamicbean"); static final String ATTRIB_NAME = "whyAttrib"; private final DynamicBeanDelegate mDelegate = new DynamicBeanDelegate(ATTRIB_NAME, PROVIDER_URN.providerName(), DynamicBeanModuleFactory.class.getName()); }