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