Author: brett
Date: Tue Jul 11 23:09:38 2006
New Revision: 421155

URL: http://svn.apache.org/viewvc?rev=421155&view=rev
Log:
save the configuration

Modified:
    
maven/repository-manager/trunk/maven-repository-configuration/src/main/java/org/apache/maven/repository/configuration/DefaultConfigurationStore.java
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/admin/ConfigureAction.java
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/WEB-INF/jsp/admin/configure.jsp
    
maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/css/site.css

Modified: 
maven/repository-manager/trunk/maven-repository-configuration/src/main/java/org/apache/maven/repository/configuration/DefaultConfigurationStore.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-configuration/src/main/java/org/apache/maven/repository/configuration/DefaultConfigurationStore.java?rev=421155&r1=421154&r2=421155&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-configuration/src/main/java/org/apache/maven/repository/configuration/DefaultConfigurationStore.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-configuration/src/main/java/org/apache/maven/repository/configuration/DefaultConfigurationStore.java
 Tue Jul 11 23:09:38 2006
@@ -17,6 +17,7 @@
  */
 
 import 
org.apache.maven.repository.configuration.io.xpp3.ConfigurationXpp3Reader;
+import 
org.apache.maven.repository.configuration.io.xpp3.ConfigurationXpp3Writer;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -24,6 +25,7 @@
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileReader;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -105,8 +107,6 @@
     public void storeConfiguration( Configuration configuration )
         throws ConfigurationStoreException
     {
-        // TODO: finish!
-
         for ( Iterator i = listeners.iterator(); i.hasNext(); )
         {
             ConfigurationChangeListener listener = 
(ConfigurationChangeListener) i.next();
@@ -114,6 +114,21 @@
             listener.notifyOfConfigurationChange( configuration );
         }
 
-        throw new UnsupportedOperationException( "Not yet implemented: 
storeConfiguration" );
+        ConfigurationXpp3Writer writer = new ConfigurationXpp3Writer();
+
+        FileWriter fileWriter = null;
+        try
+        {
+            fileWriter = new FileWriter( file );
+            writer.write( fileWriter, configuration );
+        }
+        catch ( IOException e )
+        {
+            throw new ConfigurationStoreException( e.getMessage(), e );
+        }
+        finally
+        {
+            IOUtil.close( fileWriter );
+        }
     }
 }

Modified: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/admin/ConfigureAction.java
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/admin/ConfigureAction.java?rev=421155&r1=421154&r2=421155&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/admin/ConfigureAction.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/java/org/apache/maven/repository/manager/web/action/admin/ConfigureAction.java
 Tue Jul 11 23:09:38 2006
@@ -24,8 +24,10 @@
 import org.apache.maven.repository.configuration.ConfigurationStoreException;
 import org.apache.maven.repository.indexing.RepositoryIndexException;
 import org.apache.maven.repository.indexing.RepositoryIndexSearchException;
+import org.codehaus.plexus.util.StringUtils;
 
-import java.net.MalformedURLException;
+import java.io.File;
+import java.io.IOException;
 
 /**
  * Configures the application.
@@ -47,11 +49,42 @@
     private Configuration configuration;
 
     public String execute()
-        throws MalformedURLException, RepositoryIndexException, 
RepositoryIndexSearchException,
-        ConfigurationStoreException
+        throws IOException, RepositoryIndexException, 
RepositoryIndexSearchException, ConfigurationStoreException
     {
-        // TODO! not yet implemented
-        return ERROR;
+        // TODO: if this didn't come from the form, go to configure.action 
instead of going through with re-saving what was just loaded
+
+        // Normalize the path
+        File file = new File( configuration.getRepositoryDirectory() );
+        configuration.setRepositoryDirectory( file.getCanonicalPath() );
+        if ( !file.exists() )
+        {
+            file.mkdirs();
+            // TODO: error handling when this fails
+        }
+
+        // TODO: these defaults belong in the model. They shouldn't be stored 
here, as you want them to re-default
+        // should the repository change even if these didn't
+
+        // TODO: these should be on an advanced configuration form, not the 
standard one
+        if ( StringUtils.isEmpty( configuration.getIndexPath() ) )
+        {
+            configuration.setIndexPath(
+                new File( configuration.getRepositoryDirectory(), ".index" 
).getAbsolutePath() );
+        }
+        if ( StringUtils.isEmpty( configuration.getMinimalIndexPath() ) )
+        {
+            configuration.setMinimalIndexPath(
+                new File( configuration.getRepositoryDirectory(), 
".index-minimal" ).getAbsolutePath() );
+        }
+
+        // Just double checking that our validation routines line up with what 
is expected in the configuration
+        assert configuration.isValid();
+
+        configurationStore.storeConfiguration( configuration );
+
+        addActionMessage( "Successfully saved configuration" );
+
+        return SUCCESS;
     }
 
     public String doInput()

Modified: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml?rev=421155&r1=421154&r2=421155&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/resources/xwork.xml
 Tue Jul 11 23:09:38 2006
@@ -96,7 +96,7 @@
 
     <action name="saveConfiguration" class="configureAction">
       <result name="input">/WEB-INF/jsp/admin/configure.jsp</result>
-      <!-- TODO: need a SUCCESS handler! -->
+      <result>/WEB-INF/jsp/admin/configure.jsp</result>
     </action>
   </package>
 </xwork>

Modified: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/WEB-INF/jsp/admin/configure.jsp
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/WEB-INF/jsp/admin/configure.jsp?rev=421155&r1=421154&r2=421155&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/WEB-INF/jsp/admin/configure.jsp
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/WEB-INF/jsp/admin/configure.jsp
 Tue Jul 11 23:09:38 2006
@@ -27,8 +27,9 @@
 
 <div id="contentArea">
   <div id="searchBox">
+    <ww:actionmessage />
     <ww:form method="post" action="saveConfiguration" namespace="/admin" 
validate="true">
-      <ww:textfield name="repositoryDirectory" label="Repository Directory" />
+      <ww:textfield name="repositoryDirectory" label="Repository Directory" 
size="100" />
       <ww:textfield name="discoveryCronExpression" label="Discovery Cron 
Expression" />
       <ww:submit value="Save Configuration" />
     </ww:form>

Modified: 
maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/css/site.css
URL: 
http://svn.apache.org/viewvc/maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/css/site.css?rev=421155&r1=421154&r2=421155&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/css/site.css
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-webapp/src/main/webapp/css/site.css
 Tue Jul 11 23:09:38 2006
@@ -115,3 +115,10 @@
     color: red;
     font-weight: bold;
 }
+
+.actionMessage {
+    font-weight: bold;
+}
+sage {
+    font-weight: bold;
+}


Reply via email to