use of javax.management.MBeanException in project geode by apache.
the class MBeanProxyInvocationHandler method delegateToObjectState.
/**
* This will get the data from Object state which is replicated across the hidden region
* FederataionComponent being the carrier.
*
* @param attributeName
* @return Object
*/
protected Object delegateToObjectState(String attributeName) throws Throwable {
Object returnObj;
try {
FederationComponent fedComp = (FederationComponent) monitoringRegion.get(objectName.toString());
returnObj = fedComp.getValue(attributeName);
} catch (IllegalArgumentException e) {
throw new MBeanException(e);
} catch (Exception e) {
throw new MBeanException(e);
} catch (VirtualMachineError e) {
SystemFailure.initiateFailure(e);
throw e;
} catch (Throwable th) {
SystemFailure.checkFailure();
throw new MBeanException(new Exception(th.getLocalizedMessage()));
}
return returnObj;
}
use of javax.management.MBeanException in project jdk8u_jdk by JetBrains.
the class RequiredModelMBeanSetAttributeTest method main.
public static void main(String[] args) throws Exception {
boolean ok = true;
MBeanServer mbs = MBeanServerFactory.createMBeanServer();
// ModelMBeanAttributeInfo
Descriptor somethingAttributeDescriptor = new DescriptorSupport(new String[] { "name=Something", "descriptorType=attribute", "getMethod=getSomething" });
ModelMBeanAttributeInfo somethingAttributeInfo = new ModelMBeanAttributeInfo("Something", "java.lang.String", "Something attribute", true, true, false, somethingAttributeDescriptor);
Descriptor somethingCachedAttributeDescriptor = new DescriptorSupport(new String[] { "name=SomethingCached", "descriptorType=attribute", "getMethod=getSomethingCached", "currencyTimeLimit=5000" });
ModelMBeanAttributeInfo somethingCachedAttributeInfo = new ModelMBeanAttributeInfo("SomethingCached", "java.lang.String", "Something cached attribute", true, true, false, somethingCachedAttributeDescriptor);
// ModelMBeanInfo
ModelMBeanInfo mmbi = new ModelMBeanInfoSupport(Resource.class.getName(), "Resource MBean", new ModelMBeanAttributeInfo[] { somethingAttributeInfo, somethingCachedAttributeInfo }, null, new ModelMBeanOperationInfo[] {}, null);
// RequiredModelMBean
ModelMBean mmb = new RequiredModelMBean(mmbi);
mmb.setManagedResource(resource, "ObjectReference");
ObjectName mmbName = new ObjectName(":type=ResourceMBean");
mbs.registerMBean(mmb, mmbName);
// Run tests
System.out.println("\nTest that we receive ServiceNotFoundException");
try {
Attribute attr = new Attribute("Something", "Some string");
mbs.setAttribute(mmbName, attr);
System.out.println("TEST FAILED: Didn't caught exception");
ok = false;
} catch (MBeanException mbex) {
Exception e = mbex.getTargetException();
if (e == null || !(e instanceof ServiceNotFoundException)) {
System.out.println("TEST FAILED: Caught wrong exception:" + e);
ok = false;
} else
System.out.println("Received expected ServiceNotFoundException");
} catch (Exception e) {
System.out.println("TEST FAILED: Caught wrong exception: " + e);
e.printStackTrace(System.out);
ok = false;
}
//Now check that when caching is enabled, setAttribute is working
System.out.println("\nTest that we are not receiving ServiceNotFoundException");
try {
Attribute attr = new Attribute("SomethingCached", "Some string");
mbs.setAttribute(mmbName, attr);
System.out.println("No exception thrown");
} catch (Exception e) {
System.out.println("TEST FAILED: Caught an exception: " + e);
e.printStackTrace(System.out);
ok = false;
}
if (ok)
System.out.println("Test passed");
else {
System.out.println("TEST FAILED");
throw new Exception("TEST FAILED");
}
}
use of javax.management.MBeanException in project karaf by apache.
the class ConfigMBeanImpl method install.
@Override
public void install(String url, String finalname, boolean override) throws MBeanException {
try {
File etcFolder = new File(System.getProperty("karaf.etc"));
File file = new File(etcFolder, finalname);
if (file.exists()) {
if (!override) {
throw new IllegalArgumentException("Configuration file {} already exists " + finalname);
}
}
try (InputStream is = new BufferedInputStream(new URL(url).openStream())) {
if (!file.exists()) {
File parentFile = file.getParentFile();
if (parentFile != null) {
parentFile.mkdirs();
}
file.createNewFile();
}
try (FileOutputStream fop = new FileOutputStream(file)) {
StreamUtils.copy(is, fop);
}
} catch (RuntimeException | MalformedURLException e) {
throw e;
}
} catch (Exception e) {
throw new MBeanException(null, e.toString());
}
}
use of javax.management.MBeanException in project karaf by apache.
the class ConfigMBeanImpl method deleteProperty.
@Override
public void deleteProperty(String pid, String key) throws MBeanException {
try {
Dictionary<String, Object> dictionary = getConfigProperties(pid);
dictionary.remove(key);
configRepo.update(pid, dictionary);
} catch (Exception e) {
throw new MBeanException(null, e.toString());
}
}
use of javax.management.MBeanException in project karaf by apache.
the class ConfigMBeanImpl method listProperties.
@Override
@SuppressWarnings("rawtypes")
public Map<String, String> listProperties(String pid) throws MBeanException {
try {
Dictionary dictionary = getConfigProperties(pid);
Map<String, String> propertiesMap = new HashMap<>();
for (Enumeration e = dictionary.keys(); e.hasMoreElements(); ) {
Object key = e.nextElement();
Object value = dictionary.get(key);
propertiesMap.put(key.toString(), value.toString());
}
return propertiesMap;
} catch (Exception e) {
throw new MBeanException(null, e.toString());
}
}
Aggregations