下面列出了javax.management.openmbean.TabularData#put ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
@Effector(description="Updates the OSGi Service's properties, adding (and overriding) the given key-value pairs")
public void updateServiceProperties(
@EffectorParam(name="serviceName", description="Name of the OSGi service") String serviceName,
Map<String,String> additionalVals) {
TabularData table = (TabularData) jmxHelper.operation(OSGI_COMPENDIUM, "getProperties", serviceName);
try {
for (Map.Entry<String, String> entry: additionalVals.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
CompositeData data = new CompositeDataSupport(
JmxConstants.PROPERTY_TYPE,
MutableMap.of(JmxConstants.KEY, key, JmxConstants.TYPE, "String", JmxConstants.VALUE, value));
table.remove(data.getAll(new String[] {JmxConstants.KEY}));
table.put(data);
}
} catch (OpenDataException e) {
throw Exceptions.propagate(e);
}
LOG.info("Updating monterey-service configuration with changes {}", additionalVals);
if (LOG.isTraceEnabled()) LOG.trace("Updating monterey-service configuration with new configuration {}", table);
jmxHelper.operation(OSGI_COMPENDIUM, "update", serviceName, table);
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
public TabularData getMissingPersistentMembersJMX() throws AdminException {
try {
Set<PersistentID> members = super.getMissingPersistentMembers();
TabularData results = new TabularDataSupport(PERSISTENT_ID_TABLE_TYPE);
for(PersistentID id : members) {
CompositeData idData = new CompositeDataSupport(PERSISTENT_ID_TYPE, PERSISTENT_ID_FIELDS, new Object[] {id.getHost().toString(), id.getDirectory(), id.getUUID().toString()});
results.put(idData);
}
return results;
} catch( OpenDataException e) {
logger.warning(LocalizedStrings.ONE_ARG, "Exception occurred while getting missing persistent members.", e);
throw new AdminException(e);
}
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
public TabularData getMissingPersistentMembersJMX() throws AdminException {
try {
Set<PersistentID> members = super.getMissingPersistentMembers();
TabularData results = new TabularDataSupport(PERSISTENT_ID_TABLE_TYPE);
for(PersistentID id : members) {
CompositeData idData = new CompositeDataSupport(PERSISTENT_ID_TYPE, PERSISTENT_ID_FIELDS, new Object[] {id.getHost().toString(), id.getDirectory(), id.getUUID().toString()});
results.put(idData);
}
return results;
} catch( OpenDataException e) {
logger.warning(LocalizedStrings.ONE_ARG, "Exception occurred while getting missing persistent members.", e);
throw new AdminException(e);
}
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static TabularData makeTable() throws OpenDataException {
TabularData td = new TabularDataSupport(tt);
for (Map.Entry<String, Integer> entry : stringToValue.entrySet()) {
CompositeData cd = new CompositeDataSupport(
ct,
new String[] {"name", "int"},
new Object[] {entry.getKey(), entry.getValue()});
td.put(cd);
}
return td;
}
private static CompositeData convert(MessageAndAddresses maa) {
if (maa == null) {
return null;
}
try {
TabularData addrData = new TabularDataSupport(TAB_ADDR_TYPE);
for(Address addr : maa.getAddresses()) {
addrData.put(new CompositeDataSupport(ROW_ADDR_TYPE, new String[]{"addressType", "address"}, new Object[]{addr.getType(), addr.toString()}));
}
TabularData headerData = new TabularDataSupport(TAB_HEADER_TYPE);
Enumeration en = maa.getMessage().getAllHeaders();
while (en.hasMoreElements()) {
Header header = (Header) en.nextElement();
headerData.put(new CompositeDataSupport(ROW_HEADER_TYPE, new String[]{"header-name", "header-value"}, new Object[]{header.getName(), header.getValue()}));
}
String error = null;
if (maa.getException() != null) {
StringWriter sw = new StringWriter();
sw.append(maa.getException().toString());
maa.getException().printStackTrace(new PrintWriter(sw));
sw.flush();
error = sw.toString();
}
return new CompositeDataSupport(MAIL_INFO_TYPE,
new String[] {"messageId", "date", "subject", "toAddresses", "headers", "errorDescription"},
new Object[]{maa.getMessage().getMessageID(), new Date(maa.getTimestamp()), maa.getMessage().getSubject(), addrData, headerData, error}
);
} catch (OpenDataException | MessagingException e) {
throw new IllegalArgumentException("cannot convert MessageAndAddresses to CompositeData", e);
}
}