You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ol...@apache.org on 2008/08/30 17:31:58 UTC

svn commit: r690520 - in /continuum/trunk/continuum-webapp: ./ src/main/java/org/apache/maven/continuum/web/action/admin/ src/main/java/org/apache/maven/continuum/web/appareance/ src/main/mdo/

Author: olamy
Date: Sat Aug 30 08:31:57 2008
New Revision: 690520

URL: http://svn.apache.org/viewvc?rev=690520&view=rev
Log:
[CONTINUUM-1831] When click "save" or "cancel" button on the Appearance page (with or without making changes), get java.lang.NullPointerException error



Added:
    continuum/trunk/continuum-webapp/src/main/mdo/appearance-models.mdo   (with props)
Modified:
    continuum/trunk/continuum-webapp/pom.xml
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureFooterAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/AppareanceConfiguration.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/DefaultAppareanceConfiguration.java

Modified: continuum/trunk/continuum-webapp/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/pom.xml?rev=690520&r1=690519&r2=690520&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/pom.xml (original)
+++ continuum/trunk/continuum-webapp/pom.xml Sat Aug 30 08:31:57 2008
@@ -176,6 +176,18 @@
               <goal>java</goal>
             </goals>
           </execution>
+          <execution>
+            <id>appearence model classes</id>
+            <configuration>
+              <model>src/main/mdo/appearance-models.mdo</model>
+              <version>1.0.0</version>
+            </configuration>
+            <goals>
+              <goal>java</goal>
+              <goal>xpp3-reader</goal>
+              <goal>xpp3-writer</goal>
+            </goals>
+          </execution>          
         </executions>
       </plugin>
       <plugin>

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureFooterAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureFooterAction.java?rev=690520&r1=690519&r2=690520&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureFooterAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigureFooterAction.java Sat Aug 30 08:31:57 2008
@@ -18,9 +18,10 @@
  */
 package org.apache.maven.continuum.web.action.admin;
 
+import java.io.IOException;
+
 import org.apache.maven.continuum.web.action.component.AbstractFooterAction;
 import org.apache.maven.continuum.web.appareance.AppareanceConfiguration;
-import org.codehaus.plexus.registry.RegistryException;
 
 /**
  * @author <a href="mailto:olamy@apache.org">olamy</a>
@@ -38,7 +39,7 @@
     private AppareanceConfiguration appareanceConfiguration;
 
     public String saveFooter()
-        throws RegistryException
+        throws IOException
     {
         appareanceConfiguration.saveFooter( getFooter() );
         return SUCCESS;

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/AppareanceConfiguration.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/AppareanceConfiguration.java?rev=690520&r1=690519&r2=690520&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/AppareanceConfiguration.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/AppareanceConfiguration.java Sat Aug 30 08:31:57 2008
@@ -18,6 +18,8 @@
  */
 package org.apache.maven.continuum.web.appareance;
 
+import java.io.IOException;
+
 import org.codehaus.plexus.registry.RegistryException;
 
 /**
@@ -33,7 +35,7 @@
      * @throws RegistryException
      */
     public void saveFooter( String footerHtmlContent )
-        throws RegistryException;
+        throws IOException;
 
     /**
      * If no user configuration a default one will be user 

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/DefaultAppareanceConfiguration.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/DefaultAppareanceConfiguration.java?rev=690520&r1=690519&r2=690520&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/DefaultAppareanceConfiguration.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/appareance/DefaultAppareanceConfiguration.java Sat Aug 30 08:31:57 2008
@@ -18,13 +18,21 @@
  */
 package org.apache.maven.continuum.web.appareance;
 
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
 import java.util.Calendar;
 
