Skip to content

Commit 3487053

Browse files
committed
* Switch from java.util logging to SLF4J.
(the simple logging facade for java--see http://slf4j.org) so that json-rpc-java can be easily integrated with projects that use other java logging systems. The test webapp still uses java.util logging (although its now via SLF4J.) The json-rpc-java library now has a dependency on slf4j. * Added convenience target uninstall that removes .war and the expanded .war folder from tomcat. -- Arthur Blake <[email protected]> ablake | 2007-07-24 23:10:32 +1000 (Tue, 24 Jul 2007)
1 parent 893559a commit 3487053

13 files changed

+91
-58
lines changed

build.xml

+17-5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<path id="myclasspath">
77
<fileset dir="${tomcat}/common/lib"><include name="**/*.jar"/></fileset>
88
<fileset dir="${tomcat}/bin"><include name="**/*.jar"/></fileset>
9+
<fileset dir="./lib"><include name="**/*.jar"/></fileset>
910
</path>
1011

1112
<!-- JBoss 4.0 classpath and installpath -->
@@ -15,6 +16,7 @@
1516
<path id="myclasspath">
1617
<fileset dir="${jboss}/server/standard/lib"><include name="**/*.jar"/></fileset>
1718
<fileset dir="${jboss}/server/default/deploy/jbossweb-tomcat50.sar"><include name="**/*.jar"/></fileset>
19+
<fileset dir="./lib"><include name="**/*.jar"/></fileset>
1820
</path>
1921
-->
2022

@@ -25,13 +27,14 @@
2527
<path id="myclasspath">
2628
<fileset dir="${jboss}/lib"><include name="**/*.jar"/></fileset>
2729
<fileset dir="${jboss}/server/default/deploy/jbossweb-tomcat50.sar"><include name="**/*.jar"/></fileset>
30+
<fileset dir="./lib"><include name="**/*.jar"/></fileset>
2831
</path>
2932
-->
3033

31-
3234
<property name="version" value="svn-trunk"/>
33-
<property name="jsonrpc-jar" value="jsonrpc-${version}.jar"/>
34-
<property name="jsonrpc-war" value="jsonrpc-${version}.war"/>
35+
<property name="jsonrpc-prefix" value="jsonrpc-${version}"/>
36+
<property name="jsonrpc-jar" value="${jsonrpc-prefix}.jar"/>
37+
<property name="jsonrpc-war" value="${jsonrpc-prefix}.war"/>
3538
<property name="src" location="src"/>
3639
<property name="build" location="build"/>
3740

@@ -115,11 +118,16 @@
115118

116119
<target name="test.dist" depends="dist,compile.jsp">
117120
<copy file="${jsonrpc-jar}" tofile="${webinf}/lib/${jsonrpc-jar}"/>
121+
<copy todir="${test.lib}">
122+
<fileset dir="./lib">
123+
<include name="**/*.jar"/>
124+
</fileset>
125+
</copy>
118126
<jar destfile="${test.lib}/rsrc.jar" basedir="${test.rsrc}"
119127
excludes="*~"/>
120128
<war destfile="${jsonrpc-war}" basedir="${webapp}"
121129
excludes="**/*~,**/*.jsp,WEB-INF/web.xml*"
122-
webxml="${webapp}/WEB-INF/web.xml.out"/>
130+
webxml="${webapp}/WEB-INF/web.xml.out"/>
123131
</target>
124132

125133
<target name="docs">
@@ -153,10 +161,14 @@
153161
<copy file="${jsonrpc-war}" todir="${installpath}"/>
154162
</target>
155163

164+
<target name="uninstall">
165+
<delete file="${installpath}/${jsonrpc-war}"/>
166+
<delete dir="${installpath}/${jsonrpc-prefix}/"/>
167+
</target>
168+
156169
<target name="clean">
157170
<delete file="${jsonrpc-war}"/>
158171
<delete file="${jsonrpc-jar}"/>
159-
<delete file="${webapp}/WEB-INF/rsrc.jar"/>
160172
<delete file="${webapp}/WEB-INF/web.xml.out"/>
161173
<delete file="${webapp}/WEB-INF/web.xml.generated"/>
162174
<delete file="${webapp}/Test.java.txt"/>

lib/slf4j-api-1.4.2.jar

14.9 KB
Binary file not shown.

lib/slf4j-jdk14-1.4.2.jar

8.37 KB
Binary file not shown.

src/com/metaparadigm/jsonrpc/JSONRPCBridge.java

+15-14
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,16 @@
2929
import java.util.ArrayList;
3030
import java.util.Iterator;
3131
import java.util.NoSuchElementException;
32-
import java.util.logging.Logger;
3332
import java.lang.reflect.Method;
3433
import java.lang.reflect.InvocationTargetException;
3534
import java.io.Serializable;
35+
3636
import org.json.JSONObject;
3737
import org.json.JSONArray;
3838

39+
import org.slf4j.Logger;
40+
import org.slf4j.LoggerFactory;
41+
3942
import com.metaparadigm.jsonrpc.callback.CallbackController;
4043
import com.metaparadigm.jsonrpc.callback.InvocationCallback;
4144
import com.metaparadigm.jsonrpc.localarg.LocalArgController;
@@ -107,8 +110,7 @@ public Object transform(Throwable t) {
107110
return t;
108111
}
109112
};
110-
private final static Logger log = Logger.getLogger(JSONRPCBridge.class
111-
.getName());
113+
private final static Logger log = LoggerFactory.getLogger(JSONRPCBridge.class);
112114

