[jboss-svn-commits] JBL Code SVN: r28955 - in labs/jbossrules/trunk: drools-core/src/main/java/org/drools/common and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Aug 16 21:41:41 EDT 2009
Author: tirelli
Date: 2009-08-16 21:41:40 -0400 (Sun, 16 Aug 2009)
New Revision: 28955
Added:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/management/KBaseConfigurationMonitorMBean.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KBaseConfigurationMonitor.java
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/management/ObjectTypeNodeMonitorMBean.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeBaseMonitoring.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/ObjectTypeNodeMonitor.java
Log:
JBRULES-2247: Adding support to monitoring through MBeans
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/management/KBaseConfigurationMonitorMBean.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/management/KBaseConfigurationMonitorMBean.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/management/KBaseConfigurationMonitorMBean.java 2009-08-17 01:41:40 UTC (rev 28955)
@@ -0,0 +1,37 @@
+package org.drools.management;
+
+public interface KBaseConfigurationMonitorMBean {
+
+ public int getAlphaNodeHashingThreshold();
+
+ public String getAssertBehaviour();
+
+ public int getCompositeKeyDepth();
+
+ public String getEventProcessingMode();
+
+ public int getMaxThreads();
+
+ public String getSequentialAgenda();
+
+ public boolean isAdvancedProcessRuleIntegration();
+
+ public boolean isIndexLeftBetaMemory();
+
+ public boolean isIndexRightBetaMemory();
+
+ public boolean isMaintainTms();
+
+ public boolean isMBeansEnabled();
+
+ public boolean isMultithreadEvaluation();
+
+ public boolean isRemoveIdentities();
+
+ public boolean isSequential();
+
+ public boolean isShareAlphaNodes();
+
+ public boolean isShareBetaNodes();
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/management/ObjectTypeNodeMonitorMBean.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/management/ObjectTypeNodeMonitorMBean.java 2009-08-17 00:35:57 UTC (rev 28954)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/management/ObjectTypeNodeMonitorMBean.java 2009-08-17 01:41:40 UTC (rev 28955)
@@ -1,17 +1,54 @@
package org.drools.management;
+/**
+ * An interface for OTN MBean
+ *
+ * @author etirelli
+ */
public interface ObjectTypeNodeMonitorMBean {
+ /**
+ * The ID of the node
+ *
+ * @return
+ */
public int getId();
+ /**
+ * The entry point for the node
+ *
+ * @return
+ */
public String getEntryPoint();
+ /**
+ * The Object Type of the node
+ *
+ * @return
+ */
public String getObjectType();
+ /**
+ * The partition the node belongs to
+ *
+ * @return
+ */
public String getPartitionId();
+ /**
+ * True if this node corresponds to an event type
+ *
+ * @return
+ */
public boolean isEvent();
+ /**
+ * The calculated expiration offset for this node
+ * in case it is an event. -1 means it does not
+ * expires.
+ *
+ * @return
+ */
public long getExpirationOffset();
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2009-08-17 00:35:57 UTC (rev 28954)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2009-08-17 01:41:40 UTC (rev 28955)
@@ -167,14 +167,14 @@
}
private void createRulebaseId(final String id) {
- String key = "";
- if( config.isMBeansEnabled() ) {
- DroolsManagementAgent agent = DroolsManagementAgent.getInstance();
- key = String.valueOf( agent.getNextKnowledgeBaseId() );
- }
- if ( id != null ) {
- this.id = id+key;
+ if( id != null ) {
+ this.id = id;
} else {
+ String key = "";
+ if( config.isMBeansEnabled() ) {
+ DroolsManagementAgent agent = DroolsManagementAgent.getInstance();
+ key = String.valueOf( agent.getNextKnowledgeBaseId() );
+ }
this.id = "default"+key;
}
}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KBaseConfigurationMonitor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KBaseConfigurationMonitor.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KBaseConfigurationMonitor.java 2009-08-17 01:41:40 UTC (rev 28955)
@@ -0,0 +1,146 @@
+/*
+ * Copyright 2008 Red Hat
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package org.drools.management;
+
+import org.drools.RuleBaseConfiguration;
+
+/**
+ * An mbean monitor class for the knowledgebase configuration
+ *
+ * @author etirelli
+ */
+public class KBaseConfigurationMonitor implements KBaseConfigurationMonitorMBean {
+
+ private RuleBaseConfiguration conf;
+
+ public KBaseConfigurationMonitor(RuleBaseConfiguration conf) {
+ this.conf = conf;
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#getAlphaNodeHashingThreshold()
+ */
+ public int getAlphaNodeHashingThreshold() {
+ return conf.getAlphaNodeHashingThreshold();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#getAssertBehaviour()
+ */
+ public String getAssertBehaviour() {
+ return conf.getAssertBehaviour().toExternalForm();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#getCompositeKeyDepth()
+ */
+ public int getCompositeKeyDepth() {
+ return conf.getCompositeKeyDepth();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#getEventProcessingMode()
+ */
+ public String getEventProcessingMode() {
+ return conf.getEventProcessingMode().toExternalForm();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#getMaxThreads()
+ */
+ public int getMaxThreads() {
+ return conf.getMaxThreads();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#getSequentialAgenda()
+ */
+ public String getSequentialAgenda() {
+ return conf.getSequentialAgenda().toExternalForm();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isAdvancedProcessRuleIntegration()
+ */
+ public boolean isAdvancedProcessRuleIntegration() {
+ return conf.isAdvancedProcessRuleIntegration();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isIndexLeftBetaMemory()
+ */
+ public boolean isIndexLeftBetaMemory() {
+ return conf.isIndexLeftBetaMemory();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isIndexRightBetaMemory()
+ */
+ public boolean isIndexRightBetaMemory() {
+ return conf.isIndexRightBetaMemory();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isMaintainTms()
+ */
+ public boolean isMaintainTms() {
+ return conf.isMaintainTms();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isMBeansEnabled()
+ */
+ public boolean isMBeansEnabled() {
+ return conf.isMBeansEnabled();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isMultithreadEvaluation()
+ */
+ public boolean isMultithreadEvaluation() {
+ return conf.isMultithreadEvaluation();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isRemoveIdentities()
+ */
+ public boolean isRemoveIdentities() {
+ return conf.isRemoveIdentities();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isSequential()
+ */
+ public boolean isSequential() {
+ return conf.isSequential();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isShareAlphaNodes()
+ */
+ public boolean isShareAlphaNodes() {
+ return conf.isShareAlphaNodes();
+ }
+
+ /* (non-Javadoc)
+ * @see org.drools.management.KBaseConfigurationMonitorMBean#isShareBetaNodes()
+ */
+ public boolean isShareBetaNodes() {
+ return conf.isShareBetaNodes();
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeBaseMonitoring.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeBaseMonitoring.java 2009-08-17 00:35:57 UTC (rev 28954)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeBaseMonitoring.java 2009-08-17 01:41:40 UTC (rev 28955)
@@ -32,14 +32,14 @@
implements
KnowledgeBaseMonitoringMBean {
- private static final String KBASE_PREFIX = "org.drools.kbases.";
+ private static final String KBASE_PREFIX = "org.drools.kbases";
private ReteooRuleBase kbase;
private ObjectName name;
public KnowledgeBaseMonitoring(ReteooRuleBase kbase) {
this.kbase = kbase;
- this.name = DroolsManagementAgent.createObjectName(KBASE_PREFIX + kbase.getId() + ":type=KnowledgeBase");
+ this.name = DroolsManagementAgent.createObjectName(KBASE_PREFIX + ":id="+kbase.getId());
}
public ObjectName getName() {
@@ -75,14 +75,23 @@
}
public String getEntryPoints() {
+ // the dependent mbeans are created here in order to delay their creating
+ // until the this kbase is actually inspected
+ createDependentMBeans();
+ return kbase.getRete().getEntryPointNodes().keySet().toString();
+ }
+
+ private void createDependentMBeans() {
for( EntryPointNode epn : kbase.getRete().getEntryPointNodes().values() ) {
for( ObjectTypeNode otn : epn.getObjectTypeNodes().values() ) {
ObjectTypeNodeMonitor otnm = new ObjectTypeNodeMonitor( otn );
- ObjectName name = DroolsManagementAgent.createObjectName( this.name.getDomain() + ":type=EntryPoints,EntryPoint=" + otnm.getNameSufix() + ",ObjectType="+((ClassObjectType)otn.getObjectType()).getClassName() );
+ ObjectName name = DroolsManagementAgent.createObjectName( this.name.getCanonicalName() + ",type=EntryPoints,EntryPoint=" + otnm.getNameSufix() + ",ObjectType="+((ClassObjectType)otn.getObjectType()).getClassName() );
DroolsManagementAgent.getInstance().registerMBean( kbase, otnm, name );
}
}
- return kbase.getRete().getEntryPointNodes().keySet().toString();
+ KBaseConfigurationMonitor kbcm = new KBaseConfigurationMonitor( kbase.getConfiguration() );
+ ObjectName name = DroolsManagementAgent.createObjectName( this.name.getCanonicalName() + ",type=Configuration" );
+ DroolsManagementAgent.getInstance().registerMBean( kbase, kbcm, name );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/ObjectTypeNodeMonitor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/ObjectTypeNodeMonitor.java 2009-08-17 00:35:57 UTC (rev 28954)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/ObjectTypeNodeMonitor.java 2009-08-17 01:41:40 UTC (rev 28955)
@@ -76,7 +76,7 @@
public String getNameSufix() {
char[] name = node.getEntryPoint().getEntryPointId().toCharArray();
for( int i = 0; i < name.length; i++ ) {
- if( ! Character.isLetter( name[i] ) ) {
+ if( ! Character.isLetter( name[i] ) && name[i] != ' ' ) {
name[i] = '_';
}
}
More information about the jboss-svn-commits
mailing list