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; +}