Skip to content

Commit

Permalink
Enable the 'new' JMX MBeans to show up on the JBoss JMX console.
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Jun 14, 2008
1 parent 59f6d14 commit cb86e35
Show file tree
Hide file tree
Showing 12 changed files with 92 additions and 69 deletions.
2 changes: 1 addition & 1 deletion symmetric-web/pom.xml
Expand Up @@ -3,7 +3,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jumpmind.symmetric</groupId>
<artifactId>symmetric-root-war</artifactId>
<artifactId>symmetric-root-web</artifactId>
<packaging>war</packaging>
<version>1.4.0-SNAPSHOT</version>
<name>SymmetricDS</name>
Expand Down
7 changes: 0 additions & 7 deletions symmetric-web/src/main/resources/symmetric-plugins.xml

This file was deleted.

10 changes: 5 additions & 5 deletions symmetric-web/src/main/resources/symmetric.properties
@@ -1,5 +1,5 @@
db.jndi.name=jdbc/SymmetricDS
symmetric.runtime.engine.name=Root
symmetric.runtime.my.url=
symmetric.runtime.group.id=root
symmetric.runtime.external.id=00000
db.jndi.name=java:/jdbc/SymmetricDS
engine.name=Root
my.url=
group.id=test-root-group
external.id=00000
7 changes: 7 additions & 0 deletions symmetric-web/src/main/webapp/WEB-INF/jboss-web.xml
@@ -0,0 +1,7 @@
<jboss-web>
<resource-ref>
<res-ref-name>jdbc/SymmetricDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/jdbc/SymmetricDS</jndi-name>
</resource-ref>
</jboss-web>
85 changes: 39 additions & 46 deletions symmetric-web/src/main/webapp/WEB-INF/web.xml
@@ -1,46 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>SymmetricDS</display-name>

<!-- Optionally specify other spring xml files that are loaded in the same context -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:symmetric-plugins.xml</param-value>
</context-param>

<filter>
<filter-name>SymmetricFilter</filter-name>
<filter-class>
org.jumpmind.symmetric.web.SymmetricFilter
</filter-class>
</filter>

<filter-mapping>
<filter-name>SymmetricFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>
org.jumpmind.symmetric.SymmetricEngineContextLoaderListener
</listener-class>
</listener>

<servlet>
<servlet-name>SymmetricServlet</servlet-name>
<servlet-class>
org.jumpmind.symmetric.web.SymmetricServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>SymmetricServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>SymmetricDS</display-name>

<filter>
<filter-name>SymmetricFilter</filter-name>
<filter-class>org.jumpmind.symmetric.web.SymmetricFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>SymmetricFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>org.jumpmind.symmetric.SymmetricEngineContextLoaderListener</listener-class>
</listener>

<servlet>
<servlet-name>SymmetricServlet</servlet-name>
<servlet-class>org.jumpmind.symmetric.web.SymmetricServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>SymmetricServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/SymmetricDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>
12 changes: 12 additions & 0 deletions symmetric-web/src/shortcuts/Symmetric Web Eclipse.launch
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ui.externaltools.ProgramLaunchConfigurationType">
<stringAttribute key="bad_container_name" value="\symmetric-we\src\shortcuts"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/symmetric&quot; type=&quot;4&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
</listAttribute>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${system_path:/mvn.bat}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dmaven.test.skip=true eclipse:clean eclipse:eclipse"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${workspace_loc:/symmetric-web}"/>
</launchConfiguration>
Expand Up @@ -181,6 +181,18 @@ private void registerEngine() {
registeredEnginesByUrl.put(parameterService.getMyUrl(), this);
registeredEnginesByName.put(getEngineName(), this);
}

/**
* This is done dynamically because some application servers do not allow the default
* MBeanServer to accessed for security reasons.
*/
private void startDefaultServerJMXExport() {
try {
getApplicationContext().getBean(Constants.DEFAULT_JMX_SERVER_EXPORTER);
} catch (Exception ex) {
logger.warn("Unable to register JMX beans with the default MBeanServer. " + ex.getMessage());
}
}