+import org.apache.continuum.web.appearance.ContinuumAppearance;
+import org.apache.continuum.web.appearance.io.xpp3.ContinuumAppearanceModelsXpp3Reader;
+import org.apache.continuum.web.appearance.io.xpp3.ContinuumAppearanceModelsXpp3Writer;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
-import org.codehaus.plexus.registry.Registry;
-import org.codehaus.plexus.registry.RegistryException;
+import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author <a href="mailto:olamy@apache.org">olamy</a>
@@ -35,18 +43,14 @@
 public class DefaultAppareanceConfiguration
     implements AppareanceConfiguration, Initializable
 {
-
-    private String FOOTER_REGISTRY_KEY = "footer";
-    
-    private String REGISTRY_SECTION_KEY = "org.apache.maven.continuum.user";
+    private Logger log = LoggerFactory.getLogger( getClass() );
     
     private String footer;
     
-    /**
-     * @plexus.requirement role-hint="commons-configuration"
-     */
-    private Registry registry;
+    public static final String APPEARANCE_FILE_NAME = "continuum-appearance.xml";
     
+    private ContinuumAppearance continuumAppearance = new ContinuumAppearance(); 
+   
     // ------------------------------------------------
     //  Plexus Lifecycle
     // ------------------------------------------------
@@ -54,12 +58,32 @@
     public void initialize()
         throws InitializationException
     {
-        Registry continuumRegistry = getContinuumRegistry();
-        if (continuumRegistry != null)
+        
+        File appearanceConfFile = getAppearanceConfigurationFile();
+
+        if ( appearanceConfFile.exists() )
         {
-            this.footer = continuumRegistry.getString( FOOTER_REGISTRY_KEY );
+            try
+            {
+                ContinuumAppearanceModelsXpp3Reader appearanceReader = new ContinuumAppearanceModelsXpp3Reader();
+                this.continuumAppearance = appearanceReader.read( ReaderFactory
+                    .newXmlReader( appearanceConfFile ) );
+                if ( continuumAppearance != null )
+                {
+                    this.footer = continuumAppearance.getFooter();
+                }
+            }
+            catch ( IOException e )
+            {
+                log.warn( "skip IOException reading appearance file " + APPEARANCE_FILE_NAME + ", msg "
+                    + e.getMessage() );
+            }
+            catch ( XmlPullParserException e )
+            {
+                log.warn( "skip XmlPullParserException reading appearance file " + APPEARANCE_FILE_NAME + ", msg "
+                    + e.getMessage() );
+            }
         }
-
         if ( StringUtils.isEmpty( this.footer ) )
         {
             // initiate with default footer (save in registry ?)
@@ -79,23 +103,19 @@
      * @see org.apache.maven.continuum.web.appareance.AppareanceConfiguration#saveFooter(java.lang.String)
      */
     public void saveFooter( String footerHtmlContent )
-        throws RegistryException
+        throws IOException
     {
-        Registry continuumRegistry = getContinuumRegistry();
-        
-        continuumRegistry.setString( FOOTER_REGISTRY_KEY, footerHtmlContent );
-        continuumRegistry.save();
+        continuumAppearance.setFooter( footerHtmlContent );
+        ContinuumAppearanceModelsXpp3Writer writer = new ContinuumAppearanceModelsXpp3Writer();
+        File confFile = getAppearanceConfigurationFile();
+        if (!confFile.exists())
+        {
+            confFile.getParentFile().mkdirs();
+        }
+        writer.write( new FileWriter( confFile ), continuumAppearance );
         this.footer = footerHtmlContent;
     }
 
-    // ------------------------------------------------
-    //  Internal stuff
-    // ------------------------------------------------
-
-    private Registry getContinuumRegistry()
-    {
-        return registry.getSection( REGISTRY_SECTION_KEY );
-    }
 
     private String getDefaultFooter()
     {
@@ -110,4 +130,10 @@
         return stringBuilder.toString();
     }    
     
+    
+    private File getAppearanceConfigurationFile()
+    {
+        return new File( System.getProperty( "appserver.base" ) + File.separator + "conf" + File.separator
+            + APPEARANCE_FILE_NAME );
+    }
 }

Added: continuum/trunk/continuum-webapp/src/main/mdo/appearance-models.mdo
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/mdo/appearance-models.mdo?rev=690520&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/mdo/appearance-models.mdo (added)
+++ continuum/trunk/continuum-webapp/src/main/mdo/appearance-models.mdo Sat Aug 30 08:31:57 2008
@@ -0,0 +1,25 @@
+<model>
+  <id>continuum-appearance-models</id>
+  <name>ContinuumAppearanceModels</name>
+  <defaults>
+    <default>
+      <key>package</key>
+      <value>org.apache.continuum.web.appearance</value>
+    </default>
+  </defaults>
+  <classes>
+    <class rootElement="true">
+      <name>ContinuumAppearance</name>
+      <version>1.0.0</version>
+      <fields>
+        <field>
+          <name>footer</name>
+          <version>1.0.0</version>
+          <description></description>
+          <type>String</type>
+          <required>false</required>
+        </field>
+      </fields>
+    </class>
+  </classes>
+</model>
\ No newline at end of file

Propchange: continuum/trunk/continuum-webapp/src/main/mdo/appearance-models.mdo
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/trunk/continuum-webapp/src/main/mdo/appearance-models.mdo
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision