shuber      2005/06/01 18:47:56 CEST

  Modified files:
    .                    README 
    core                 maven.xml 
    core/src/java/org/jahia/bin 
                                JetspeedDataSourceConfigurator.java 
    core/src/java/org/jahia/services/database 
                                              ConnectionDispenser.java 
    core/src/webapp/WEB-INF/var/db mysql.script 
  Log:
  Had to rewrite all the context descriptor handling code as Tomcat 5.5 changed 
the format of the <resource> tag between version 5.0 and 5.5
  ---> MAKE SURE you set your catalina.version.major=5.5 if using Tomcat 5.5 or 
Jahia will not install properly !
  
  Revision  Changes    Path
  1.69      +4 -0      jahia/README
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/README.diff?r1=1.68&r2=1.69&f=h
  1.27      +20 -2     jahia/core/maven.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/maven.xml.diff?r1=1.26&r2=1.27&f=h
  1.3       +48 -63    
jahia/core/src/java/org/jahia/bin/JetspeedDataSourceConfigurator.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/bin/JetspeedDataSourceConfigurator.java.diff?r1=1.2&r2=1.3&f=h
  1.6       +1 -0      
jahia/core/src/java/org/jahia/services/database/ConnectionDispenser.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/database/ConnectionDispenser.java.diff?r1=1.5&r2=1.6&f=h
  1.4       +1 -0      jahia/core/src/webapp/WEB-INF/var/db/mysql.script
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/WEB-INF/var/db/mysql.script.diff?r1=1.3&r2=1.4&f=h
  
  
  
  Index: README
  ===================================================================
  RCS file: /home/cvs/repository/jahia/README,v
  retrieving revision 1.68
  retrieving revision 1.69
  diff -u -r1.68 -r1.69
  --- README    25 Jan 2005 14:35:11 -0000      1.68
  +++ README    1 Jun 2005 16:47:55 -0000       1.69
  @@ -51,6 +51,10 @@
          
            catalina.home.dir=PATH_TO_YOUR_TOMCAT_HOME_DIRECTORY
            catalina.version.major=YOUR_TOMCAT_MAJOR_VERSION (4, 5, etc...)
  +       
  +       If you are using Tomcat 5.5 or more recent, make sure you put
  +         catalina.version.major=5.5
  +       As there were important changes introduced in this version.
            
          For example, here are values for a Tomcat 4.1.27 installation : 
   
  
  
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/repository/jahia/core/maven.xml,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- maven.xml 31 May 2005 16:49:58 -0000      1.26
  +++ maven.xml 1 Jun 2005 16:47:55 -0000       1.27
  @@ -14,16 +14,23 @@
         </copy>
         <j:set var="catalina_version_major" value="${catalina.version.major}"/>
         <j:choose>
  +        <j:when test="${catalina_version_major == '5.5'}" >
  +          <j:set var="context_file" 
value="./src/conf/metadata/jahia-tomcat5.5.xml"/>
  +          <j:set var="context_dir" 
value="${catalina.home.dir}/conf/Catalina/localhost"/>
  +          <j:set var="use_contextclassloader" 
value='useContextClassLoader="false"'/>
  +        </j:when>
           <j:when test="${catalina_version_major == '5'}" >
  +          <j:set var="context_file" 
value="./src/conf/metadata/jahia-tomcat5.xml"/>
             <j:set var="context_dir" 
value="${catalina.home.dir}/conf/Catalina/localhost"/>
             <j:set var="use_contextclassloader" 
value='useContextClassLoader="false"'/>
           </j:when>
           <j:otherwise>
  +          <j:set var="context_file" value="./src/conf/metadata/jahia.xml"/>
             <j:set var="context_dir" value="${deploy.war.dir}"/>
             <j:set var="use_contextclassloader" value=""/>
           </j:otherwise>
         </j:choose>
  -     <copy file="./src/conf/metadata/jahia.xml" 
tofile="${context_dir}/jahia.xml"/>
  +     <copy file="${context_file}" tofile="${context_dir}/jahia.xml"/>
     </goal>
   
     <!-- ================================================================ -->
  @@ -33,21 +40,32 @@
     <goal name="deploy:tomcat" 
prereqs="jahia:deploy-tomcat,jahia:deploy-shared-libs">
         <j:set var="catalina_version_major" value="${catalina.version.major}"/>
         <j:choose>
  +        <j:when test="${catalina_version_major == '5.5'}" >
  +          <j:set var="context_file" 
value="./src/conf/metadata/jahia-tomcat5.5.xml"/>
  +          <j:set var="context_dir" 
