Improved jmx
This commit is contained in:
parent
3109be3060
commit
5efc789b49
|
@ -53,7 +53,7 @@ public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKey
|
|||
|
||||
static <Y extends BãßBȍőnCoffinStoreKeyʸᴰ> BãßBȍőnCoffinOpenʸᴰ<Y> newInstance() {
|
||||
return new BãßBȍőnCoffinOpenʸᴰ<Y>() {
|
||||
private final Map<Y,Object> initMap = new HashMap<>();
|
||||
private final Map<Y,Object> corpseParts = new HashMap<>();
|
||||
private final Map<Class<?>,BãßBȍőnFamilyGrave> familyGrave = new HashMap<>();
|
||||
private volatile boolean deathLock = false;
|
||||
|
||||
|
@ -68,15 +68,15 @@ public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKey
|
|||
|
||||
@Override
|
||||
public Object GET_OBJ(Y key) {
|
||||
return initMap.get(key);
|
||||
return corpseParts.get(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object PUT_OBJ(Y key, Object value) {
|
||||
if (deathLock) {
|
||||
throw new IllegalStateException("Can't cheat death in closed coffin.");
|
||||
throw new IllegalStateException("Can't put body parts in closed coffin.");
|
||||
}
|
||||
return initMap.put(key, value);
|
||||
return corpseParts.put(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -102,8 +102,7 @@ public interface BãßBȍőnCoffinOpenʸᴰ<T extends BãßBȍőnCoffinStoreKey
|
|||
return (BãßBȍőnCoffinʸᴰ<Y>) Proxy.newProxyInstance(cl, new Class[]{BãßBȍőnCoffinʸᴰ.class}, new InvocationHandler() {
|
||||
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
||||
Method localMethod = local.getClass().getMethod(method.getName(), method.getParameterTypes());
|
||||
Object result = localMethod.invoke(local, args);
|
||||
return result;
|
||||
return localMethod.invoke(local, args);
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package love.distributedrebirth.bassboonyd.jmx;
|
||||
|
||||
import love.distributedrebirth.bassboonyd.info.BãßBȍőnAuthor注;
|
||||
|
||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@MBeanAttributeType注(Long.class)
|
||||
public class AttributeLongᴶᴹˣ extends AbstractMBeanAttributeᴶᴹˣ {
|
||||
private Long value;
|
||||
|
||||
public AttributeLongᴶᴹˣ(String name, String description) {
|
||||
super(name, description);
|
||||
}
|
||||
|
||||
public void setValueLong(Long value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public Long getValueLong() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public Object getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
|
@ -13,42 +13,44 @@ import love.distributedrebirth.bassboonyd.info.BãßBȍőnAuthor注;
|
|||
import love.distributedrebirth.bassboonyd.info.BãßBȍőnName注;
|
||||
|
||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotation注(required = {BãßBȍőnName注.class, BãßBȍőnAuthor注.class})
|
||||
@BãßBȍőnAnnotation注(required = {BãßBȍőnName注.class})
|
||||
public interface DefaultEnumBaseᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseʸᴰ<T,K> {
|
||||
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
private static final String GHOST_KEY_JMX = "JMX";
|
||||
|
||||
private static <X> X buildJmxGhost(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, X result) {
|
||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
@BãßBȍőnSpiderEgg注()
|
||||
private static CounterGuageᴶᴹˣ buildGuageCounter(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
||||
CounterGuageᴶᴹˣ result = new CounterGuageᴶᴹˣ(name, description);
|
||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
||||
return result;
|
||||
return buildJmxGhost(boon, name, new CounterGuageᴶᴹˣ(name, description));
|
||||
}
|
||||
|
||||
@BãßBȍőnSpiderEgg注()
|
||||
private static AttributeStringᴶᴹˣ buildStringAttribute(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
||||
AttributeStringᴶᴹˣ result = new AttributeStringᴶᴹˣ(name, description);
|
||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
||||
return result;
|
||||
return buildJmxGhost(boon, name, new AttributeStringᴶᴹˣ(name, description));
|
||||
}
|
||||
|
||||
@BãßBȍőnSpiderEgg注()
|
||||
private static AttributeBooleanᴶᴹˣ buildBooleanAttribute(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
||||
AttributeBooleanᴶᴹˣ result = new AttributeBooleanᴶᴹˣ(name, description);
|
||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
||||
return result;
|
||||
return buildJmxGhost(boon, name, new AttributeBooleanᴶᴹˣ(name, description));
|
||||
}
|
||||
|
||||
@BãßBȍőnSpiderEgg注()
|
||||
private static AttributeIntegerᴶᴹˣ buildIntegerAttribute(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
||||
AttributeIntegerᴶᴹˣ result = new AttributeIntegerᴶᴹˣ(name, description);
|
||||
boon.toBBC().UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX).put(name, result);
|
||||
return result;
|
||||
return buildJmxGhost(boon, name, new AttributeIntegerᴶᴹˣ(name, description));
|
||||
}
|
||||
|
||||
@BãßBȍőnSpiderEgg注()
|
||||
private static AttributeLongᴶᴹˣ buildLongAttribute(DefaultEnumBaseᴶᴹˣ<?,?> boon, String name, String description) {
|
||||
return buildJmxGhost(boon, name, new AttributeLongᴶᴹˣ(name, description));
|
||||
}
|
||||
}
|
||||
|
||||
public static Map<String, Object> GHOST_MAP(BãßBȍőnCoffinʸᴰ<?> BBC) {
|
||||
public static Map<String, Object> jmxGhosts(BãßBȍőnCoffinʸᴰ<?> BBC) {
|
||||
Map<String, Object> result = BBC.UNHOLY(Ꝑŕḯṿª₮ḕ.class).GHOST_MAP_OBJ(Ꝑŕḯṿª₮ḕ.GHOST_KEY_JMX);
|
||||
if (result == null) {
|
||||
result = new HashMap<>();
|
||||
|
|
|
@ -11,12 +11,9 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
||||
import love.distributedrebirth.bassboonyd.DefaultEnumInstanceʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.info.BãßBȍőnAnnotation注;
|
||||
import love.distributedrebirth.bassboonyd.info.BãßBȍőnAuthor注;
|
||||
import love.distributedrebirth.bassboonyd.info.BãßBȍőnName注;
|
||||
|
||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotation注(required = {BãßBȍőnName注.class, BãßBȍőnAuthor注.class})
|
||||
public interface DefaultEnumInstanceᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumInstanceʸᴰ<T,K> {
|
||||
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
|
@ -33,7 +30,7 @@ public interface DefaultEnumInstanceᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreK
|
|||
|
||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||
ObjectName objectName1 = new ObjectName(name.toString());
|
||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(boon.BãßClassPurpose(), DefaultEnumBaseᴶᴹˣ.GHOST_MAP(boon.toBBC())), objectName1);
|
||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(boon.BãßClassPurpose(), DefaultEnumBaseᴶᴹˣ.jmxGhosts(boon.toBBC())), objectName1);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
|
@ -11,12 +11,9 @@ import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕ;
|
|||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInitPhaseʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.BãßBȍőnꝐŕḯṿª₮ḕInit注;
|
||||
import love.distributedrebirth.bassboonyd.DefaultEnumSetʸᴰ;
|
||||
import love.distributedrebirth.bassboonyd.info.BãßBȍőnAnnotation注;
|
||||
import love.distributedrebirth.bassboonyd.info.BãßBȍőnAuthor注;
|
||||
import love.distributedrebirth.bassboonyd.info.BãßBȍőnName注;
|
||||
|
||||
@BãßBȍőnAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
|
||||
@BãßBȍőnAnnotation注(required = {BãßBȍőnName注.class, BãßBȍőnAuthor注.class})
|
||||
public interface DefaultEnumSetᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸᴰ> extends DefaultEnumBaseᴶᴹˣ<T,K>,DefaultEnumSetʸᴰ<T,K> {
|
||||
|
||||
public static class Ꝑŕḯṿª₮ḕ implements BãßBȍőnꝐŕḯṿª₮ḕ {
|
||||
|
@ -37,7 +34,7 @@ public interface DefaultEnumSetᴶᴹˣ<T,K extends BãßBȍőnCoffinStoreKeyʸ
|
|||
|
||||
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
|
||||
ObjectName objectName1 = new ObjectName(name.toString());
|
||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(boon.BãßClassPurpose(), DefaultEnumBaseᴶᴹˣ.GHOST_MAP(boon.toBBC())), objectName1);
|
||||
server.registerMBean(new MBeanDynamicᴶᴹˣ(boon.BãßClassPurpose(), DefaultEnumBaseᴶᴹˣ.jmxGhosts(boon.toBBC())), objectName1);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue