1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.velocity;
18
19 import java.lang.reflect.Constructor;
20
21 import javax.portlet.PortletException;
22
23 import org.apache.commons.logging.Log;
24 import org.apache.commons.logging.LogFactory;
25 import org.apache.jetspeed.aggregator.PortletRenderer;
26 import org.apache.jetspeed.layout.JetspeedPowerTool;
27 import org.apache.jetspeed.request.RequestContext;
28 import org.apache.jetspeed.services.title.DynamicTitleService;
29
30 public class JetspeedPowerToolFactory implements org.apache.jetspeed.layout.JetspeedPowerToolFactory
31 {
32 protected static final Log log = LogFactory.getLog(JetspeedPowerToolFactory.class);
33
34 private Class jptClass;
35 private Constructor constructor;
36 private DynamicTitleService titleService;
37
38
39 private PortletRenderer renderer;
40
41 public JetspeedPowerToolFactory(String jptClassName, DynamicTitleService titleService, PortletRenderer renderer)
42 throws ClassNotFoundException, NoSuchMethodException
43 {
44 jptClass = Thread.currentThread().getContextClassLoader().loadClass(jptClassName);
45 constructor =
46 jptClass.getConstructor(
47 new Class[] {RequestContext.class, DynamicTitleService.class, PortletRenderer.class});
48 this.titleService = titleService;
49 this.renderer = renderer;
50 }
51
52 public JetspeedPowerTool getJetspeedPowerTool(RequestContext requestContext)
53 throws PortletException
54 {
55 try
56 {
57 Object [] initArgs = { requestContext, this.titleService, this.renderer };
58 return (JetspeedPowerTool)constructor.newInstance(initArgs);
59 }
60 catch (Exception e)
61 {
62 e.printStackTrace();
63 throw new PortletException(e);
64 }
65 }
66 }
67