value="${catalina.home.dir}/conf/Catalina/localhost"/>
  +          <j:set var="use_contextclassloader" 
value='useContextClassLoader="false"'/>
  +        </j:when>
           <j:when test="${catalina_version_major == '5'}" >
  +          <j:set var="context_file" 
value="./src/conf/metadata/jahia-tomcat5.xml"/>
             <j:set var="context_dir" 
value="${catalina.home.dir}/conf/Catalina/localhost"/>
             <j:set var="use_contextclassloader" 
value='useContextClassLoader="false"'/>
           </j:when>
           <j:otherwise>
  +          <j:set var="context_file" value="./src/conf/metadata/jahia.xml"/>
             <j:set var="context_dir" value="${deploy.war.dir}"/>
             <j:set var="use_contextclassloader" value=""/>
           </j:otherwise>
         </j:choose>
  -     <copy file="./src/conf/metadata/jahia.xml" 
tofile="${context_dir}/jahia.xml"/>
  +     <copy file="${context_file}" tofile="${context_dir}/jahia.xml"/>
     </goal>
   
     <goal name="undeploy:tomcat" 
prereqs="jahia:undeploy-tomcat,jahia:undeploy-shared-libs">
         <j:set var="catalina_version_major" value="${catalina.version.major}"/>
         <j:choose>
  +        <j:when test="${catalina_version_major == '5.5'}" >
  +          <j:set var="context_dir" 
value="${catalina.home.dir}/conf/Catalina/localhost"/>
  +          <j:set var="use_contextclassloader" 
value='useContextClassLoader="false"'/>
  +        </j:when>
           <j:when test="${catalina_version_major == '5'}" >
             <j:set var="context_dir" 
value="${catalina.home.dir}/conf/Catalina/localhost"/>
             <j:set var="use_contextclassloader" 
value='useContextClassLoader="false"'/>
  
  
  
  Index: JetspeedDataSourceConfigurator.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/bin/JetspeedDataSourceConfigurator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JetspeedDataSourceConfigurator.java       30 Mar 2004 18:25:48 -0000      
1.2
  +++ JetspeedDataSourceConfigurator.java       1 Jun 2005 16:47:55 -0000       
