[jboss-svn-commits] JBoss Common SVN: r4685 - jboss-logging/trunk/src/main/java/org/jboss/logging.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 6 23:19:26 EDT 2010
Author: david.lloyd at jboss.com
Date: 2010-07-06 23:19:26 -0400 (Tue, 06 Jul 2010)
New Revision: 4685
Modified:
jboss-logging/trunk/src/main/java/org/jboss/logging/Logger.java
jboss-logging/trunk/src/main/java/org/jboss/logging/MessageBundleInvocationHandler.java
jboss-logging/trunk/src/main/java/org/jboss/logging/Messages.java
Log:
Some fixes for message bundles
Modified: jboss-logging/trunk/src/main/java/org/jboss/logging/Logger.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/Logger.java 2010-07-07 02:25:42 UTC (rev 4684)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/Logger.java 2010-07-07 03:19:26 UTC (rev 4685)
@@ -25,8 +25,6 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Proxy;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
import java.util.Locale;
/**
@@ -38,16 +36,6 @@
private static final String FQCN = Logger.class.getName();
- private static final boolean GENERATE_PROXIES;
-
- static {
- GENERATE_PROXIES = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
- public Boolean run() {
- return Boolean.valueOf(System.getProperty("jboss.i18n.generate-proxies"));
- }
- }).booleanValue();
- }
-
/**
* Levels used by this logging API.
*/
@@ -2318,7 +2306,7 @@
if (loggerClass == null) try {
loggerClass = Class.forName(join(type.getName(), "$logger", null, null, null), true, type.getClassLoader()).asSubclass(type);
} catch (ClassNotFoundException e) {
- if (GENERATE_PROXIES) {
+ if (Messages.GENERATE_PROXIES) {
return type.cast(Proxy.newProxyInstance(type.getClassLoader(), new Class<?>[] { type }, new MessageLoggerInvocationHandler(type, category)));
}
throw new IllegalArgumentException("Invalid logger " + type + " (implementation not found)");
Modified: jboss-logging/trunk/src/main/java/org/jboss/logging/MessageBundleInvocationHandler.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/MessageBundleInvocationHandler.java 2010-07-07 02:25:42 UTC (rev 4684)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/MessageBundleInvocationHandler.java 2010-07-07 03:19:26 UTC (rev 4685)
@@ -41,6 +41,14 @@
this.projectCode = projectCode;
}
+ protected MessageBundleInvocationHandler(final Class<?> type) {
+ this(type.getAnnotation(MessageBundle.class));
+ }
+
+ protected MessageBundleInvocationHandler(final MessageBundle messageBundle) {
+ this(messageBundle != null ? messageBundle.projectCode() : null);
+ }
+
public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
final Message message = method.getAnnotation(Message.class);
if (message == null) {
@@ -84,6 +92,7 @@
}
final int id = message.id();
if (id > 0) {
+ // todo - support for inherited msg id
final String projectCode = this.projectCode;
if (projectCode != null) {
final StringBuilder b = new StringBuilder(32);
Modified: jboss-logging/trunk/src/main/java/org/jboss/logging/Messages.java
===================================================================
--- jboss-logging/trunk/src/main/java/org/jboss/logging/Messages.java 2010-07-07 02:25:42 UTC (rev 4684)
+++ jboss-logging/trunk/src/main/java/org/jboss/logging/Messages.java 2010-07-07 03:19:26 UTC (rev 4685)
@@ -23,6 +23,9 @@
package org.jboss.logging;
import java.lang.reflect.Field;
+import java.lang.reflect.Proxy;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Locale;
/**
@@ -32,6 +35,16 @@
*/
public final class Messages {
+ static final boolean GENERATE_PROXIES;
+
+ static {
+ GENERATE_PROXIES = AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
+ public Boolean run() {
+ return Boolean.valueOf(System.getProperty("jboss.i18n.generate-proxies"));
+ }
+ }).booleanValue();
+ }
+
private Messages() {
}
@@ -78,6 +91,9 @@
if (bundleClass == null) try {
bundleClass = Class.forName(join(type.getName(), "$bundle", null, null, null), true, type.getClassLoader()).asSubclass(type);
} catch (ClassNotFoundException e) {
+ if (GENERATE_PROXIES) {
+ return type.cast(Proxy.newProxyInstance(type.getClassLoader(), new Class<?>[] { type }, new MessageBundleInvocationHandler(type)));
+ }
throw new IllegalArgumentException("Invalid bundle " + type + " (implementation not found)");
}
final Field field;
More information about the jboss-svn-commits
mailing list