KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > hivemind > examples > impl > ProxyLoggingInterceptorFactory


1 // Copyright 2004, 2005 The Apache Software Foundation
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15 package org.apache.hivemind.examples.impl;
16
17 import java.lang.reflect.InvocationHandler JavaDoc;
18 import java.lang.reflect.Proxy JavaDoc;
19 import java.util.List JavaDoc;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.hivemind.InterceptorStack;
23 import org.apache.hivemind.ServiceInterceptorFactory;
24 import org.apache.hivemind.internal.Module;
25
26 /**
27  * Creates a simple, proxy-based interceptor that mimics most (but not all) of the behavior
28  * of {@link org.apache.hivemind.service.impl.LoggingInterceptorFactory}.
29  *
30  * @author Howard Lewis Ship
31  */

32 public class ProxyLoggingInterceptorFactory implements ServiceInterceptorFactory
33 {
34
35     public void createInterceptor(InterceptorStack stack, Module invokingModule, List JavaDoc parameters)
36     {
37         Log log = stack.getServiceLog();
38
39         InvocationHandler JavaDoc handler = new ProxyLoggingInvocationHandler(log, stack.peek());
40
41         Object JavaDoc interceptor =
42             Proxy.newProxyInstance(
43                 invokingModule.getClassResolver().getClassLoader(),
44                 new Class JavaDoc[] { stack.getServiceInterface()},
45                 handler);
46
47         stack.push(interceptor);
48     }
49 }
50
Popular Tags