1.3
  @@ -63,12 +63,16 @@
   import org.jdom.Element;
   import org.jdom.input.SAXBuilder;
   import org.jdom.output.XMLOutputter;
  +import org.jdom.Attribute;
  +import java.io.FileReader;
  +import java.io.BufferedReader;
  +import java.io.FileWriter;
   
   /**
    * JetspeedDataSourceConfigurator
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
  - * @version $Id: JetspeedDataSourceConfigurator.java,v 1.2 2004/03/30 
18:25:48 shuber Exp $
  + * @version $Id: JetspeedDataSourceConfigurator.java,v 1.3 2005/06/01 
16:47:55 shuber Exp $
    */
   public class JetspeedDataSourceConfigurator
   {
  @@ -83,6 +87,8 @@
       public static final String PARAM_NAME = "name";
       public static final String PARAM_VALUE = "value";
   
  +    public static final String RESOURCE = "Resource";
  +
       public static void main(String[] args)
       {
           Map values = new HashMap();
  @@ -98,74 +104,53 @@
   
       public void updateDataSourceConfiguration(String fileName, String 
outputFileName, Map values)
       {
  +
           File jahiaConfigFile = new File(fileName);
  -        if (jahiaConfigFile.exists())
  -        {
  -            SAXBuilder builder = new SAXBuilder();
  -            try
  -            {
  -                Document document = builder.build(jahiaConfigFile);
  -                if (document != null)
  -                {
  -                    Element rootElement = document.getRootElement();
  -                    if (rootElement == null)
  -                    {
  -                        logger.error("Could not find root element in 
configuration file " + jahiaConfigFile.toString());
  -                        return;
  -                    }
  -                    Element resource = rootElement.getChild(RESOURCE_PARAMS);
  -                    if (resource == null)
  -                    {
  -                        logger.error("Could not find ResourceParams child 
element in Jahia.xml configuration file " + jahiaConfigFile.toString());
  -                        return;
  -                    }
  -
  -                    Iterator params = resource.getChildren().iterator();
  -                    while (params.hasNext())
  -                    {
  -                        Element param = (Element)params.next();
  -                        Element elValue = param.getChild(PARAM_VALUE);
  -                        String name = param.getChildText(PARAM_NAME);
  -                        String value = param.getChildText(PARAM_VALUE);
  -                        if (name.equalsIgnoreCase(USERNAME))
  -                        {
  -                            elValue.setText(replaceElement(values, 
"database_user"));
  -                        }
  -                        else if (name.equalsIgnoreCase(PASSWORD))
  -                        {
  -                            elValue.setText(replaceElement(values, 
"database_pwd"));
  -                        }
  -                        else if (name.equalsIgnoreCase(URL))
  -                        {
  -                            elValue.setText(replaceElement(values, 
"database_url"));
  -                        }
  -                        else if (name.equalsIgnoreCase(DRIVER))
  -                        {
  -                            elValue.setText(replaceElement(values, 
"database_driver"));
  -                        }
  -
  -                    }
  -                    XMLOutputter serializer = new XMLOutputter();
  -                    FileOutputStream repositoryOutput = new 
FileOutputStream(outputFileName);
  -                    serializer.output(document, repositoryOutput);
  +        if (jahiaConfigFile.exists()) {
  +            // let's load the file's content in memory, assuming it won't be
  +            // too big.
  +            StringBuffer fileContentBuf = new StringBuffer();
  +            try {
  +                FileReader fileReader = new FileReader(jahiaConfigFile);
  +                BufferedReader bufReader = new BufferedReader(fileReader);
  +                int ch = -1;
  +                while ( (ch = bufReader.read()) != -1) {
  +                    fileContentBuf.append( (char) ch);
                   }
  -            }
  -            catch (org.jdom.JDOMException jdome)
  -            {
  -                logger.error("Error loading repository configuration file " 
+ jahiaConfigFile.toString(), jdome);
  -            }
  -            catch (java.io.FileNotFoundException fnfe)
  -            {
  -                logger.error("Error modifying repository config file " + 
jahiaConfigFile.toString(), fnfe);
  -            }
  -            catch (java.io.IOException ioe)
  -            {
  -                logger.error("Error modifying repository config file " + 
jahiaConfigFile.toString(), ioe);
  +                bufReader.close();
  +                fileReader.close();
  +
  +                String fileContent = fileContentBuf.toString();
  +
  +                fileContent = fileContent.replaceAll("[EMAIL PROTECTED]@",
  +                                                     (String)
  +                                                     
values.get("database_user"));
  +                fileContent = fileContent.replaceAll("[EMAIL PROTECTED]@",
  +                                                     (String)
  +                                                     
values.get("database_pwd"));
  +                fileContent = fileContent.replaceAll("[EMAIL PROTECTED]@",
  +                                                     (String)
  +                                                     
values.get("database_driver"));
  +                fileContent = fileContent.replaceAll("[EMAIL PROTECTED]@",
  +                                                     (String) values.
  +                                                     get("database_url"));
  +
  +                // we have finished replacing values, let's save the modified
  +                // file.
  +                FileWriter fileWriter = new FileWriter(jahiaConfigFile);
  +                fileWriter.write(fileContent);
  +                fileWriter.close();
  +
  +            } catch (java.io.FileNotFoundException fnfe) {
  +                logger.error("Error modifying repository config file " +
  +                             jahiaConfigFile.toString(), fnfe);
  +            } catch (java.io.IOException ioe) {
  +                logger.error("Error modifying repository config file " +
  +                             jahiaConfigFile.toString(), ioe);
               }
   
           }
       }
  -
       private String replaceElement(Map values, String key)
       {
           String replacement = (String)values.get(key);
  
  
  
  Index: ConnectionDispenser.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/database/ConnectionDispenser.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ConnectionDispenser.java  12 Apr 2005 12:36:36 -0000      1.5
  +++ ConnectionDispenser.java  1 Jun 2005 16:47:55 -0000       1.6
  @@ -19,6 +19,7 @@
   import java.util.Iterator;
   import java.util.Enumeration;
   import org.jahia.utils.BeanTools;
  +import java.util.Hashtable;
   
   /**
    * <p>Title: </p>
  
  
  
  Index: mysql.script
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/webapp/WEB-INF/var/db/mysql.script,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mysql.script      28 Feb 2005 16:10:23 -0000      1.3
  +++ mysql.script      1 Jun 2005 16:47:56 -0000       1.4
  @@ -10,5 +10,6 @@
   jahia.database.schemascriptdir = sql/schema/mysql
   jahia.database.popuplationscriptdir = sql/population
   jahia.database.starthsqlserver = false
  +#jahia.database.datasource = java:comp/env/jdbc/jetspeed
   jahia.database.datasource = 
   jahia.database.ojbplatform = MySQL
  

Reply via email to