KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > manager > console > WebConsoleAction


1 /*
2  * JFox - The most lightweight Java EE Application Server!
3  * more details please visit http://www.huihoo.org/jfox or http://www.jfox.org.cn.
4  *
5  * JFox is licenced and re-distributable under GNU LGPL.
6  */

7 package org.jfox.manager.console;
8
9 import java.util.ArrayList JavaDoc;
10 import java.util.Collection JavaDoc;
11 import java.util.Collections JavaDoc;
12 import java.util.Comparator JavaDoc;
13 import java.util.List JavaDoc;
14 import javax.naming.Binding JavaDoc;
15 import javax.naming.NamingEnumeration JavaDoc;
16
17 import org.jfox.ejb3.EJBBucket;
18 import org.jfox.ejb3.EJBContainer;
19 import org.jfox.entity.EntityManagerFactoryBuilder;
20 import org.jfox.entity.EntityManagerFactoryBuilderImpl;
21 import org.jfox.entity.EntityManagerFactoryImpl;
22 import org.jfox.framework.Constants;
23 import org.jfox.framework.Framework;
24 import org.jfox.framework.annotation.Service;
25 import org.jfox.framework.component.Module;
26 import org.jfox.mvc.ActionSupport;
27 import org.jfox.mvc.Invocation;
28 import org.jfox.mvc.InvocationContext;
29 import org.jfox.mvc.PageContext;
30 import org.jfox.mvc.WebContextLoader;
31 import org.jfox.mvc.annotation.ActionMethod;
32 import org.jfox.mvc.validate.StringValidation;
33 import org.jfox.util.SystemUtils;
34
35 /**
36  *
37  *
38  * @author <a HREF="mailto:jfox.young@gmail.com">Young Yang</a>
39  */