/**
* Start the jobs if they are configured to be started in symmetric.properties
Expand Down Expand Up @@ -248,6 +260,7 @@ public synchronized void start() {
starting = true;
setup();
registerEngine();
startDefaultServerJMXExport();
Node node = nodeService.findIdentity();
if (node != null) {
logger.info("Starting registered node [group=" + node.getNodeGroupId() + ", id="
Expand Down
Expand Up @@ -123,6 +123,6 @@ public class Constants {

public static final String MAX_CONCURRENT_WORKERS = "maxConcurrentWorkers";

public static final String LEGACY_JMX = "legacyExporter";
public static final String DEFAULT_JMX_SERVER_EXPORTER = "defaultServerExporter";

}
Expand Up @@ -43,7 +43,7 @@ public class UpgradeService extends AbstractService implements IUpgradeService {
public boolean isUpgradeNecessary() {
boolean isUpgradeNecessary = false;
Node node = nodeService.findIdentity();
if (node != null) {
if (node != null && !node.getSymmetricVersion().equals("development")) {
if (Version.isOlderMinorVersion(node.getSymmetricVersion())) {
isUpgradeNecessary = true;
}
Expand Down
9 changes: 7 additions & 2 deletions symmetric/src/main/resources/symmetric-jmx.xml
Expand Up @@ -7,7 +7,7 @@
<property name="defaultDomain" value="org.jumpmind.symmetric.${engine.name}" />
</bean>

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<bean id="domainServerExporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="server" ref="mbeanserver" />
<property name="assembler" ref="assembler" />
<property name="beans">
Expand All @@ -21,11 +21,16 @@
<property name="registrationBehaviorName" value="REGISTRATION_IGNORE_EXISTING" />
</bean>

<bean id="legacyExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="true">
<bean id="defaultServerExporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="true">
<property name="assembler" ref="assembler" />
<property name="beans">
<map>
<entry key="Symmetric:name=${engine.name}" value-ref="managementService" />
<entry key="org.jumpmind.symmetric.${engine.name}:name=Node" value-ref="nodeManagementService" />
<entry key="org.jumpmind.symmetric.${engine.name}:name=Incoming" value-ref="incomingManagementService" />
<entry key="org.jumpmind.symmetric.${engine.name}:name=Outgoing" value-ref="outgoingManagementService" />
<entry key="org.jumpmind.symmetric.${engine.name}:name=Parameters" value-ref="parameterManagementService" />

</map>
</property>
<property name="registrationBehaviorName" value="REGISTRATION_IGNORE_EXISTING" />
Expand Down
10 changes: 5 additions & 5 deletions symmetric/src/test/resources/test-continuous-setup.sql
Expand Up @@ -7,11 +7,11 @@ insert into sym_node_group values ('test-node-group','a test config');
insert into sym_node_group_link values ('test-root-group','test-root-group', 'P');
insert into sym_node_group_link values ('test-node-group','test-root-group', 'W');
insert into sym_node_group_link values ('symmetric','test-root-group', 'P');
insert into sym_node values ('00000', 'test-root-group', '00000', 1, 'internal://root', '1', '1.1','MySQL', '5.0', current_timestamp, null);
insert into sym_node values ('1', 'test-node-group', '1', 1, 'internal://root', '1', '1.1','MySQL', '5.0', current_timestamp, null);
insert into sym_node values ('00001', 'test-node-group', '00001', 1, 'http://localhost:8080/sync', '1', '1.1', 'MySQL', '5.0', current_timestamp, null);
insert into sym_node values ('00002', 'test-node-group', '00002', 0, null, null, '1.1', null, null, current_timestamp, null);
insert into sym_node values ('00003', 'test-node-group', '00003', 1, 'http://localhost:8080/', '0', '1.1', 'MySql', '4', current_timestamp, null);
insert into sym_node values ('00000', 'test-root-group', '00000', 1, 'internal://root', '1', '1.4.0-SNAPSHOT','MySQL', '5.0', current_timestamp, null);
insert into sym_node values ('1', 'test-node-group', '1', 1, 'internal://root', '1', '1.4.0-SNAPSHOT','MySQL', '5.0', current_timestamp, null);
insert into sym_node values ('00001', 'test-node-group', '00001', 1, 'http://localhost:8080/sync', '1', '1.4.0-SNAPSHOT', 'MySQL', '5.0', current_timestamp, null);
insert into sym_node values ('00002', 'test-node-group', '00002', 0, null, null, '1.4.0-SNAPSHOT', null, null, current_timestamp, null);
insert into sym_node values ('00003', 'test-node-group', '00003', 1, 'http://localhost:8080/', '0', '1.4.0-SNAPSHOT', 'MySql', '4', current_timestamp, null);
insert into sym_node_security values ('00001', 'secret', 0, {ts '2007-01-01 01:01:01'}, 0, {ts '2007-01-01 01:01:01'});
insert into sym_node_security values ('00002', 'supersecret', 1, null, 0, null);
insert into sym_node_security values ('00003', 'notsecret', 0, {ts '2007-01-01 01:01:01'}, 0, {ts '2007-01-01 01:01:01'});
Expand Down
Expand Up @@ -5,7 +5,7 @@ insert into sym_node_group values ('test-node-group','a test config');
insert into sym_node_group_link values ('test-node-group','test-root-group', 'P');
insert into sym_node_group_link values ('test-root-group','test-node-group', 'W');

insert into sym_node values ('00000', 'test-root-group', '00000', 1, null, null, '1.3.2', null, null, current_timestamp, null);
insert into sym_node values ('00000', 'test-root-group', '00000', 1, null, null, '1.4.0-SNAPSHOT', null, null, current_timestamp, null);
insert into sym_node_identity values ('00000');

insert into sym_trigger
Expand Down

0 comments on commit cb86e35

Please sign in to comment.