Author: indika
Date: Fri Jan 18 00:37:28 2008
New Revision: 12466
Log:
improve JMX support
Modified:
branches/esb/java/1.6/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBusManager.java
branches/esb/java/1.6/esb/java/modules/core/src/main/java/org/wso2/esb/transport/tomcat/StartUpServlet.java
Modified:
branches/esb/java/1.6/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBusManager.java
==============================================================================
---
branches/esb/java/1.6/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBusManager.java
(original)
+++
branches/esb/java/1.6/esb/java/modules/core/src/main/java/org/wso2/esb/ServiceBusManager.java
Fri Jan 18 00:37:28 2008
@@ -59,7 +59,6 @@
import java.lang.management.ManagementFactory;
import java.net.UnknownHostException;
import java.rmi.NoSuchObjectException;
-import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.UnicastRemoteObject;
import java.util.*;
@@ -90,6 +89,7 @@
private String esbHomeLocation;
private JMXConnectorServer jmxConnectorServer;
private java.rmi.registry.Registry rmiRegistry;
+ private boolean hasAlreadyInit = false;
public static ServiceBusManager getInstance() {
if (instance == null) {
@@ -99,25 +99,17 @@
}
private ServiceBusManager() {
- this(ServiceBusConfiguration.getInstance());
- if
(XmlConfigurationFactory.getXmlConfiguration(ServiceBusConstants.ESB_WEB_XML_KEY)
== null) {
- try {
- String serverWebXML =
System.getProperty(ServiceBusConstants.ESB_SERVER_WEB_XML);
- if (serverWebXML == null || "".equals(serverWebXML)) {
- serverWebXML = "conf" + File.separator +
ServiceBusConstants.ESB_SERVER_WEB_XML;
- }
-
XmlConfigurationFactory.init(ServiceBusConstants.ESB_WEB_XML_KEY,
- serverWebXML, ServiceBusConstants.ESB_XML_NAMESPACE);
- } catch (ServerException e) {
- log.error("Error loading server-web.xml", e);
- }
- }
}
public void init() {
- initSystemProperties();
+ initSystemProperties();
+ if (hasAlreadyInit) {
+ return;
+ }
createTempAxisWorkDirectory();
HibernateConfigCache.clearCache();
+ initServiceBusConfiguration();
+ hasAlreadyInit = true;
}
public void start() throws ServiceBusException {
@@ -171,6 +163,22 @@
stopJMXService();
}
+ private void initServiceBusConfiguration() {
+ this.esbConfiguration = ServiceBusConfiguration.getInstance();
+ if
(XmlConfigurationFactory.getXmlConfiguration(ServiceBusConstants.ESB_WEB_XML_KEY)
== null) {
+ try {
+ String serverWebXML =
System.getProperty(ServiceBusConstants.ESB_SERVER_WEB_XML);
+ if (serverWebXML == null || "".equals(serverWebXML)) {
+ serverWebXML = "conf" + File.separator +
ServiceBusConstants.ESB_SERVER_WEB_XML;
+ }
+
XmlConfigurationFactory.init(ServiceBusConstants.ESB_WEB_XML_KEY,
+ serverWebXML, ServiceBusConstants.ESB_XML_NAMESPACE);
+ } catch (ServerException e) {
+ log.error("Error loading server-web.xml", e);
+ }
+ }
+ }
+
private void addShutdownHook() {
shutdownHook = new Thread() {
public void run() {
@@ -195,10 +203,6 @@
return shutdownHook;
}
- public ServiceBusManager(ServiceBusConfiguration esbConfiguration) {
- this.esbConfiguration = esbConfiguration;
- }
-
public ServiceBusConfiguration getEsbConfiguration() {
return esbConfiguration;
}
@@ -535,14 +539,18 @@
int jmxPortInt = Integer.parseInt(jmxPort);
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
- //creating local registry
- try {
- rmiRegistry = LocateRegistry.createRegistry(jmxPortInt);
- } catch (RemoteException e) {
- String msg = "Couldn't create a localregistry(RMI)";
- handleException(msg, e);
+ while (true) {
+ //creating local registry
+ try {
+ rmiRegistry = LocateRegistry.createRegistry(jmxPortInt);
+ break;
+ } catch (Exception ignored) {
+ String msg = "Couldn't create a localregistry(RMI) : port
" + jmxPortInt +
+ " already in use. Trying alternate";
+ log.warn(msg);
+ jmxPortInt++;
+ }
}
-
// Create an RMI connector and start it
try {
String jmxURL = "service:jmx:rmi:///jndi/rmi://" +
Modified:
branches/esb/java/1.6/esb/java/modules/core/src/main/java/org/wso2/esb/transport/tomcat/StartUpServlet.java
==============================================================================
---
branches/esb/java/1.6/esb/java/modules/core/src/main/java/org/wso2/esb/transport/tomcat/StartUpServlet.java
(original)
+++
branches/esb/java/1.6/esb/java/modules/core/src/main/java/org/wso2/esb/transport/tomcat/StartUpServlet.java
Fri Jan 18 00:37:28 2008
@@ -64,7 +64,7 @@
String esbhome = resolveEsbHome(servletConfig);
if (esbhome != null || !"".equals(esbhome)) {
System.setProperty(ServiceBusConstants.ESB_HOME, esbhome);
- ServiceBusManager.getInstance().initSystemProperties();
+ ServiceBusManager.getInstance().init();
try {
URL url = new URL("file:" + esbhome + File.separator
+ ServiceBusConstants.ESB_CONF_DIRECTORY +
"log4j.properties");
_______________________________________________
Esb-java-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/esb-java-dev