40 @Service(id = "console")
41 public class WebConsoleAction extends ActionSupport {
42
43     @ActionMethod(successView = "console/sysinfo.vhtml")
44     public void doGetSysinfo(InvocationContext invocationContext) throws Exception JavaDoc {
45         PageContext pageContext = invocationContext.getPageContext();
46         pageContext.setAttribute("jfoxVersion", Constants.VERSION);
47         pageContext.setAttribute("webServerVersion", invocationContext.getServletContext().getServerInfo());
48         pageContext.setAttribute("jvmVersion", SystemUtils.JAVA_VERSION);
49         pageContext.setAttribute("jvmVendor", SystemUtils.JAVA_VENDOR);
50         pageContext.setAttribute("osName", SystemUtils.OS_NAME);
51         pageContext.setAttribute("osVersion", SystemUtils.OS_VERSION);
52         pageContext.setAttribute("osArch", SystemUtils.OS_ARCH);
53         pageContext.setAttribute("maxMemory", Runtime.getRuntime().maxMemory()/(1024*1024));
54         pageContext.setAttribute("usedMemory", (Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())/(1024*1024));
55     }
56     
57     @ActionMethod(successView = "console/jndi.vhtml")
58     public void doGetJNDI(InvocationContext invocationContext) throws Exception JavaDoc{
59         NamingEnumeration JavaDoc<Binding JavaDoc> enu = getEJBContainer().getNamingContext().listBindings("");
60         PageContext pageContext = invocationContext.getPageContext();
61         List JavaDoc<Binding JavaDoc> bindings = new ArrayList JavaDoc<Binding JavaDoc>();
62         while(enu.hasMoreElements()){
63             bindings.add(enu.nextElement());
64         }
65         
66         Collections.sort(bindings, new Comparator JavaDoc<Binding JavaDoc>(){
67             public int compare(Binding JavaDoc o1, Binding JavaDoc o2) {
68                 return o1.getName().compareTo(o2.getName());
69             }
70         });
71
72         pageContext.setAttribute("bindings", bindings);
73     }
74
75     @ActionMethod(successView = "console/ejb.vhtml")
76     public void doGetContainer(InvocationContext invocationContext) throws Exception JavaDoc{
77         PageContext pageContext = invocationContext.getPageContext();
78         EJBContainer container = getEJBContainer();
79         int defaultTransactionTimeout = container.getTransactionTimeout();
80         List JavaDoc<EJBBucket> buckets = new ArrayList JavaDoc<EJBBucket>(container.listBuckets());
81         Collections.sort(buckets, new Comparator JavaDoc<EJBBucket>(){
82             public int compare(EJBBucket o1, EJBBucket o2) {
83                 if(o1.getModule().getName().equals(o2.getModule().getName())) {
84                     return o1.getEJBName().compareTo(o2.getEJBName());
85                 }
86                 else {
87                     return o1.getModule().getName().compareTo(o2.getModule().getName());
88                 }
89             }
90         });
91         pageContext.setAttribute("defaultTransactionTimeout", defaultTransactionTimeout);
92         pageContext.setAttribute("buckets", buckets);
93     }
94
95     @ActionMethod(successView = "console/jpa.vhtml")
96     public void doGetJPA(InvocationContext invocationContext) throws Exception JavaDoc{
97         //DataSource, NamedNativeQuery, PersistenceUnit
98
// EntityManagerFactoryBuilder emfBuilder = getEntityManagerFactoryBuilder();
99
Collection JavaDoc<EntityManagerFactoryImpl> entityManagerFactories = EntityManagerFactoryBuilderImpl.getEntityManagerFactories();
100
101 /*
102         List<Cache> caches = new ArrayList<Cache>();
103         for(EntityManagerFactoryImpl emfactory : entityManagerFactories){
104             Collection<CacheConfig> cacheConfigs = emfactory.getCacheConfigs();
105             for(CacheConfig cacheConfig : cacheConfigs){
106                 Collection<Cache> _caches = cacheConfig.getAllCaches();
107                 caches.addAll(_caches);
108             }
109         }
110 */

111
112         PageContext pageContext = invocationContext.getPageContext();
113         pageContext.setAttribute("entityManagerFactories", entityManagerFactories);
114         pageContext.setAttribute("namedSQLTemplates", EntityManagerFactoryBuilderImpl.getNamedSQLTemplates());
115 // pageContext.setAttribute("caches", caches);
116

117     }
118
119     @ActionMethod(successView = "console/module.vhtml")
120     public void doGetModules(InvocationContext invocationContext) throws Exception JavaDoc{
121         Framework framework = WebContextLoader.getManagedFramework();
122         Module systemModule = framework.getSystemModule();
123         List JavaDoc<Module> allModules = framework.getAllModules();
124
125         List JavaDoc<Module> modules = new ArrayList JavaDoc<Module>(allModules.size()+1);
126         modules.add(systemModule);
127         modules.addAll(allModules);
128         PageContext pageContext = invocationContext.getPageContext();
129         pageContext.setAttribute("modules", modules);
130     }
131
132     @ActionMethod(successView = "console/testconnectionresult.vhtml", errorView = "console/testconnectionresult.vhtml",invocationClass = TestConnectionInvocation.class)
133     public void doGetTestConnection(InvocationContext invocationContext) throws Exception JavaDoc {
134         TestConnectionInvocation invocation = (TestConnectionInvocation)invocationContext.getInvocation();
135         String JavaDoc unitName = invocation.getUnitName();
136         PageContext pageContext = invocationContext.getPageContext();
137         pageContext.setAttribute("unitName", unitName);
138         EntityManagerFactoryBuilderImpl.getEntityManagerFactoryByName(unitName).checkConnection();
139     }
140
141     @ActionMethod(successView = "console.jpa.do", targetMethod = ActionMethod.TargetMethod.REDIRECT, invocationClass = TestConnectionInvocation.class)
142     public void doGetClearCacheConfig(InvocationContext invocationContext) throws Exception JavaDoc {
143         TestConnectionInvocation invocation = (TestConnectionInvocation)invocationContext.getInvocation();
144         String JavaDoc unitName = invocation.getUnitName();
145         EntityManagerFactoryBuilderImpl.getEntityManagerFactoryByName(unitName).clearCache();
146     }
147
148     @ActionMethod(successView = "console/jpa.vhtml",invocationClass = TestConnectionInvocation.class)
149     public void doGetClearCache(InvocationContext invocationContext) throws Exception JavaDoc {
150 /*
151         TestConnectionInvocation invocation = (TestConnectionInvocation)invocationContext.getInvocation();
152         String unitName = invocation.getUnitName();
153         EntityManagerFactoryBuilderImpl.getEntityManagerFactoryByName(unitName).clearCache();
154         doGetJPA(invocationContext);
155 */

156     }
157
158
159     private EJBContainer getEJBContainer(){
160         Framework framework = WebContextLoader.getManagedFramework();
161         Collection JavaDoc<EJBContainer> containers = framework.getSystemModule().findComponentByInterface(EJBContainer.class);
162         return containers.iterator().next();
163     }
164
165     private EntityManagerFactoryBuilder getEntityManagerFactoryBuilder(){
166         Framework framework = WebContextLoader.getManagedFramework();
167         Collection JavaDoc<EntityManagerFactoryBuilder> entityManagerFactoryBuilders = framework.getSystemModule().findComponentByInterface(EntityManagerFactoryBuilder.class);
168         return entityManagerFactoryBuilders.iterator().next();
169     }
170
171     public static class TestConnectionInvocation extends Invocation {
172         @StringValidation(nullable = false)
173         private String JavaDoc unitName;
174
175         public String JavaDoc getUnitName() {
176             return unitName;
177         }
178
179         public void setUnitName(String JavaDoc unitName) {
180             this.unitName = unitName;
181         }
182     }
183
184     public static void main(String JavaDoc[] args) {
185
186     }
187 }
188
Popular Tags