113115
// Global bridge (for exporting to all users)
114116
private final static JSONRPCBridge globalBridge = new JSONRPCBridge();
@@ -124,7 +126,6 @@ public Object transform(Throwable t) {
124126
}
125127
}
126128

127-
128129
/* Instance fields */
129130

130131
// Debugging enabled on this bridge
@@ -496,7 +497,7 @@ private ClassData resolveClass(String className) {
496497

497498
if (cd != null) {
498499
if (debug)
499-
log.fine("found class " + cd.getClazz().getName() + " named "
500+
log.trace("found class " + cd.getClazz().getName() + " named "
500501
+ className);
501502
return cd;
502503
}
@@ -607,7 +608,7 @@ private ObjectInstance resolveObject(Object key) {
607608
oi = (ObjectInstance)objectMap.get(key);
608609
}
609610
if (debug && oi != null)
610-
log.fine("found object " + oi.o.hashCode() + " of class "
611+
log.trace("found object " + oi.o.hashCode() + " of class "
611612
+ oi.clazz.getName() + " with key " + key);
612613
if (oi == null && this != globalBridge)
613614
return globalBridge.resolveObject(key);
@@ -692,7 +693,7 @@ private Method resolveMethod(HashMap methodMap, String methodName,
692693
if (o instanceof Method) {
693694
Method m = (Method) o;
694695
if (debug)
695-
log.fine("found method " + methodName + "(" + argSignature(m)
696+
log.trace("found method " + methodName + "(" + argSignature(m)
696697
+ ")");
697698
return m;
698699
} else if (o instanceof Method[])
@@ -702,17 +703,17 @@ private Method resolveMethod(HashMap methodMap, String methodName,
702703

703704
ArrayList candidate = new ArrayList();
704705
if (debug)
705-
log.fine("looking for method " + methodName + "("
706+
log.trace("looking for method " + methodName + "("
706707
+ argSignature(arguments) + ")");
707708
for (int i = 0; i < method.length; i++) {
708709
try {
709710
candidate.add(tryUnmarshallArgs(method[i], arguments));
710711
if (debug)
711-
log.fine("+++ possible match with method " + methodName
712+
log.trace("+++ possible match with method " + methodName
712713
+ "(" + argSignature(method[i]) + ")");
713714
} catch (Exception e) {
714715
if (debug)
715-
log.fine("xxx " + e.getMessage() + " in " + methodName
716+
log.trace("xxx " + e.getMessage() + " in " + methodName
716717
+ "(" + argSignature(method[i]) + ")");
717718
}
718719
}
@@ -733,7 +734,7 @@ else if (bestMatch.getMismatch() == cMatch.getMismatch())
733734
if (best != null) {
734735
Method m = best.method;
735736
if (debug)
736-
log.fine("found method " + methodName + "(" + argSignature(m)
737+
log.trace("found method " + methodName + "(" + argSignature(m)
737738
+ ")");
738739
return m;
739740
}
@@ -861,13 +862,13 @@ public JSONRPCResult call(Object context[], JSONObject jsonReq) {
861862
arguments = jsonReq.getJSONArray("params");
862863
requestId = jsonReq.opt("id");
863864
} catch (NoSuchElementException e) {
864-
log.severe("no method or parameters in request");
865+
log.error("no method or parameters in request");
865866
return new JSONRPCResult(JSONRPCResult.CODE_ERR_NOMETHOD, null,
866867
JSONRPCResult.MSG_ERR_NOMETHOD);
867868
}
868869

869870
if (isDebug())
870-
log.fine("call " + encodedMethod + "(" + arguments + ")"
871+
log.trace("call " + encodedMethod + "(" + arguments + ")"
871872
+ ", requestId=" + requestId);
872873

873874
String className = null;
@@ -954,7 +955,7 @@ public JSONRPCResult call(Object context[], JSONObject jsonReq) {
954955
// Call the method
955956
try {
956957
if (debug)
957-
log.fine("invoking " + method.getReturnType().getName() + " "
958+
log.trace("invoking " + method.getReturnType().getName() + " "
958959
+ method.getName() + "(" + argSignature(method) + ")");
959960

960961
// Unmarshall arguments

src/com/metaparadigm/jsonrpc/JSONRPCBridgeState.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@
2424

2525
import java.util.HashMap;
2626
import java.util.HashSet;
27-
import java.util.logging.Logger;
2827
import java.io.Serializable;
2928

29+
import org.slf4j.Logger;
30+
import org.slf4j.LoggerFactory;
31+
3032
import com.metaparadigm.jsonrpc.serializer.Serializer;
3133
import com.metaparadigm.jsonrpc.serializer.impl.ReferenceSerializer;
3234

@@ -39,8 +41,7 @@ public class JSONRPCBridgeState implements Serializable {
3941

4042
private final static long serialVersionUID = 2;
4143

42-
private final static Logger log = Logger.getLogger(JSONRPCBridgeState.class
43-
.getName());
44+
private final static Logger log = LoggerFactory.getLogger(JSONRPCBridgeState.class);
4445

4546
// bridge this state information is associated with
4647
private JSONRPCBridge bridge;

src/com/metaparadigm/jsonrpc/JSONRPCServlet.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,17 @@
2727
import java.io.InputStreamReader;
2828
import java.io.BufferedReader;
2929
import java.io.CharArrayWriter;
30-
import java.util.logging.Logger;
3130
import javax.servlet.http.HttpSession;
3231
import javax.servlet.http.HttpServlet;
3332
import javax.servlet.http.HttpServletRequest;
3433
import javax.servlet.http.HttpServletResponse;
3534
import java.text.ParseException;
35+
3636
import org.json.JSONObject;
3737

38+
import org.slf4j.Logger;
39+
import org.slf4j.LoggerFactory;
40+
3841
/**
3942
* This servlet handles JSON-RPC requests over HTTP and hands them to a
4043
* JSONRPCBridge instance (either a global instance or one in the user's
@@ -87,8 +90,7 @@ public class JSONRPCServlet extends HttpServlet {
8790

8891
private final static long serialVersionUID = 2;
8992

90-
private final static Logger log = Logger.getLogger(JSONRPCServlet.class
91-
.getName());
93+
private final static Logger log = LoggerFactory.getLogger(JSONRPCServlet.class);
9294

9395
private final static int buf_size = 4096;
9496

@@ -146,24 +148,24 @@ public void service(HttpServletRequest request, HttpServletResponse response)
146148
while ((ret = in.read(buf, 0, buf_size)) != -1)
147149
data.write(buf, 0, ret);
148150
if (json_bridge.isDebug())
149-
log.fine("recieve: " + data.toString());
151+
log.trace("recieve: " + data.toString());
150152

151153
// Process the request
152154
JSONObject json_req = null;
153155
JSONRPCResult json_res = null;
154156
try {
155157
json_req = new JSONObject(data.toString());
156158
json_res = json_bridge.call
157-
(new Object[] { request, response }, json_req);
159+
(new Object[] { request, response }, json_req);
158160
} catch (ParseException e) {
159-
log.severe("can't parse call: " + data);
161+
log.error("can't parse call: " + data);
160162
json_res = new JSONRPCResult(JSONRPCResult.CODE_ERR_PARSE, null,
161163
JSONRPCResult.MSG_ERR_PARSE);
162164
}
163165

164166
// Write the response
165167
if (json_bridge.isDebug())
166-
log.fine("send: " + json_res.toString());
168+
log.trace("send: " + json_res.toString());
167169
byte[] bout = json_res.toString().getBytes("UTF-8");
168170
response.setIntHeader("Content-Length", bout.length);
169171

src/com/metaparadigm/jsonrpc/JSONSerializer.java

+10-8
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,16 @@
2727
import java.util.ArrayList;
2828
import java.util.Iterator;
2929
import java.util.NoSuchElementException;
30-
import java.util.logging.Logger;
30+
3131
import java.text.ParseException;
3232
import java.io.Serializable;
3333
import org.json.JSONObject;
3434
import org.json.JSONArray;
3535
import org.json.JSONTokener;
3636

37+
import org.slf4j.Logger;
38+
import org.slf4j.LoggerFactory;
39+
3740
import com.metaparadigm.jsonrpc.serializer.MarshallException;
3841
import com.metaparadigm.jsonrpc.serializer.ObjectMatch;
3942
import com.metaparadigm.jsonrpc.serializer.Serializer;
@@ -63,8 +66,7 @@ public class JSONSerializer implements Serializable {
6366

6467
private final static long serialVersionUID = 2;
6568

66-
private final static Logger log = Logger.getLogger(JSONSerializer.class
67-
.getName());
69+
private final static Logger log = LoggerFactory.getLogger(JSONSerializer.class);
6870

6971
// Debugging enabled on this serializer.
7072
private boolean debug = false;
@@ -178,7 +180,7 @@ public void registerSerializer(Serializer s) throws Exception {
178180
*/
179181
private Serializer getSerializer(Class clazz, Class jsoClazz) {
180182
if (isDebug())
181-
log.fine("looking for serializer - java:"
183+
log.trace("looking for serializer - java:"
182184
+ (clazz == null ? "null" : clazz.getName()) + " json:"
183185
+ (jsoClazz == null ? "null" : jsoClazz.getName()));
184186

@@ -187,7 +189,7 @@ private Serializer getSerializer(Class clazz, Class jsoClazz) {
187189
s = (Serializer) serializableMap.get(clazz);
188190
if (s != null && s.canSerialize(clazz, jsoClazz)) {
189191
if (isDebug())
190-
log.fine("direct match serializer "
192+
log.trace("direct match serializer "
191193
+ s.getClass().getName());
192194
return s;
193195
}
@@ -196,7 +198,7 @@ private Serializer getSerializer(Class clazz, Class jsoClazz) {
196198
s = (Serializer) i.next();
197199
if (s.canSerialize(clazz, jsoClazz)) {
198200
if (isDebug())
199-
log.fine("search found serializer "
201+
log.trace("search found serializer "
200202
+ s.getClass().getName());
201203
return s;
202204
}
@@ -296,11 +298,11 @@ public Object marshall(SerializerState state, Object o)
296298
throws MarshallException {
297299
if (o == null) {
298300
if (isDebug())
299-
log.fine("marshall null");
301+
log.trace("marshall null");
300302
return JSONObject.NULL;
301303
}
302304
if (isDebug())
303-
log.fine("marshall class " + o.getClass().getName());
305+
log.trace("marshall class " + o.getClass().getName());
304306
Serializer s = getSerializer(o.getClass(), null);
305307
if (s != null)
306308
return s.marshall(state, o);

src/com/metaparadigm/jsonrpc/callback/CallbackController.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@
2525
import java.lang.reflect.Method;
2626
import java.util.Iterator;
2727
import java.util.HashSet;
28-
import java.util.logging.Logger;
2928
import java.io.Serializable;
3029

30+
import org.slf4j.Logger;
31+
import org.slf4j.LoggerFactory;
32+
3133
/**
3234
* Class that is instantiated per bridge to maintain the list of
3335
* callbacks and provides an interface to invoke them.
@@ -36,8 +38,7 @@
3638
public class CallbackController implements Serializable {
3739
private final static long serialVersionUID = 2;
3840

39-
private final static Logger log = Logger.getLogger(CallbackController.class
40-
.getName());
41+
private final static Logger log = LoggerFactory.getLogger(CallbackController.class);
4142

4243
// key CallbackData
4344
private HashSet callbackSet;

src/com/metaparadigm/jsonrpc/localarg/LocalArgController.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@
2525
import java.util.HashMap;
2626
import java.util.HashSet;
2727
import java.util.Iterator;
28-
import java.util.logging.Logger;
2928

3029
import javax.servlet.http.HttpServletRequest;
3130
import javax.servlet.http.HttpServletResponse;
3231
import javax.servlet.http.HttpSession;
3332

33+
import org.slf4j.Logger;
34+
import org.slf4j.LoggerFactory;
35+
3436
import com.metaparadigm.jsonrpc.JSONRPCBridge;
3537
import com.metaparadigm.jsonrpc.localarg.impl.HttpServletRequestArgResolver;
3638
import com.metaparadigm.jsonrpc.localarg.impl.HttpServletResponseArgResolver;
@@ -45,8 +47,7 @@
4547

4648
public class LocalArgController {
4749

48-
private final static Logger log = Logger.getLogger(LocalArgController.class
49-
.getName());
50+
private final static Logger log = LoggerFactory.getLogger(LocalArgController.class);
5051

5152
// key argClazz, val HashSet<LocalArgResolverData>
5253
private static HashMap localArgResolverMap = new HashMap();
@@ -143,7 +144,7 @@ public static void unregisterLocalArgResolver(Class argClazz,
143144
if (resolverSet == null
144145
|| !resolverSet.remove(new LocalArgResolverData(
145146
argResolver, argClazz, contextInterface))) {
146-
log.warning("local arg resolver "
147+
log.warn("local arg resolver "
147148
+ argResolver.getClass().getName()
148149
+ " not registered for local class "
149150
+ argClazz.getName() + " with context "

0 commit comments

Comments
 (0)