You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by gn...@apache.org on 2007/08/10 16:38:14 UTC
svn commit: r564607 [3/12] - in
/incubator/servicemix/trunk/core/servicemix-core/src:
main/java/org/apache/servicemix/ main/java/org/apache/servicemix/jbi/
main/java/org/apache/servicemix/jbi/framework/
main/java/org/apache/servicemix/jbi/framework/sup...
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/XMLStreamHelper.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/XMLStreamHelper.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/XMLStreamHelper.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/XMLStreamHelper.java Fri Aug 10 07:37:46 2007
@@ -24,240 +24,193 @@
import javax.xml.stream.XMLStreamWriter;
/**
- * Utility methods for working with an XMLStreamWriter. Maybe push this back into
- * stax-utils project.
+ * Utility methods for working with an XMLStreamWriter. Maybe push this back
+ * into stax-utils project.
*
* Code borrowed to XFire project.
*
* @version $Revision: 1.16 $
*/
-public class XMLStreamHelper implements XMLStreamConstants {
+public final class XMLStreamHelper implements XMLStreamConstants {
+
+ private XMLStreamHelper() {
+ }
/**
- * Copies the reader to the writer. The start and end document
- * methods must be handled on the writer manually.
+ * Copies the reader to the writer. The start and end document methods must
+ * be handled on the writer manually.
*
- * TODO: if the namespace on the reader has been declared previously
- * to where we are in the stream, this probably won't work.
+ * TODO: if the namespace on the reader has been declared previously to
+ * where we are in the stream, this probably won't work.
*
* @param reader
* @param writer
* @throws XMLStreamException
*/
- public static void copy( XMLStreamReader reader, XMLStreamWriter writer )
- throws XMLStreamException
- {
+ public static void copy(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
int read = 0; // number of elements read in
int event = reader.getEventType();
-
- while ( reader.hasNext() )
- {
- switch( event )
- {
- case XMLStreamConstants.START_ELEMENT:
- read++;
- writeStartElement( reader, writer );
- break;
- case XMLStreamConstants.END_ELEMENT:
- writer.writeEndElement();
- read--;
- if ( read <= 0 )
- return;
- break;
- case XMLStreamConstants.CHARACTERS:
- writer.writeCharacters( reader.getText() );
- break;
- case XMLStreamConstants.START_DOCUMENT:
- case XMLStreamConstants.END_DOCUMENT:
- case XMLStreamConstants.ATTRIBUTE:
- case XMLStreamConstants.NAMESPACE:
- break;
- default:
- break;
+
+ while (reader.hasNext()) {
+ switch (event) {
+ case XMLStreamConstants.START_ELEMENT:
+ read++;
+ writeStartElement(reader, writer);
+ break;
+ case XMLStreamConstants.END_ELEMENT:
+ writer.writeEndElement();
+ read--;
+ if (read <= 0) {
+ return;
+ }
+ break;
+ case XMLStreamConstants.CHARACTERS:
+ writer.writeCharacters(reader.getText());
+ break;
+ case XMLStreamConstants.START_DOCUMENT:
+ case XMLStreamConstants.END_DOCUMENT:
+ case XMLStreamConstants.ATTRIBUTE:
+ case XMLStreamConstants.NAMESPACE:
+ break;
+ default:
+ break;
}
event = reader.next();
}
}
- private static void writeStartElement(XMLStreamReader reader, XMLStreamWriter writer)
- throws XMLStreamException
- {
+ private static void writeStartElement(XMLStreamReader reader, XMLStreamWriter writer) throws XMLStreamException {
String local = reader.getLocalName();
String uri = reader.getNamespaceURI();
String prefix = reader.getPrefix();
- if (prefix == null)
- {
+ if (prefix == null) {
prefix = "";
}
- if (uri == null)
- {
+ if (uri == null) {
uri = "";
}
-
+
String boundPrefix = writer.getPrefix(uri);
boolean writeElementNS = false;
- if ( boundPrefix == null || !prefix.equals(boundPrefix) )
- {
+ if (boundPrefix == null || !prefix.equals(boundPrefix)) {
writeElementNS = true;
}
-
+
// Write out the element name
- if (uri != null)
- {
- if (prefix.length() == 0)
- {
-
+ if (uri != null) {
+ if (prefix.length() == 0) {
+
writer.writeStartElement(local);
- writer.setDefaultNamespace(uri);
-
- }
- else
- {
- writer.writeStartElement(prefix, local, uri);
- writer.setPrefix(prefix, uri);
- }
- }
- else
- {
- writer.writeStartElement( local );
+ writer.setDefaultNamespace(uri);
+
+ } else {
+ writer.writeStartElement(prefix, local, uri);
+ writer.setPrefix(prefix, uri);
+ }
+ } else {
+ writer.writeStartElement(local);
}
// Write out the namespaces
- for ( int i = 0; i < reader.getNamespaceCount(); i++ )
- {
+ for (int i = 0; i < reader.getNamespaceCount(); i++) {
String nsURI = reader.getNamespaceURI(i);
String nsPrefix = reader.getNamespacePrefix(i);
- if (nsPrefix == null) nsPrefix = "";
-
- if ( nsPrefix.length() == 0 )
- {
- writer.writeDefaultNamespace(nsURI);
+ if (nsPrefix == null) {
+ nsPrefix = "";
}
- else
- {
+
+ if (nsPrefix.length() == 0) {
+ writer.writeDefaultNamespace(nsURI);
+ } else {
writer.writeNamespace(nsPrefix, nsURI);
}
- if (nsURI.equals(uri) && nsPrefix.equals(prefix))
- {
+ if (nsURI.equals(uri) && nsPrefix.equals(prefix)) {
writeElementNS = false;
}
}
-
+
// Check if the namespace still needs to be written.
- // We need this check because namespace writing works
+ // We need this check because namespace writing works
// different on Woodstox and the RI.
- if (writeElementNS)
- {
- if ( prefix == null || prefix.length() == 0 )
- {
+ if (writeElementNS) {
+ if (prefix == null || prefix.length() == 0) {
writer.writeDefaultNamespace(uri);
- }
- else
- {
+ } else {
writer.writeNamespace(prefix, uri);
}
}
// Write out attributes
- for ( int i = 0; i < reader.getAttributeCount(); i++ )
- {
+ for (int i = 0; i < reader.getAttributeCount(); i++) {
String ns = reader.getAttributeNamespace(i);
String nsPrefix = reader.getAttributePrefix(i);
- if ( ns == null || ns.length() == 0 )
- {
- writer.writeAttribute(
- reader.getAttributeLocalName(i),
- reader.getAttributeValue(i));
- }
- else if (nsPrefix == null || nsPrefix.length() == 0)
- {
- writer.writeAttribute(
- reader.getAttributeNamespace(i),
- reader.getAttributeLocalName(i),
- reader.getAttributeValue(i));
- }
- else
- {
- writer.writeAttribute(reader.getAttributePrefix(i),
- reader.getAttributeNamespace(i),
- reader.getAttributeLocalName(i),
- reader.getAttributeValue(i));
+ if (ns == null || ns.length() == 0) {
+ writer.writeAttribute(reader.getAttributeLocalName(i), reader.getAttributeValue(i));
+ } else if (nsPrefix == null || nsPrefix.length() == 0) {
+ writer.writeAttribute(reader.getAttributeNamespace(i), reader.getAttributeLocalName(i), reader.getAttributeValue(i));
+ } else {
+ writer.writeAttribute(reader.getAttributePrefix(i), reader.getAttributeNamespace(i), reader.getAttributeLocalName(i),
+ reader.getAttributeValue(i));
}
-
-
+
}
}
-
+
/**
* Write a start element with the specified parameters
+ *
* @param writer
* @param uri
* @param local
* @param prefix
* @throws XMLStreamException
*/
- public static void writeStartElement( XMLStreamWriter writer, String uri, String local, String prefix )
- throws XMLStreamException
- {
- if (prefix == null)
- {
+ public static void writeStartElement(XMLStreamWriter writer, String uri, String local, String prefix) throws XMLStreamException {
+ if (prefix == null) {
prefix = "";
}
- if (uri == null)
- {
+ if (uri == null) {
uri = "";
}
-
+
String boundPrefix = writer.getPrefix(uri);
boolean writeElementNS = false;
- if ( boundPrefix == null || !prefix.equals(boundPrefix) )
- {
+ if (boundPrefix == null || !prefix.equals(boundPrefix)) {
writeElementNS = true;
}
-
+
// Write out the element name
- if (uri != null)
- {
- if (prefix.length() == 0)
- {
-
+ if (uri != null) {
+ if (prefix.length() == 0) {
+
writer.writeStartElement(local);
- writer.setDefaultNamespace(uri);
-
- }
- else
- {
- writer.writeStartElement(prefix, local, uri);
- writer.setPrefix(prefix, uri);
- }
- }
- else
- {
- writer.writeStartElement( local );
+ writer.setDefaultNamespace(uri);
+
+ } else {
+ writer.writeStartElement(prefix, local, uri);
+ writer.setPrefix(prefix, uri);
+ }
+ } else {
+ writer.writeStartElement(local);
}
// Check if the namespace still needs to be written.
- // We need this check because namespace writing works
+ // We need this check because namespace writing works
// different on Woodstox and the RI.
- if (writeElementNS)
- {
- if ( prefix.length() == 0 )
- {
+ if (writeElementNS) {
+ if (prefix.length() == 0) {
writer.writeDefaultNamespace(uri);
- }
- else
- {
+ } else {
writer.writeNamespace(prefix, uri);
}
}
}
/**
- * Write a start element with the given QName.
- * However, if a namespace has already been bound to a prefix,
- * use the existing one, else default to the prefix
- * in the QName (if specified). Else, a prefix is generated.
+ * Write a start element with the given QName. However, if a namespace has
+ * already been bound to a prefix, use the existing one, else default to the
+ * prefix in the QName (if specified). Else, a prefix is generated.
*
* @param writer
* @param name
@@ -282,7 +235,7 @@
out.writeCharacters(prefix + ":" + name.getLocalPart());
}
}
-
+
protected static String choosePrefix(XMLStreamWriter out, QName name, boolean declare) throws XMLStreamException {
String uri = name.getNamespaceURI();
// If no namespace
@@ -291,7 +244,7 @@
out.setPrefix(XMLConstants.DEFAULT_NS_PREFIX, XMLConstants.NULL_NS_URI);
}
return XMLConstants.DEFAULT_NS_PREFIX;
- // Need to write a prefix
+ // Need to write a prefix
} else {
String defPrefix = name.getPrefix();
// A prefix is specified
@@ -301,26 +254,26 @@
// if there is a prefix bound to the uri, use it
if (out.getNamespaceContext().getPrefix(uri) != null) {
defPrefix = out.getNamespaceContext().getPrefix(uri);
- // get prefix from the writer
+ // get prefix from the writer
} else if (out.getPrefix(uri) != null) {
defPrefix = out.getPrefix(uri);
- // we need to bind the prefix
+ // we need to bind the prefix
} else if (declare) {
out.setPrefix(defPrefix, uri);
out.writeNamespace(defPrefix, uri);
}
}
- // No prefix specified
+ // No prefix specified
} else {
// if there is a prefix bound to the uri, use it
if (out.getNamespaceContext().getPrefix(uri) != null) {
defPrefix = out.getNamespaceContext().getPrefix(uri);
- // get prefix from the writer
+ // get prefix from the writer
} else if (out.getPrefix(uri) != null) {
defPrefix = out.getPrefix(uri);
- // we need to generate a prefix
+ // we need to generate a prefix
} else {
- defPrefix = getUniquePrefix(out);
+ defPrefix = getUniquePrefix(out);
if (declare) {
out.setPrefix(defPrefix, uri);
out.writeNamespace(defPrefix, uri);
@@ -330,7 +283,7 @@
return defPrefix;
}
}
-
+
protected static String getUniquePrefix(XMLStreamWriter writer) {
int n = 1;
while (true) {
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/ConnectorServerFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/ConnectorServerFactoryBean.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/ConnectorServerFactoryBean.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/ConnectorServerFactoryBean.java Fri Aug 10 07:37:46 2007
@@ -64,17 +64,18 @@
*/
public static final int REGISTRATION_REPLACE_EXISTING = 2;
+ private static final Constants CONSTANTS = new Constants(ConnectorServerFactoryBean.class);
private Log log = LogFactory.getLog(ConnectorServerFactoryBean.class);
- private org.springframework.jmx.support.ConnectorServerFactoryBean csfb = new org.springframework.jmx.support.ConnectorServerFactoryBean();
+ private org.springframework.jmx.support.ConnectorServerFactoryBean csfb =
+ new org.springframework.jmx.support.ConnectorServerFactoryBean();
private String serviceUrl = org.springframework.jmx.support.ConnectorServerFactoryBean.DEFAULT_SERVICE_URL;
- private boolean daemon = false;
- private boolean threaded = false;
+ private boolean daemon;
+ private boolean threaded;
private Map environment;
private Object objectName;
private int registrationBehavior = REGISTRATION_FAIL_ON_EXISTING;
private MBeanServer server;
- private static final Constants constants = new Constants(ConnectorServerFactoryBean.class);
/**
@@ -141,11 +142,11 @@
* @see #REGISTRATION_FAIL_ON_EXISTING
* @see #REGISTRATION_IGNORE_EXISTING
* @see #REGISTRATION_REPLACE_EXISTING
- * @param registrationBehavior
+ * @param behavior
* @see org.springframework.jmx.support.MBeanRegistrationSupport#setRegistrationBehaviorName(java.lang.String)
*/
- public void setRegistrationBehaviorName(String registrationBehavior) {
- setRegistrationBehavior(constants.asNumber(registrationBehavior).intValue());
+ public void setRegistrationBehaviorName(String behavior) {
+ setRegistrationBehavior(CONSTANTS.asNumber(behavior).intValue());
}
/**
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/JaasAuthenticator.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/JaasAuthenticator.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/JaasAuthenticator.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/JaasAuthenticator.java Fri Aug 10 07:37:46 2007
@@ -69,8 +69,9 @@
* @see javax.management.remote.JMXAuthenticator#authenticate(java.lang.Object)
*/
public Subject authenticate(Object credentials) throws SecurityException {
- if (credentials instanceof String[] == false) {
- throw new IllegalArgumentException("Expected String[2], got " + (credentials != null ? credentials.getClass().getName() : null));
+ if (!(credentials instanceof String[])) {
+ throw new IllegalArgumentException("Expected String[2], got "
+ + (credentials != null ? credentials.getClass().getName() : null));
}
String[] params = (String[]) credentials;
if (params.length != 2) {
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/PasswordAuthenticator.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/PasswordAuthenticator.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/PasswordAuthenticator.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/PasswordAuthenticator.java Fri Aug 10 07:37:46 2007
@@ -17,11 +17,11 @@
package org.apache.servicemix.jbi.jmx;
/*
- * Copyright (C) The MX4J Contributors.
- * All rights reserved.
- *
+ * Copyright (C) The MX4J Contributors. All rights reserved.
+ *
* This software is distributed under the terms of the MX4J License version 1.0.
- * See the terms of the MX4J License in the documentation provided with this software.
+ * See the terms of the MX4J License in the documentation provided with this
+ * software.
*/
import java.io.File;
@@ -43,233 +43,221 @@
import mx4j.util.Base64Codec;
/**
- * Implementation of the JMXAuthenticator interface to be used on server side
- * to secure access to {@link javax.management.remote.JMXConnectorServer JMXConnectorServer}s. <br/>
- * Usage:
+ * Implementation of the JMXAuthenticator interface to be used on server side to
+ * secure access to
+ * {@link javax.management.remote.JMXConnectorServer JMXConnectorServer}s.
+ * <br/> Usage:
+ *
* <pre>
- * JMXAuthenticator authenticator = new PasswordAuthenticator(new File("users.properties"));
+ * JMXAuthenticator authenticator = new PasswordAuthenticator(new File("users.properties"));
* Map environment = new HashMap();
* environment.put(JMXConnectorServer.AUTHENTICATOR, authenticator);
- * JMXServiceURL address = new JMXServiceURL("rmi", "localhost", 0);
+ * JMXServiceURL address = new JMXServiceURL("rmi", "localhost", 0);
* MBeanServer server = ...;
* JMXConnectorServer cntorServer = JMXConnectorServerFactory.newJMXConnectorServer(address, environment, server);
* </pre>
- * The format of the users.properties file is that of a standard properties file: <br/>
- * <user>=<password><br/>
- * where <password> can be stored in 2 ways:
+ *
+ * The format of the users.properties file is that of a standard properties
+ * file: <br/> <user>=<password><br/> where <password> can be
+ * stored in 2 ways:
* <ul>
* <li>Clear text: the password is written in clear text</li>
* <li>Obfuscated text: the password is obfuscated</li>
* </ul>
* The obfuscated form can be obtained running this class as a main class:
+ *
* <pre>
* java -cp mx4j-remote.jar mx4j.tools.remote.PasswordAuthenticator
* </pre>
- * and following the instructions printed on the console. The output will be a string that should be
- * copy/pasted as the password into the properties file.<br/>
- * The obfuscated password is obtained by digesting the clear text password using a
- * {@link java.security.MessageDigest} algorithm, and then by Base64-encoding the resulting bytes.<br/>
- * <br/>
- * On client side, you are allowed to connect to a server side secured with the PasswordAuthenticator
+ *
+ * and following the instructions printed on the console. The output will be a
+ * string that should be copy/pasted as the password into the properties file.<br/>
+ * The obfuscated password is obtained by digesting the clear text password
+ * using a {@link java.security.MessageDigest} algorithm, and then by
+ * Base64-encoding the resulting bytes.<br/> <br/> On client side, you are
+ * allowed to connect to a server side secured with the PasswordAuthenticator
* only if you provide the correct credentials:
+ *
* <pre>
* String[] credentials = new String[2];
* // The user will travel as clear text
- * credentials[0] = "user";
+ * credentials[0] = "user";
* // You may send the password in clear text, but it's better to obfuscate it
- * credentials[1] = PasswordAuthenticator.obfuscatePassword("password");
+ * credentials[1] = PasswordAuthenticator.obfuscatePassword("password");
* Map environment = new HashMap();
* environment.put(JMXConnector.CREDENTIALS, credentials);
* JMXServiceURL address = ...;
* JMXConnector cntor = JMXConnectorFactory.connect(address, environment);
* </pre>
- * Note that {@link #obfuscatePassword(java.lang.String,java.lang.String) obfuscating} the passwords only works if the server side has been
- * setup with the PasswordAuthenticator.
- * However, the PasswordAuthenticator can be used with other JSR 160 implementations, such as Sun's reference
- * implementation.
- *
+ *
+ * Note that
+ * {@link #obfuscatePassword(java.lang.String,java.lang.String) obfuscating} the
+ * passwords only works if the server side has been setup with the
+ * PasswordAuthenticator. However, the PasswordAuthenticator can be used with
+ * other JSR 160 implementations, such as Sun's reference implementation.
+ *
* @version $Revision: 1.3 $
*/
-public class PasswordAuthenticator implements JMXAuthenticator
-{
- private static final String LEFT_DELIMITER = "OBF(";
- private static final String RIGHT_DELIMITER = "):";
-
- /**
- * Runs this class as main class to obfuscate passwords.
- * When no arguments are provided, it prints out the usage.
- *
- * @see #obfuscatePassword(java.lang.String,java.lang.String)
- */
- public static void main(String[] args) throws Exception
- {
- if (args.length == 1)
- {
- if (!"-help".equals(args[0]))
- {
- printPassword("MD5", args[0]);
- return;
- }
- }
- else if (args.length == 3)
- {
- if ("-alg".equals(args[0]))
- {
- printPassword(args[1], args[2]);
- return;
- }
- }
- printUsage();
- }
-
- private static void printPassword(String algorithm, String input)
- {
- String password = obfuscatePassword(input, algorithm);
- System.out.println(password);
- }
-
- private static void printUsage()
- {
- System.out.println();
- System.out.println("Usage: java -cp <lib>/mx4j-tools.jar mx4j.tools.remote.PasswordAuthenticator <options> <password>");
- System.out.println("Where <options> is one of the following:");
- System.out.println(" -help Prints this message");
- System.out.println(" -alg <digest algorithm> Specifies the digest algorithm (default is MD5)");
- System.out.println();
- }
-
- /**
- * Obfuscates the given password using MD5 as digest algorithm
- *
- * @see #obfuscatePassword(java.lang.String,java.lang.String)
- */
- public static String obfuscatePassword(String password)
- {
- return obfuscatePassword(password, "MD5");
- }
-
- /**
- * Obfuscates the given password using the given digest algorithm.<br/>
- * Obfuscation consists of 2 steps: first the clear text password is {@link java.security.MessageDigest#digest digested}
- * using the specified algorithm, then the resulting bytes are Base64-encoded.<br/>
- * For example, the obfuscated version of the password "password" is "OBF(MD5):X03MO1qnZdYdgyfeuILPmQ=="
- * or "OBF(SHA-1):W6ph5Mm5Pz8GgiULbPgzG37mj9g=". <br/>
- * OBF stands for "obfuscated", in parenthesis the algorithm used to digest the password.
- */
- public static String obfuscatePassword(String password, String algorithm)
- {
- try
- {
- MessageDigest digest = MessageDigest.getInstance(algorithm);
- byte[] digestedBytes = digest.digest(password.getBytes());
- byte[] obfuscatedBytes = Base64Codec.encodeBase64(digestedBytes);
- return LEFT_DELIMITER + algorithm + RIGHT_DELIMITER + new String(obfuscatedBytes);
- }
- catch (NoSuchAlgorithmException x)
- {
- throw new SecurityException("Could not find digest algorithm " + algorithm);
- }
- }
-
- private Map passwords;
-
- /**
- * Creates a new PasswordAuthenticator that reads user/password pairs from the specified properties file.
- * The file format is described in the javadoc of this class.
- *
- * @see #obfuscatePassword
- */
- public PasswordAuthenticator(File passwordFile) throws IOException
- {
- this(new FileInputStream(passwordFile));
- }
-
- /**
- * Creates a new PasswordAuthenticator that reads user/password pairs from the specified InputStream.
- * The file format is described in the javadoc of this class.
- *
- * @see #obfuscatePassword
- */
- public PasswordAuthenticator(InputStream is) throws IOException
- {
- passwords = readPasswords(is);
- }
-
- private Map readPasswords(InputStream is) throws IOException
- {
- Properties properties = new Properties();
- try
- {
- properties.load(is);
- }
- finally
- {
- is.close();
- }
- return new HashMap(properties);
- }
-
- public Subject authenticate(Object credentials) throws SecurityException
- {
- if (!(credentials instanceof String[])) throw new SecurityException("Bad credentials");
- String[] creds = (String[])credentials;
- if (creds.length != 2) throw new SecurityException("Bad credentials");
-
- String user = creds[0];
- String password = creds[1];
-
- if (password == null) throw new SecurityException("Bad password");
-
- if (!passwords.containsKey(user)) throw new SecurityException("Unknown user " + user);
-
- String storedPassword = (String)passwords.get(user);
- if (!isPasswordCorrect(password, storedPassword)) throw new SecurityException("Bad password");
-
- Set principals = new HashSet();
- principals.add(new JMXPrincipal(user));
- return new Subject(true, principals, Collections.EMPTY_SET, Collections.EMPTY_SET);
- }
-
- private boolean isPasswordCorrect(String password, String storedPassword)
- {
- if (password.startsWith(LEFT_DELIMITER))
- {
- if (storedPassword.startsWith(LEFT_DELIMITER))
- {
- return password.equals(storedPassword);
- }
- else
- {
- String algorithm = getAlgorithm(password);
- String obfuscated = obfuscatePassword(storedPassword, algorithm);
- return password.equals(obfuscated);
- }
- }
- else
- {
- if (storedPassword.startsWith(LEFT_DELIMITER))
- {
- // Password was sent in clear, bad practice
- String algorithm = getAlgorithm(storedPassword);
- String obfuscated = obfuscatePassword(password, algorithm);
- return obfuscated.equals(storedPassword);
- }
- else
- {
- return password.equals(storedPassword);
- }
- }
- }
-
- private String getAlgorithm(String obfuscatedPassword)
- {
- try
- {
- return obfuscatedPassword.substring(LEFT_DELIMITER.length(), obfuscatedPassword.indexOf(RIGHT_DELIMITER));
- }
- catch (IndexOutOfBoundsException x)
- {
- throw new SecurityException("Bad password");
- }
- }
+public class PasswordAuthenticator implements JMXAuthenticator {
+
+ private static final String LEFT_DELIMITER = "OBF(";
+ private static final String RIGHT_DELIMITER = "):";
+
+ private Map passwords;
+
+ /**
+ * Creates a new PasswordAuthenticator that reads user/password pairs from
+ * the specified properties file. The file format is described in the
+ * javadoc of this class.
+ *
+ * @see #obfuscatePassword
+ */
+ public PasswordAuthenticator(File passwordFile) throws IOException {
+ this(new FileInputStream(passwordFile));
+ }
+
+ /**
+ * Creates a new PasswordAuthenticator that reads user/password pairs from
+ * the specified InputStream. The file format is described in the javadoc of
+ * this class.
+ *
+ * @see #obfuscatePassword
+ */
+ public PasswordAuthenticator(InputStream is) throws IOException {
+ passwords = readPasswords(is);
+ }
+
+ /**
+ * Runs this class as main class to obfuscate passwords. When no arguments
+ * are provided, it prints out the usage.
+ *
+ * @see #obfuscatePassword(java.lang.String,java.lang.String)
+ */
+ public static void main(String[] args) throws Exception {
+ if (args.length == 1) {
+ if (!"-help".equals(args[0])) {
+ printPassword("MD5", args[0]);
+ return;
+ }
+ } else if (args.length == 3) {
+ if ("-alg".equals(args[0])) {
+ printPassword(args[1], args[2]);
+ return;
+ }
+ }
+ printUsage();
+ }
+
+ private static void printPassword(String algorithm, String input) {
+ String password = obfuscatePassword(input, algorithm);
+ System.out.println(password);
+ }
+
+ private static void printUsage() {
+ System.out.println();
+ System.out.println("Usage: java -cp <lib>/mx4j-tools.jar mx4j.tools.remote.PasswordAuthenticator <options> <password>");
+ System.out.println("Where <options> is one of the following:");
+ System.out.println(" -help Prints this message");
+ System.out.println(" -alg <digest algorithm> Specifies the digest algorithm (default is MD5)");
+ System.out.println();
+ }
+
+ /**
+ * Obfuscates the given password using MD5 as digest algorithm
+ *
+ * @see #obfuscatePassword(java.lang.String,java.lang.String)
+ */
+ public static String obfuscatePassword(String password) {
+ return obfuscatePassword(password, "MD5");
+ }
+
+ /**
+ * Obfuscates the given password using the given digest algorithm.<br/>
+ * Obfuscation consists of 2 steps: first the clear text password is
+ * {@link java.security.MessageDigest#digest digested} using the specified
+ * algorithm, then the resulting bytes are Base64-encoded.<br/> For
+ * example, the obfuscated version of the password "password" is
+ * "OBF(MD5):X03MO1qnZdYdgyfeuILPmQ==" or
+ * "OBF(SHA-1):W6ph5Mm5Pz8GgiULbPgzG37mj9g=". <br/> OBF stands for
+ * "obfuscated", in parenthesis the algorithm used to digest the password.
+ */
+ public static String obfuscatePassword(String password, String algorithm) {
+ try {
+ MessageDigest digest = MessageDigest.getInstance(algorithm);
+ byte[] digestedBytes = digest.digest(password.getBytes());
+ byte[] obfuscatedBytes = Base64Codec.encodeBase64(digestedBytes);
+ return LEFT_DELIMITER + algorithm + RIGHT_DELIMITER + new String(obfuscatedBytes);
+ } catch (NoSuchAlgorithmException x) {
+ throw new SecurityException("Could not find digest algorithm " + algorithm);
+ }
+ }
+
+ private Map readPasswords(InputStream is) throws IOException {
+ Properties properties = new Properties();
+ try {
+ properties.load(is);
+ } finally {
+ is.close();
+ }
+ return new HashMap(properties);
+ }
+
+ public Subject authenticate(Object credentials) throws SecurityException {
+ if (!(credentials instanceof String[])) {
+ throw new SecurityException("Bad credentials");
+ }
+ String[] creds = (String[]) credentials;
+ if (creds.length != 2) {
+ throw new SecurityException("Bad credentials");
+ }
+
+ String user = creds[0];
+ String password = creds[1];
+
+ if (password == null) {
+ throw new SecurityException("Bad password");
+ }
+
+ if (!passwords.containsKey(user)) {
+ throw new SecurityException("Unknown user " + user);
+ }
+
+ String storedPassword = (String) passwords.get(user);
+ if (!isPasswordCorrect(password, storedPassword)) {
+ throw new SecurityException("Bad password");
+ }
+
+ Set principals = new HashSet();
+ principals.add(new JMXPrincipal(user));
+ return new Subject(true, principals, Collections.EMPTY_SET, Collections.EMPTY_SET);
+ }
+
+ private boolean isPasswordCorrect(String password, String storedPassword) {
+ if (password.startsWith(LEFT_DELIMITER)) {
+ if (storedPassword.startsWith(LEFT_DELIMITER)) {
+ return password.equals(storedPassword);
+ } else {
+ String algorithm = getAlgorithm(password);
+ String obfuscated = obfuscatePassword(storedPassword, algorithm);
+ return password.equals(obfuscated);
+ }
+ } else {
+ if (storedPassword.startsWith(LEFT_DELIMITER)) {
+ // Password was sent in clear, bad practice
+ String algorithm = getAlgorithm(storedPassword);
+ String obfuscated = obfuscatePassword(password, algorithm);
+ return obfuscated.equals(storedPassword);
+ } else {
+ return password.equals(storedPassword);
+ }
+ }
+ }
+
+ private String getAlgorithm(String obfuscatedPassword) {
+ try {
+ return obfuscatedPassword.substring(LEFT_DELIMITER.length(), obfuscatedPassword.indexOf(RIGHT_DELIMITER));
+ } catch (IndexOutOfBoundsException x) {
+ throw new SecurityException("Bad password");
+ }
+ }
}
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/RmiRegistryFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/RmiRegistryFactoryBean.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/RmiRegistryFactoryBean.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jmx/RmiRegistryFactoryBean.java Fri Aug 10 07:37:46 2007
@@ -30,13 +30,13 @@
* @author gnodet
* @org.apache.xbean.XBean element="rmiRegistry"
*/
-public class RmiRegistryFactoryBean implements FactoryBean, InitializingBean, DisposableBean{
+public class RmiRegistryFactoryBean implements FactoryBean, InitializingBean, DisposableBean {
private int port = Registry.REGISTRY_PORT;
private Registry registry;
- private boolean locate = false;
+ private boolean locate;
private boolean create = true;
- private boolean locallyCreated = false;
+ private boolean locallyCreated;
/**
* @return the create
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogService.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogService.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogService.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogService.java Fri Aug 10 07:37:46 2007
@@ -16,19 +16,20 @@
*/
package org.apache.servicemix.jbi.logging;
-import org.apache.servicemix.jbi.management.BaseSystemService;
-import org.apache.servicemix.jbi.management.OperationInfoHelper;
-import org.apache.servicemix.jbi.management.AttributeInfoHelper;
-import org.apache.servicemix.jbi.container.JBIContainer;
-import org.apache.log4j.Logger;
-import org.springframework.beans.factory.InitializingBean;
+import java.net.URL;
+import java.util.Timer;
import javax.jbi.JBIException;
-import javax.management.MBeanOperationInfo;
import javax.management.JMException;
import javax.management.MBeanAttributeInfo;
-import java.util.Timer;
-import java.net.URL;
+import javax.management.MBeanOperationInfo;
+
+import org.apache.log4j.Logger;
+import org.apache.servicemix.jbi.container.JBIContainer;
+import org.apache.servicemix.jbi.management.AttributeInfoHelper;
+import org.apache.servicemix.jbi.management.BaseSystemService;
+import org.apache.servicemix.jbi.management.OperationInfoHelper;
+import org.springframework.beans.factory.InitializingBean;
/**
*
@@ -38,19 +39,24 @@
*/
public class LogService extends BaseSystemService implements InitializingBean, LogServiceMBean {
- private static String DEFAULT_LOG_FILE_NAME = "log4j.xml";
-
+ private static final String DEFAULT_LOG_FILE_NAME = "log4j.xml";
+
+ private static final Logger LOG = Logger.getLogger(LogService.class);
+
private boolean autoStart = true;
- private boolean initialized = false;
+
+ private boolean initialized;
+
private int refreshPeriod = 60; // 60sec
- private URL configFileUrl = null;
+
+ private URL configFileUrl;
+
private String configUrl = "file:conf/log4j.xml";
- private LogTask logTask = null;
- // timer in daemon mode
- private Timer timer = null;
+ private LogTask logTask;
- private static Logger logger = Logger.getLogger(LogService.class);
+ // timer in daemon mode
+ private Timer timer;
public void afterPropertiesSet() throws Exception {
if (this.container == null) {
@@ -87,7 +93,7 @@
start();
}
} catch (JBIException ex) {
- logger.error("Error occured!", ex);
+ LOG.error("Error occured!", ex);
}
}
@@ -113,7 +119,7 @@
start();
}
} catch (JBIException ex) {
- logger.error("Error occured!", ex);
+ LOG.error("Error occured!", ex);
}
}
@@ -134,8 +140,8 @@
* reconfigure the log4j system if something has changed in the config file
*/
public void reconfigureLogSystem() {
- if (logger.isDebugEnabled()) {
- logger.debug("try to reconfigure the log4j system");
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("try to reconfigure the log4j system");
}
if (logTask != null) {
logTask.reconfigure();
@@ -147,7 +153,7 @@
}
public void start() throws JBIException {
- setup();
+ setUp();
super.start();
}
@@ -164,51 +170,46 @@
super.stop();
}
- public void setup() throws JBIException {
+ public void setUp() throws JBIException {
if (!initialized) {
- configFileUrl = locateLoggingConfig();
+ configFileUrl = locateLoggingConfig();
if (configFileUrl != null) {
// daemon mode
timer = new Timer(true);
logTask = new LogTask(configFileUrl);
logTask.run();
- timer.schedule(logTask, 1000 * refreshPeriod,
- 1000 * refreshPeriod);
+ timer.schedule(logTask, 1000 * refreshPeriod, 1000 * refreshPeriod);
initialized = true;
}
}
}
- /**
- * Grab the log4j.xml from the CLASSPATH
+ /**
+ * Grab the log4j.xml from the CLASSPATH
*
- * @return URL of the log4j.xml file
+ * @return URL of the log4j.xml file
*/
private URL locateLoggingConfig() {
- URL log4jConfigUrl = ClassLoader.getSystemResource(DEFAULT_LOG_FILE_NAME);
-
- if (logger.isDebugEnabled())
- logger.debug("Located logging configuration: " + log4jConfigUrl.toString());
-
- return log4jConfigUrl;
- }
+ URL log4jConfigUrl = ClassLoader.getSystemResource(DEFAULT_LOG_FILE_NAME);
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Located logging configuration: " + log4jConfigUrl.toString());
+ }
+
+ return log4jConfigUrl;
+ }
- public MBeanOperationInfo[] getOperationInfos() throws JMException {
+ public MBeanOperationInfo[] getOperationInfos() throws JMException {
OperationInfoHelper helper = new OperationInfoHelper();
- helper.addOperation(getObjectToManage(), "reconfigureLogSystem", 0,
- "Reconfigure the log4j system");
- return OperationInfoHelper.join(super.getOperationInfos(), helper
- .getOperationInfos());
+ helper.addOperation(getObjectToManage(), "reconfigureLogSystem", 0, "Reconfigure the log4j system");
+ return OperationInfoHelper.join(super.getOperationInfos(), helper.getOperationInfos());
}
public MBeanAttributeInfo[] getAttributeInfos() throws JMException {
AttributeInfoHelper helper = new AttributeInfoHelper();
- helper.addAttribute(getObjectToManage(), "configUrl",
- "the url for the log4j.xml config file");
- helper.addAttribute(getObjectToManage(), "refreshPeriod",
- "schedule time for scanning the log4j config file");
- return AttributeInfoHelper.join(super.getAttributeInfos(), helper
- .getAttributeInfos());
+ helper.addAttribute(getObjectToManage(), "configUrl", "the url for the log4j.xml config file");
+ helper.addAttribute(getObjectToManage(), "refreshPeriod", "schedule time for scanning the log4j config file");
+ return AttributeInfoHelper.join(super.getAttributeInfos(), helper.getAttributeInfos());
}
}
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogServiceMBean.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogServiceMBean.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogServiceMBean.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogServiceMBean.java Fri Aug 10 07:37:46 2007
@@ -21,13 +21,13 @@
*/
public interface LogServiceMBean {
- public void setRefreshPeriod(int seconds);
+ void setRefreshPeriod(int seconds);
- public int getRefreshPeriod();
+ int getRefreshPeriod();
- public void setConfigUrl(String url);
+ void setConfigUrl(String url);
- public String getConfigUrl();
+ String getConfigUrl();
- public void reconfigureLogSystem();
+ void reconfigureLogSystem();
}
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogTask.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogTask.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogTask.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/logging/LogTask.java Fri Aug 10 07:37:46 2007
@@ -16,12 +16,12 @@
*/
package org.apache.servicemix.jbi.logging;
-import org.apache.log4j.xml.DOMConfigurator;
-import org.apache.log4j.Logger;
-
-import java.util.TimerTask;
import java.net.URL;
import java.net.URLConnection;
+import java.util.TimerTask;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.xml.DOMConfigurator;
public class LogTask extends TimerTask {
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/AttributeInfoHelper.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/AttributeInfoHelper.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/AttributeInfoHelper.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/AttributeInfoHelper.java Fri Aug 10 07:37:46 2007
@@ -16,16 +16,16 @@
*/
package org.apache.servicemix.jbi.management;
-import org.apache.commons.beanutils.PropertyUtilsBean;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.List;
import javax.management.IntrospectionException;
import javax.management.MBeanAttributeInfo;
import javax.management.ReflectionException;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.commons.beanutils.PropertyUtilsBean;
/**
* A Helper class to build a list of MBeanAttributInfos
@@ -34,6 +34,7 @@
*/
public class AttributeInfoHelper {
private PropertyUtilsBean beanUtil = new PropertyUtilsBean();
+
private List<MBeanAttributeInfo> list = new ArrayList<MBeanAttributeInfo>();
/**
@@ -43,7 +44,7 @@
* @param name
* @param description
* @throws ReflectionException
-
+ *
*/
public void addAttribute(Object theObject, String name, String description) throws ReflectionException {
PropertyDescriptor pd;
@@ -51,21 +52,16 @@
pd = beanUtil.getPropertyDescriptor(theObject, name);
MBeanAttributeInfo info = new MBeanAttributeInfo(name, description, pd.getReadMethod(), pd.getWriteMethod());
list.add(info);
- }
- catch(IntrospectionException e){
+ } catch (IntrospectionException e) {
throw new ReflectionException(e);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
throw new ReflectionException(e);
- }
- catch (InvocationTargetException e) {
+ } catch (InvocationTargetException e) {
throw new ReflectionException(e);
- }
- catch (NoSuchMethodException e) {
+ } catch (NoSuchMethodException e) {
throw new ReflectionException(e);
}
-
-
+
}
/**
@@ -85,30 +81,32 @@
public void clear() {
list.clear();
}
-
+
/**
* Join two MBeanAttributeInfo[] arrays
+ *
* @param attrs1
* @param attrs2
- * @return new MBeanAttributeInfo array containing contents of attr1 and attr2
+ * @return new MBeanAttributeInfo array containing contents of attr1 and
+ * attr2
*/
- public static MBeanAttributeInfo[] join(MBeanAttributeInfo[] attrs1,MBeanAttributeInfo[] attrs2){
+ public static MBeanAttributeInfo[] join(MBeanAttributeInfo[] attrs1, MBeanAttributeInfo[] attrs2) {
MBeanAttributeInfo[] result = null;
int length = 0;
int startPos = 0;
- if (attrs1 != null){
+ if (attrs1 != null) {
length = attrs1.length;
}
- if (attrs2 != null){
+ if (attrs2 != null) {
length += attrs2.length;
}
-
+
result = new MBeanAttributeInfo[length];
- if (attrs1 != null){
+ if (attrs1 != null) {
System.arraycopy(attrs1, 0, result, startPos, attrs1.length);
startPos = attrs1.length;
}
- if(attrs2 != null){
+ if (attrs2 != null) {
System.arraycopy(attrs2, 0, result, startPos, attrs2.length);
}
return result;
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseLifeCycle.java Fri Aug 10 07:37:46 2007
@@ -30,57 +30,60 @@
* @version $Revision$
*/
public abstract class BaseLifeCycle implements LifeCycleMBean, MBeanInfoProvider {
-
+
public static final String INITIALIZED = "Initialized";
-
+
protected String currentState = LifeCycleMBean.UNKNOWN;
-
+
protected PropertyChangeListener listener;
-
-
+
/**
* Get the name of the item
+ *
* @return the name
*/
public String getName() {
String name = getClass().getName();
int index = name.lastIndexOf(".");
- if (index >= 0 && (index+1) < name.length()) {
- name = name.substring(index+1);
+ if (index >= 0 && (index + 1) < name.length()) {
+ name = name.substring(index + 1);
}
return name;
}
-
+
/**
* Get the type of the item
+ *
* @return the type
*/
public String getType() {
String name = getClass().getName();
int index = name.lastIndexOf(".");
- if (index >= 0 && (index+1) < name.length()) {
- name = name.substring(index+1);
+ if (index >= 0 && (index + 1) < name.length()) {
+ name = name.substring(index + 1);
}
return name;
}
-
+
public String getSubType() {
return null;
}
-
+
/**
* set state to initialized
- * @throws JBIException
- *
+ *
+ * @throws JBIException
+ *
*/
- protected void init() throws JBIException{
+ protected void init() throws JBIException {
setCurrentState(INITIALIZED);
}
/**
* Start the item.
*
- * @exception javax.jbi.JBIException if the item fails to start.
+ * @exception javax.jbi.JBIException
+ * if the item fails to start.
*/
public void start() throws javax.jbi.JBIException {
setCurrentState(LifeCycleMBean.STARTED);
@@ -89,16 +92,19 @@
/**
* Stop the item. This suspends current messaging activities.
*
- * @exception javax.jbi.JBIException if the item fails to stop.
+ * @exception javax.jbi.JBIException
+ * if the item fails to stop.
*/
public void stop() throws javax.jbi.JBIException {
setCurrentState(LifeCycleMBean.STOPPED);
}
/**
- * Shut down the item. The releases resources, preparatory to uninstallation.
+ * Shut down the item. The releases resources, preparatory to
+ * uninstallation.
*
- * @exception javax.jbi.JBIException if the item fails to shut down.
+ * @exception javax.jbi.JBIException
+ * if the item fails to shut down.
*/
public void shutDown() throws javax.jbi.JBIException {
setCurrentState(LifeCycleMBean.SHUTDOWN);
@@ -107,59 +113,60 @@
/**
* Get the current state of this managed compononent.
*
- * @return the current state of this managed component (must be one of the string constants defined by this
- * interface)
+ * @return the current state of this managed component (must be one of the
+ * string constants defined by this interface)
* @org.apache.xbean.Property hidden="true"
*/
public String getCurrentState() {
return currentState;
}
-
+
/**
* Set the current state
+ *
* @param newValue
*/
- protected void setCurrentState(String newValue){
+ protected void setCurrentState(String newValue) {
String oldValue = currentState;
this.currentState = newValue;
- firePropertyChanged("currentState",oldValue,newValue);
+ firePropertyChanged("currentState", oldValue, newValue);
}
-
+
/**
* @return true if the object is in the started state
*/
- public boolean isStarted(){
+ public boolean isStarted() {
return currentState != null && currentState.equals(LifeCycleMBean.STARTED);
}
-
+
/**
- * @return true if the object is stopped
- */
- public boolean isStopped(){
- return currentState != null && currentState.equals(LifeCycleMBean.STOPPED);
- }
-
- /**
- * @return true if the object is shutDown
- */
- public boolean isShutDown(){
- return currentState != null && currentState.equals(LifeCycleMBean.SHUTDOWN);
- }
-
- /**
- * @return true if the object is shutDown
- */
- public boolean isInitialized(){
- return currentState != null && currentState.equals(INITIALIZED);
- }
-
- /**
- * @return true if the object is shutDown
- */
- public boolean isUnknown(){
- return currentState == null || currentState.equals(LifeCycleMBean.UNKNOWN);
- }
-
+ * @return true if the object is stopped
+ */
+ public boolean isStopped() {
+ return currentState != null && currentState.equals(LifeCycleMBean.STOPPED);
+ }
+
+ /**
+ * @return true if the object is shutDown
+ */
+ public boolean isShutDown() {
+ return currentState != null && currentState.equals(LifeCycleMBean.SHUTDOWN);
+ }
+
+ /**
+ * @return true if the object is shutDown
+ */
+ public boolean isInitialized() {
+ return currentState != null && currentState.equals(INITIALIZED);
+ }
+
+ /**
+ * @return true if the object is shutDown
+ */
+ public boolean isUnknown() {
+ return currentState == null || currentState.equals(LifeCycleMBean.UNKNOWN);
+ }
+
/**
* Get an array of MBeanAttributeInfo
*
@@ -196,20 +203,21 @@
public Object getObjectToManage() {
return this;
}
-
+
/**
* Register for propertyChange events
+ *
* @param l
* @org.apache.xbean.Property hidden="true"
*/
- public void setPropertyChangeListener(PropertyChangeListener l){
+ public void setPropertyChangeListener(PropertyChangeListener l) {
this.listener = l;
}
-
- protected void firePropertyChanged(String name,Object oldValue, Object newValue){
+
+ protected void firePropertyChanged(String name, Object oldValue, Object newValue) {
PropertyChangeListener l = listener;
- if (l != null){
- PropertyChangeEvent event = new PropertyChangeEvent(this,name,oldValue,newValue);
+ if (l != null) {
+ PropertyChangeEvent event = new PropertyChangeEvent(this, name, oldValue, newValue);
l.propertyChange(event);
}
}
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseStandardMBean.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseStandardMBean.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseStandardMBean.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseStandardMBean.java Fri Aug 10 07:37:46 2007
@@ -16,13 +16,16 @@
*/
package org.apache.servicemix.jbi.management;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Date;
+import java.util.Hashtable;
+import java.util.LinkedHashMap;
+import java.util.Map;
import java.util.concurrent.ExecutorService;
-import org.apache.commons.beanutils.MethodUtils;
-import org.apache.commons.beanutils.PropertyUtilsBean;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
import javax.management.Attribute;
import javax.management.AttributeChangeNotification;
import javax.management.AttributeChangeNotificationFilter;
@@ -51,35 +54,49 @@
import javax.management.modelmbean.ModelMBeanNotificationBroadcaster;
import javax.management.modelmbean.ModelMBeanNotificationInfo;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Date;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Map;
+import org.apache.commons.beanutils.MethodUtils;
+import org.apache.commons.beanutils.PropertyUtilsBean;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* An MBean wrapper for an Existing Object
*
* @version $Revision$
*/
-public class BaseStandardMBean extends StandardMBean
- implements
- ModelMBeanNotificationBroadcaster,
- MBeanRegistration,
- PropertyChangeListener {
- private final static Log log = LogFactory.getLog(BaseStandardMBean.class);
- private Map<String, CachedAttribute> cachedAttributes = new LinkedHashMap<String, CachedAttribute>();// used to maintain insertion ordering
+public class BaseStandardMBean extends StandardMBean implements ModelMBeanNotificationBroadcaster, MBeanRegistration,
+ PropertyChangeListener {
+
+ private static final Log LOG = LogFactory.getLog(BaseStandardMBean.class);
+
+ private static final Map<String, Class<?>> PRIMITIVE_CLASSES = new Hashtable<String, Class<?>>(8);
+ {
+ PRIMITIVE_CLASSES.put(Boolean.TYPE.toString(), Boolean.TYPE);
+ PRIMITIVE_CLASSES.put(Character.TYPE.toString(), Character.TYPE);
+ PRIMITIVE_CLASSES.put(Byte.TYPE.toString(), Byte.TYPE);
+ PRIMITIVE_CLASSES.put(Short.TYPE.toString(), Short.TYPE);
+ PRIMITIVE_CLASSES.put(Integer.TYPE.toString(), Integer.TYPE);
+ PRIMITIVE_CLASSES.put(Long.TYPE.toString(), Long.TYPE);
+ PRIMITIVE_CLASSES.put(Float.TYPE.toString(), Float.TYPE);
+ PRIMITIVE_CLASSES.put(Double.TYPE.toString(), Double.TYPE);
+ }
+
+ protected ExecutorService executorService;
+
+ private Map<String, CachedAttribute> cachedAttributes = new LinkedHashMap<String, CachedAttribute>();
+
+ // used to maintain insertion ordering
private PropertyUtilsBean beanUtil = new PropertyUtilsBean();
+
private NotificationBroadcasterSupport broadcasterSupport = new NotificationBroadcasterSupport();
- protected ExecutorService executorService;
+
private MBeanAttributeInfo[] attributeInfos;
+
private MBeanInfo beanInfo;
+
// this values are set after registering with the MBeanServer//
private ObjectName objectName;
+
private MBeanServer beanServer;
/**
@@ -90,17 +107,18 @@
* @param description
* @param attrs
* @param ops
- * @param executorService2
+ * @param executorService2
* @throws ReflectionException
* @throws NotCompliantMBeanException
*/
- public BaseStandardMBean(Object object, Class interfaceMBean, String description, MBeanAttributeInfo[] attrs,
- MBeanOperationInfo[] ops, ExecutorService executorService) throws ReflectionException, NotCompliantMBeanException {
+ public BaseStandardMBean(Object object, Class<?> interfaceMBean, String description,
+ MBeanAttributeInfo[] attrs, MBeanOperationInfo[] ops,
+ ExecutorService executorService) throws ReflectionException, NotCompliantMBeanException {
super(object, interfaceMBean);
this.attributeInfos = attrs;
buildAttributes(object, this.attributeInfos);
this.beanInfo = new MBeanInfo(object.getClass().getName(), description, attrs, null, ops, getNotificationInfo());
- this.executorService = executorService;
+ this.executorService = executorService;
}
/**
@@ -141,7 +159,8 @@
Object result = null;
CachedAttribute ca = cachedAttributes.get(name);
if (ca == null) {
- // the use of proxies in MX4J has a bug - in which the caps can be changed on
+ // the use of proxies in MX4J has a bug - in which the caps can be
+ // changed on
// an attribute
for (Map.Entry<String, CachedAttribute> entry : cachedAttributes.entrySet()) {
String key = entry.getKey();
@@ -153,8 +172,7 @@
}
if (ca != null) {
result = getCurrentValue(ca);
- }
- else {
+ } else {
throw new AttributeNotFoundException("Could not locate " + name);
}
return result;
@@ -169,8 +187,8 @@
* @throws MBeanException
* @throws ReflectionException
*/
- public void setAttribute(Attribute attr) throws AttributeNotFoundException, InvalidAttributeValueException,
- MBeanException, ReflectionException {
+ public void setAttribute(Attribute attr) throws AttributeNotFoundException, InvalidAttributeValueException, MBeanException,
+ ReflectionException {
String name = attr.getName();
CachedAttribute ca = cachedAttributes.get(name);
if (ca != null) {
@@ -178,22 +196,18 @@
try {
ca.updateAttribute(beanUtil, attr);
sendAttributeChangeNotification(old, attr);
- }
- catch (NoSuchMethodException e) {
+ } catch (NoSuchMethodException e) {
throw new ReflectionException(e);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
throw new ReflectionException(e);
- }
- catch (InvocationTargetException e) {
+ } catch (InvocationTargetException e) {
Throwable t = e.getTargetException();
if (t instanceof Exception) {
throw new MBeanException(e);
}
throw new MBeanException(e);
}
- }
- else {
+ } else {
throw new AttributeNotFoundException("Could not locate " + name);
}
}
@@ -211,12 +225,10 @@
ca.updateAttributeValue(value);
try {
sendAttributeChangeNotification(old, ca.getAttribute());
- }
- catch (RuntimeOperationsException e) {
- log.error("Failed to update attribute: " + name + " to new value: " + value, e);
- }
- catch (MBeanException e) {
- log.error("Failed to update attribute: " + name + " to new value: " + value, e);
+ } catch (RuntimeOperationsException e) {
+ LOG.error("Failed to update attribute: " + name + " to new value: " + value, e);
+ } catch (MBeanException e) {
+ LOG.error("Failed to update attribute: " + name + " to new value: " + value, e);
}
}
}
@@ -231,7 +243,8 @@
}
/**
- * @param attributes - array of Attribute names
+ * @param attributes -
+ * array of Attribute names
* @return AttributeList of matching Attributes
*/
public AttributeList getAttributes(String[] attributes) {
@@ -239,24 +252,21 @@
try {
if (attributes != null) {
result = new AttributeList();
- for (int i = 0;i < attributes.length;i++) {
+ for (int i = 0; i < attributes.length; i++) {
CachedAttribute ca = cachedAttributes.get(attributes[i]);
ca.updateValue(beanUtil);
result.add(ca.getAttribute());
}
- }
- else {
+ } else {
// Do this to maintain insertion ordering
- for (Iterator i = cachedAttributes.entrySet().iterator();i.hasNext();) {
- Map.Entry entry = (Map.Entry) i.next();
- CachedAttribute ca = (CachedAttribute) entry.getValue();
+ for (Map.Entry<String, CachedAttribute> entry : cachedAttributes.entrySet()) {
+ CachedAttribute ca = entry.getValue();
ca.updateValue(beanUtil);
result.add(ca.getAttribute());
}
}
- }
- catch (MBeanException e) {
- log.error("Caught excdeption building attributes", e);
+ } catch (MBeanException e) {
+ LOG.error("Caught excdeption building attributes", e);
}
return result;
}
@@ -270,22 +280,18 @@
public AttributeList setAttributes(AttributeList attributes) {
AttributeList result = new AttributeList();
if (attributes != null) {
- for (int i = 0;i < attributes.size();i++) {
+ for (int i = 0; i < attributes.size(); i++) {
Attribute attribute = (Attribute) attributes.get(i);
try {
setAttribute(attribute);
- }
- catch (AttributeNotFoundException e) {
- log.warn("Failed to setAttribute(" + attribute + ")", e);
- }
- catch (InvalidAttributeValueException e) {
- log.warn("Failed to setAttribute(" + attribute + ")", e);
- }
- catch (MBeanException e) {
- log.warn("Failed to setAttribute(" + attribute + ")", e);
- }
- catch (ReflectionException e) {
- log.warn("Failed to setAttribute(" + attribute + ")", e);
+ } catch (AttributeNotFoundException e) {
+ LOG.warn("Failed to setAttribute(" + attribute + ")", e);
+ } catch (InvalidAttributeValueException e) {
+ LOG.warn("Failed to setAttribute(" + attribute + ")", e);
+ } catch (MBeanException e) {
+ LOG.warn("Failed to setAttribute(" + attribute + ")", e);
+ } catch (ReflectionException e) {
+ LOG.warn("Failed to setAttribute(" + attribute + ")", e);
}
result.add(attribute);
}
@@ -306,29 +312,25 @@
public Object invoke(String name, Object[] params, String[] signature) throws MBeanException, ReflectionException {
ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
try {
- Class[] parameterTypes = new Class[signature.length];
+ Class<?>[] parameterTypes = new Class<?>[signature.length];
for (int i = 0; i < parameterTypes.length; i++) {
- parameterTypes[i] = primitiveClasses.get(signature[i]);
+ parameterTypes[i] = PRIMITIVE_CLASSES.get(signature[i]);
if (parameterTypes[i] == null) {
parameterTypes[i] = Class.forName(signature[i]);
}
}
Thread.currentThread().setContextClassLoader(getImplementation().getClass().getClassLoader());
return MethodUtils.invokeMethod(getImplementation(), name, params, parameterTypes);
- }
- catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException e) {
throw new ReflectionException(e);
- }
- catch (NoSuchMethodException e) {
+ } catch (NoSuchMethodException e) {
throw new ReflectionException(e);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
throw new ReflectionException(e);
- }
- catch (InvocationTargetException e) {
+ } catch (InvocationTargetException e) {
Throwable t = e.getTargetException();
if (t instanceof Exception) {
- throw new MBeanException((Exception)t);
+ throw new MBeanException((Exception) t);
} else {
throw new MBeanException(e);
}
@@ -337,18 +339,6 @@
}
}
- private final static Hashtable<String, Class> primitiveClasses = new Hashtable<String, Class>(8);
- {
- primitiveClasses.put(Boolean.TYPE.toString(), Boolean.TYPE);
- primitiveClasses.put(Character.TYPE.toString(), Character.TYPE);
- primitiveClasses.put(Byte.TYPE.toString(), Byte.TYPE);
- primitiveClasses.put(Short.TYPE.toString(), Short.TYPE);
- primitiveClasses.put(Integer.TYPE.toString(), Integer.TYPE);
- primitiveClasses.put(Long.TYPE.toString(), Long.TYPE);
- primitiveClasses.put(Float.TYPE.toString(), Float.TYPE);
- primitiveClasses.put(Double.TYPE.toString(), Double.TYPE);
- }
-
/**
* Called at registration
*
@@ -357,11 +347,11 @@
* @return the ObjectName
* @throws Exception
*/
- public ObjectName preRegister(MBeanServer mbs,ObjectName on) throws Exception{
- if(mbs != null){
+ public ObjectName preRegister(MBeanServer mbs, ObjectName on) throws Exception {
+ if (mbs != null) {
this.beanServer = mbs;
}
- if(on != null){
+ if (on != null) {
this.objectName = on;
}
return on;
@@ -426,8 +416,8 @@
* @throws RuntimeOperationsException
* @throws IllegalArgumentException
*/
- public void addAttributeChangeNotificationListener(NotificationListener l, String attrName, Object handback)
- throws MBeanException, RuntimeOperationsException, IllegalArgumentException {
+ public void addAttributeChangeNotificationListener(NotificationListener l, String attrName, Object handback) throws MBeanException,
+ RuntimeOperationsException, IllegalArgumentException {
AttributeChangeNotificationFilter currFilter = new AttributeChangeNotificationFilter();
currFilter.enableAttribute(attrName);
broadcasterSupport.addNotificationListener(l, currFilter, handback);
@@ -440,8 +430,8 @@
* @throws RuntimeOperationsException
* @throws ListenerNotFoundException
*/
- public void removeAttributeChangeNotificationListener(NotificationListener l, String attrName)
- throws MBeanException, RuntimeOperationsException, ListenerNotFoundException {
+ public void removeAttributeChangeNotificationListener(NotificationListener l, String attrName) throws MBeanException,
+ RuntimeOperationsException, ListenerNotFoundException {
broadcasterSupport.removeNotificationListener(l);
}
@@ -450,8 +440,8 @@
* @throws MBeanException
* @throws RuntimeOperationsException
*/
- public void sendAttributeChangeNotification(AttributeChangeNotification notification) throws MBeanException,
- RuntimeOperationsException {
+ public void sendAttributeChangeNotification(AttributeChangeNotification notification) throws MBeanException,
+ RuntimeOperationsException {
sendNotification(notification);
}
@@ -461,12 +451,11 @@
* @throws MBeanException
* @throws RuntimeOperationsException
*/
- public void sendAttributeChangeNotification(Attribute oldAttr, Attribute newAttr) throws MBeanException,
- RuntimeOperationsException {
+ public void sendAttributeChangeNotification(Attribute oldAttr, Attribute newAttr) throws MBeanException, RuntimeOperationsException {
if (!oldAttr.equals(newAttr)) {
- AttributeChangeNotification notification = new AttributeChangeNotification(objectName, 1, ((new Date())
- .getTime()), "AttributeChange", oldAttr.getName(), (((newAttr.getValue()).getClass()).toString()),
- oldAttr.getValue(), newAttr.getValue());
+ AttributeChangeNotification notification = new AttributeChangeNotification(objectName, 1, (new Date()).getTime(),
+ "AttributeChange", oldAttr.getName(), newAttr.getValue().getClass().toString(), oldAttr.getValue(),
+ newAttr.getValue());
sendAttributeChangeNotification(notification);
}
}
@@ -476,14 +465,15 @@
*/
public MBeanNotificationInfo[] getNotificationInfo() {
MBeanNotificationInfo[] result = new MBeanNotificationInfo[2];
- Descriptor genericDescriptor = new DescriptorSupport(new String[]{"name=GENERIC",
- "descriptorType=notification", "log=T", "severity=5", "displayName=jmx.modelmbean.generic"});
- result[0] = new ModelMBeanNotificationInfo(new String[]{"jmx.modelmbean.generic"}, "GENERIC",
- "A text notification has been issued by the managed resource", genericDescriptor);
- Descriptor attributeDescriptor = new DescriptorSupport(new String[]{"name=ATTRIBUTE_CHANGE",
- "descriptorType=notification", "log=T", "severity=5", "displayName=jmx.attribute.change"});
- result[1] = new ModelMBeanNotificationInfo(new String[]{"jmx.attribute.change"}, "ATTRIBUTE_CHANGE",
- "Signifies that an observed MBean attribute value has changed", attributeDescriptor);
+ Descriptor genericDescriptor = new DescriptorSupport(new String[] {
+ "name=GENERIC", "descriptorType=notification", "log=T",
+ "severity=5", "displayName=jmx.modelmbean.generic" });
+ result[0] = new ModelMBeanNotificationInfo(new String[] {"jmx.modelmbean.generic" }, "GENERIC",
+ "A text notification has been issued by the managed resource", genericDescriptor);
+ Descriptor attributeDescriptor = new DescriptorSupport(new String[] {"name=ATTRIBUTE_CHANGE", "descriptorType=notification",
+ "log=T", "severity=5", "displayName=jmx.attribute.change" });
+ result[1] = new ModelMBeanNotificationInfo(new String[] {"jmx.attribute.change" }, "ATTRIBUTE_CHANGE",
+ "Signifies that an observed MBean attribute value has changed", attributeDescriptor);
return result;
}
@@ -493,8 +483,8 @@
* @param handle
* @throws IllegalArgumentException
*/
- public void addNotificationListener(NotificationListener l, NotificationFilter filter, Object handle)
- throws IllegalArgumentException {
+ public void addNotificationListener(NotificationListener l, NotificationFilter filter,
+ Object handle) throws IllegalArgumentException {
broadcasterSupport.addNotificationListener(l, filter, handle);
}
@@ -511,14 +501,11 @@
if (ca != null) {
try {
result = beanUtil.getProperty(ca.getBean(), ca.getName());
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
throw new MBeanException(e);
- }
- catch (InvocationTargetException e) {
+ } catch (InvocationTargetException e) {
throw new MBeanException(e);
- }
- catch (NoSuchMethodException e) {
+ } catch (NoSuchMethodException e) {
throw new MBeanException(e);
}
}
@@ -534,7 +521,7 @@
*/
private void buildAttributes(Object obj, MBeanAttributeInfo[] attrs) throws ReflectionException {
if (attrs != null) {
- for (int i = 0;i < attrs.length;i++) {
+ for (int i = 0; i < attrs.length; i++) {
try {
String name = attrs[i].getName();
PropertyDescriptor pd = beanUtil.getPropertyDescriptor(obj, name);
@@ -544,14 +531,11 @@
ca.setBean(obj);
ca.setPropertyDescriptor(pd);
cachedAttributes.put(name, ca);
- }
- catch (NoSuchMethodException e) {
+ } catch (NoSuchMethodException e) {
throw new ReflectionException(e);
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
throw new ReflectionException(e);
- }
- catch (InvocationTargetException e) {
+ } catch (InvocationTargetException e) {
throw new ReflectionException(e);
}
}
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/BaseSystemService.java Fri Aug 10 07:37:46 2007
@@ -47,9 +47,9 @@
return "SystemService";
}
- public void init(JBIContainer container) throws JBIException {
- this.container = container;
- container.getManagementContext().registerSystemService(this, getServiceMBean());
+ public void init(JBIContainer cont) throws JBIException {
+ this.container = cont;
+ cont.getManagementContext().registerSystemService(this, getServiceMBean());
super.init();
}
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/CachedAttribute.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/CachedAttribute.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/CachedAttribute.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/CachedAttribute.java Fri Aug 10 07:37:46 2007
@@ -16,14 +16,14 @@
*/
package org.apache.servicemix.jbi.management;
-import org.apache.commons.beanutils.PropertyUtilsBean;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
import javax.management.Attribute;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanException;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
+import org.apache.commons.beanutils.PropertyUtilsBean;
/**
* A simple holder for an Attribute and a PropertyDescriptor
@@ -89,14 +89,11 @@
if (value != attribute.getValue()) {
this.attribute = new Attribute(getName(), value);
}
- }
- catch (IllegalAccessException e) {
+ } catch (IllegalAccessException e) {
throw new MBeanException(e);
- }
- catch (InvocationTargetException e) {
+ } catch (InvocationTargetException e) {
throw new MBeanException(e);
- }
- catch (NoSuchMethodException e) {
+ } catch (NoSuchMethodException e) {
throw new MBeanException(e);
}
}
@@ -105,18 +102,18 @@
* Update the Attribute
*
* @param beanUtils
- * @param attribute The attribute to set.
+ * @param attr The attribute to set.
* @throws IllegalAccessException
* @throws InvocationTargetException
* @throws NoSuchMethodException
*/
- public void updateAttribute(PropertyUtilsBean beanUtils, Attribute attribute) throws IllegalAccessException,
+ public void updateAttribute(PropertyUtilsBean beanUtils, Attribute attr) throws IllegalAccessException,
InvocationTargetException, NoSuchMethodException {
if (this.attribute != null && propertyDescriptor != null) {
// update object value
- beanUtils.setProperty(bean, getName(), attribute.getValue());
+ beanUtils.setProperty(bean, getName(), attr.getValue());
}
- this.attribute = attribute;
+ this.attribute = attr;
}
/**
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanBuilder.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanBuilder.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanBuilder.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanBuilder.java Fri Aug 10 07:37:46 2007
@@ -16,19 +16,21 @@
*/
package org.apache.servicemix.jbi.management;
+import java.util.concurrent.ExecutorService;
+
import javax.management.DynamicMBean;
import javax.management.JMException;
import javax.management.StandardMBean;
-import java.util.concurrent.ExecutorService;
-
/**
* Builds a DynamicMBean wrappers for existing objects
*
* @version $Revision$
*/
-class MBeanBuilder {
+public final class MBeanBuilder {
+ private MBeanBuilder() {
+ }
/**
* Build an MBean
@@ -40,7 +42,8 @@
* @return the MBean wrapper
* @throws JMException
*/
- static DynamicMBean buildStandardMBean(Object theObject, Class interfaceMBean, String description, ExecutorService executorService) throws JMException {
+ static DynamicMBean buildStandardMBean(Object theObject, Class interfaceMBean,
+ String description, ExecutorService executorService) throws JMException {
DynamicMBean result = null;
if (theObject != null) {
if (theObject instanceof MBeanInfoProvider) {
@@ -53,8 +56,7 @@
info.getOperationInfos(),
executorService);
info.setPropertyChangeListener((BaseStandardMBean)result);
- }
- else {
+ } else {
return new StandardMBean(theObject, interfaceMBean);
}
}
Modified: incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java?view=diff&rev=564607&r1=564606&r2=564607
==============================================================================
--- incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java (original)
+++ incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/management/MBeanInfoProvider.java Fri Aug 10 07:37:46 2007
@@ -16,12 +16,12 @@
*/
package org.apache.servicemix.jbi.management;
+import java.beans.PropertyChangeListener;
+
import javax.management.JMException;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanOperationInfo;
-import java.beans.PropertyChangeListener;
-
/**
* An object to be managed can implement this class
* to provide more meta infomation for the MBeanInfo
@@ -35,51 +35,49 @@
* @return array of AttributeInfos
* @throws JMException
*/
- public MBeanAttributeInfo[] getAttributeInfos() throws JMException;
+ MBeanAttributeInfo[] getAttributeInfos() throws JMException;
/**
* Get an array of MBeanOperationInfo
* @return array of OperationInfos
* @throws JMException
*/
- public MBeanOperationInfo[] getOperationInfos() throws JMException;
+ MBeanOperationInfo[] getOperationInfos() throws JMException;
/**
* Get the Object to Manage
* @return the Object to Manage
*/
- public Object getObjectToManage();
+ Object getObjectToManage();
/**
* Get the name of the item
* @return the name
*/
- public String getName();
+ String getName();
/**
* Get the type of this mbean
* @return the type
*/
- public String getType();
+ String getType();
/**
* Get the type of this mbean
* @return the type
*/
- public String getSubType();
+ String getSubType();
/**
* Get the Description of the item
* @return the description
*/
- public String getDescription();
+ String getDescription();
/**
* Register for propertyChange events
* @param l
*/
- public void setPropertyChangeListener(PropertyChangeListener l);
-
-
-
+ void setPropertyChangeListener(PropertyChangeListener l);
+
}