Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-jforum/src/java/org/jahia/portlet/jforum
In directory james.mmbase.org:/tmp/cvs-serv24724/org/jahia/portlet/jforum

Modified Files:
        JForumPortletBridge.java 
Log Message:
CMSC-915,JForum: externalize database and other configuration settings to the 
context files


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-jforum/src/java/org/jahia/portlet/jforum
See also: http://www.mmbase.org/jira/browse/CMSC-915


Index: JForumPortletBridge.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-jforum/src/java/org/jahia/portlet/jforum/JForumPortletBridge.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- JForumPortletBridge.java    18 Jan 2008 11:00:31 -0000      1.2
+++ JForumPortletBridge.java    30 May 2008 07:53:49 -0000      1.3
@@ -1,12 +1,18 @@
 package org.jahia.portlet.jforum;
 
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
 import javax.portlet.*;
 import javax.servlet.*;
+import javax.sql.DataSource;
 
 import net.jforum.*;
 import net.jforum.entities.UserSession;
 import net.jforum.sso.RemoteUserSSO;
 
+import java.sql.Connection;
+import java.sql.SQLException;
 import java.util.*;
 
 import net.jforum.util.preferences.SystemGlobals;
@@ -14,13 +20,22 @@
 import net.jforum.util.legacy.commons.fileupload.disk.*;
 import net.jforum.util.legacy.commons.fileupload.servlet.*;
 import net.jforum.util.legacy.commons.fileupload.*;
+import net.jforum.view.install.InstallAction;
+
+import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 
 import java.io.*;
 
 import org.jahia.portlet.fileupload.PortletRequestContext;
+import org.mmbase.module.core.MMBase;
+import org.mmbase.storage.StorageManagerFactory;
+import 
org.mmbase.storage.implementation.database.DatabaseStorageManagerFactory;
+
 import com.finalist.cmsc.portlets.CmscPortlet;
 
+import freemarker.template.SimpleHash;
+
 /**
  * Portlet Brigde for JForum
  *
@@ -190,7 +205,7 @@
                 // default case of : Install wizard
                 defaultRequestUri = "install/install.page";
                 defaultModule = "install";
-                defaultAction = "welcome";
+                defaultAction = "finished";
             }
 
             //call JForum service method
@@ -440,18 +455,27 @@
     private void callServletServiceMethod(RenderRequest request, 
RenderResponse response, String defaultRequestUri, String defaultModule, String 
defaultAction, String postBody) {
         // deal with file upload
         synchFileUpload(request);
-        //logRequestAttributes(request);
-        // build HttpServletRequest/response object
-        HttpServletRequestWrapper reqW = new 
HttpServletRequestWrapper(request, defaultRequestUri, defaultModule, 
defaultAction, HttpServletRequestWrapper.HTTP_GET, postBody);
-        HttpServletResponseWrapper respW = new 
HttpServletResponseWrapper(response);
 
+        HttpServletResponseWrapper respW = new 
HttpServletResponseWrapper(response);
+        HttpServletRequestWrapper reqW = new 
HttpServletRequestWrapper(request, defaultRequestUri, defaultModule, 
defaultAction, HttpServletRequestWrapper.HTTP_GET, postBody);
+        if(defaultModule.equals("install")) {
+           Locale locale = 
(Locale)(request.getPortletSession().getAttribute("javax.servlet.jsp.jstl.fmt.locale.session"));
+           String language = "en_US";
+           String charset = 
(String)request.getPortletSession().getAttribute("javax.servlet.jsp.jstl.fmt.request.charset");
+
+           if(!locale.getLanguage().equals("en") && 
StringUtils.isEmpty(locale.getCountry())) {
+              locale = Locale.getDefault();
+              language = locale.getLanguage()+"_"+locale.getCountry();
+           }
+           install(respW, reqW,language,charset);
+        }
         // get servlet object
         Servlet instance = (Servlet) 
getPortletContext().getAttribute(JFORUM_KEY);
 
-
         try {
             // call service method
             // isRedirect = false;
+                       
             instance.service(reqW, respW);
             boolean isRedirect = respW.isRedirect();
             if (isRedirect) {
@@ -476,6 +500,52 @@
         }
     }
 
+
+   private void install(HttpServletResponseWrapper respW, 
HttpServletRequestWrapper reqW,String language,String charset) {
+
+           reqW.setAttribute("language", language);
+           reqW.setAttribute("database", "mysql");
+           reqW.setAttribute("dbencoding", 
StringUtils.isEmpty(charset)?"utf-8":charset);
+           reqW.setAttribute("dbencoding_other", "");
+           reqW.setAttribute("use_pool", "true");
+           reqW.setAttribute("forum_link", "");
+           reqW.setAttribute("admin_pass1", "admin2k");
+           reqW.setAttribute("db_connection_type", "ds");
+           reqW.setAttribute("site_link", "");
+           reqW.setAttribute("dbdatasource", "java:comp/env/jdbc/jforum");
+           try {
+
+             ActionServletRequest reqAW1 = new ActionServletRequest(reqW);
+             JForumContext jforumcontext = new JForumContext(reqW
+                  .getContextPath(), SystemGlobals
+                  .getValue(ConfigKeys.SERVLET_EXTENSION), reqW, respW, false);
+
+             reqAW1.setJForumContext(jforumcontext);
+
+             JForumExecutionContext ex = JForumExecutionContext.get();
+             ex.setResponse(respW);
+             ex.setRequest(reqAW1);
+
+            // Assigns the information to user's thread
+             JForumExecutionContext.set(ex);
+
+             // Context
+             SimpleHash context = JForumExecutionContext.getTemplateContext();
+
+             InstallAction command;
+
+             command = new InstallAction(reqAW1, context);
+             command.checkInformation();
+             command.doInstall();
+         } 
+         catch (IOException e) {
+            logger.debug("install io error: " +e.getMessage());
+         } 
+         catch (Exception e) {
+            logger.debug("install error: " + e.getMessage());
+         }
+   }
+
     private void logRequestAttributes(RenderRequest request) {
         Enumeration enume = request.getAttributeNames();
         while (enume.hasMoreElements()) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to