KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > install > forms > ConfigureUserDatabaseForm


1 package com.sslexplorer.install.forms;
2
3 import java.util.Arrays JavaDoc;
4 import java.util.Calendar JavaDoc;
5
6 import javax.servlet.http.HttpServletRequest JavaDoc;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10 import org.apache.struts.action.ActionMapping;
11
12 import com.sslexplorer.boot.PropertyClass;
13 import com.sslexplorer.boot.PropertyClassManager;
14 import com.sslexplorer.core.CoreServlet;
15 import com.sslexplorer.core.UserDatabaseManager;
16 import com.sslexplorer.jdbc.JDBCUserDatabase;
17 import com.sslexplorer.properties.Property;
18 import com.sslexplorer.properties.PropertyItem;
19 import com.sslexplorer.properties.impl.realms.RealmKey;
20 import com.sslexplorer.properties.impl.realms.RealmProperties;
21 import com.sslexplorer.realms.DefaultRealm;
22 import com.sslexplorer.realms.Realm;
23 import com.sslexplorer.security.UserDatabase;
24 import com.sslexplorer.security.UserDatabaseDefinition;
25 import com.sslexplorer.wizard.AbstractWizardSequence;
26 import com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm;
27
28
29 /**
30  * Implementation of {@link AbstractWizardPropertiesForm} that allows the
31  * installer to configure the selected user database.
32  *
33  * @author Brett Smith <a HREF="mailto: brett@3sp.com">&lt;brett@3sp.com&gt;</a>
34  */

35 public class ConfigureUserDatabaseForm extends AbstractWizardPropertiesForm {
36     
37     
38     final static Log log = LogFactory.getLog(ConfigureUserDatabaseForm.class);
39     
40     private UserDatabaseDefinition userDatabaseDefinition;
41
42     /**
43      * Constructor.
44      *
45      */

46     public ConfigureUserDatabaseForm() {
47         super(Arrays.asList(new PropertyClass[] { PropertyClassManager.getInstance().getPropertyClass(RealmProperties.NAME) } ));
48     }
49
50     /* (non-Javadoc)
51      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getParentCategory()
52      */

53     public int getParentCategory() {
54         return userDatabaseDefinition.getInstallationCategory();
55     }
56
57     /* (non-Javadoc)
58      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getNextAvailable()
59      */

60     public boolean getNextAvailable() {
61         return true;
62     }
63
64     /* (non-Javadoc)
65      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getPreviousAvailable()
66      */

67     public boolean getPreviousAvailable() {
68         return true;
69     }
70
71     /* (non-Javadoc)
72      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getFinishAvailable()
73      */

74     public boolean getFinishAvailable() {
75         return false;
76     }
77
78     /* (non-Javadoc)
79      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getPage()
80      */

81     public String JavaDoc getPage() {
82         return "/WEB-INF/jsp/content/install/configureUserDatabase.jspf";
83     }
84
85     /* (non-Javadoc)
86      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getResourcePrefix()
87      */

88     public String JavaDoc getResourcePrefix() {
89         return "installation.configureUserDatabase";
90     }
91
92     /* (non-Javadoc)
93      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getResourceBundle()
94      */

95     public String JavaDoc getResourceBundle() {
96         return "install";
97     }
98
99     /* (non-Javadoc)
100      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getPageName()
101      */

102     public String JavaDoc getPageName() {
103         return "configureUserDatabase";
104     }
105
106     /* (non-Javadoc)
107      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#getFocussedField()
108      */

109     public String JavaDoc getFocussedField() {
110         return "";
111     }
112
113     /* (non-Javadoc)
114      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#reset(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest)
115      */

116     public void reset(ActionMapping mapping, HttpServletRequest JavaDoc request) {
117         super.reset(mapping, request);
118         
119         /* Determine the currently selected user database so it can be used to determine the
120          * category to display
121          */

122         AbstractWizardSequence seq = getWizardSequence(request);
123         String JavaDoc udbName = (String JavaDoc)seq.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE, JDBCUserDatabase.DATABASE_TYPE);
124         userDatabaseDefinition = UserDatabaseManager.getInstance().getUserDatabaseDefinition(udbName);
125     }
126
127     public boolean getAutocomplete() {
128         return false;
129     }
130
131     /* (non-Javadoc)
132      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#init(com.sslexplorer.wizard.AbstractWizardSequence)
133      */

134     public void init(AbstractWizardSequence sequence, HttpServletRequest JavaDoc request) throws Exception JavaDoc {
135         super.init(sequence, request);
136     }
137
138     /* (non-Javadoc)
139      * @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#apply(com.sslexplorer.wizard.AbstractWizardSequence)
140      */

141     public void apply(AbstractWizardSequence sequence) throws Exception JavaDoc {
142         // First shutdown the user databae
143
super.apply(sequence);
144         
145         // Get the chosen user database
146
UserDatabase currentUdb = (UserDatabase)sequence.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE_INSTANCE, null);
147         
148         // The realm is only available in the user database once it has been opened
149
Realm realm = currentUdb.getRealm();
150         if(realm == null) {
151             Calendar JavaDoc now = Calendar.getInstance();
152             realm = new DefaultRealm((String JavaDoc)sequence.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE, null), 1, UserDatabaseManager.DEFAULT_REALM_NAME, UserDatabaseManager.DEFAULT_REALM_DESCRIPTION, now, now);
153         }
154
155         /* The properties have to be persisted now so the
156          * user database uses the next settings.
157          */

158         PropertyItem[] items = getPropertyItems();
159         for(int i = 0 ; i < items.length; i++) {
160             Property.setProperty(new RealmKey(items[i].getDefinition().getName(), realm), items[i].getPropertyValue().toString(), null);
161         }
162         
163         // Now try and open the database to make sure the configuration is correct
164
if(currentUdb.isOpen()) {
165             currentUdb.close();
166         }
167         currentUdb.open(CoreServlet.getServlet(), realm);
168     }
169
170     public int getStepIndex() {
171         return 2;
172     }
173 }
174
Popular Tags