KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jmanage > webui > util > WebContext


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

16 package org.jmanage.webui.util;
17
18 import org.jmanage.core.config.ApplicationConfig;
19 import org.jmanage.core.config.ApplicationConfigManager;
20 import org.jmanage.core.auth.User;
21 import org.jmanage.core.management.ServerConnection;
22 import org.jmanage.core.management.ServerConnector;
23 import org.jmanage.core.management.ObjectName;
24 import org.jmanage.core.management.MalformedObjectNameException;
25 import org.jmanage.core.services.ServiceContext;
26 import org.jmanage.core.services.ServiceUtils;
27 import org.jmanage.core.util.Loggers;
28
29 import javax.servlet.http.HttpServletRequest JavaDoc;
30 import javax.servlet.http.HttpSession JavaDoc;
31 import java.util.logging.Logger JavaDoc;
32
33 /**
34  *
35  * date: Jun 21, 2004
36  * @author Rakesh Kalra, Shashank Bellary
37  */

38 public class WebContext {
39
40     private static final Logger JavaDoc logger = Loggers.getLogger(WebContext.class);
41
42     private ApplicationConfig appConfig;
43     private HttpServletRequest JavaDoc request;
44     private HttpSession JavaDoc session;
45     private ServiceContext serviceContext;
46
47     private ServerConnection serverConnection;
48
49     private WebContext(HttpServletRequest JavaDoc request) {
50
51         this.request = request;
52         this.session = request.getSession();
53         final String JavaDoc appId = request.getParameter(RequestParams.APPLICATION_ID);
54         if (appId != null) {
55             appConfig =
56                     ApplicationConfigManager.getApplicationConfig(appId);
57             request.setAttribute(RequestAttributes.APPLICATION_CONFIG,
58                     appConfig);
59         }
60     }
61
62     public ApplicationConfig getApplicationConfig() {
63         return appConfig;
64     }
65
66     public ServerConnection getServerConnection(){
67         assert appConfig != null;
68         assert !appConfig.isCluster():"not supported for cluster";
69         if (serverConnection == null) {
70             serverConnection =
71                     ServerConnector.getServerConnection(appConfig);
72         }
73         return serverConnection;
74     }
75
76     public ObjectName getObjectName() {
77          return getObjectName(request);
78     }
79
80     public static ObjectName getObjectName(HttpServletRequest JavaDoc request){
81         try {
82             final String JavaDoc objectNameString =
83                     request.getParameter(RequestParams.OBJECT_NAME);
84             if(objectNameString != null){
85                 return new ObjectName(objectNameString);
86             }else{
87                 return null;
88             }
89         } catch (MalformedObjectNameException e) {
90             throw new RuntimeException JavaDoc(e);
91         }
92     }
93
94     public static WebContext get(HttpServletRequest JavaDoc request) {
95         WebContext context =
96                 (WebContext) request.getAttribute(RequestAttributes.WEB_CONTEXT);
97         if (context == null) {
98             context = new WebContext(request);
99             request.setAttribute(RequestAttributes.WEB_CONTEXT, context);
100         }
101         return context;
102     }
103
104     public void setUser(User user) {
105         session.setAttribute(RequestAttributes.AUTHENTICATED_USER, user);
106     }
107
108     public void removeUser() {
109         session.removeAttribute(RequestAttributes.AUTHENTICATED_USER);
110     }
111
112     public User getUser(){
113         return (User)session.getAttribute(RequestAttributes.AUTHENTICATED_USER);
114     }
115
116     public ServiceContext getServiceContext(){
117         if(serviceContext == null){
118             serviceContext = new ServiceContextImpl(this);
119         }
120         return serviceContext;
121     }
122
123     public void releaseResources() {
124         ServiceUtils.close(serverConnection);
125         serverConnection = null;
126     }
127 }
128
Popular Tags