You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ha...@apache.org on 2007/02/06 23:59:33 UTC

svn commit: r504356 - in /maven/sandbox/enterprise: ./ enterprise-core/ enterprise-core/src/ enterprise-core/src/main/ enterprise-core/src/main/java/ enterprise-core/src/main/java/org/ enterprise-core/src/main/java/org/apache/ enterprise-core/src/main/...

Author: handyande
Date: Tue Feb  6 14:59:31 2007
New Revision: 504356

URL: http://svn.apache.org/viewvc?view=rev&rev=504356
Log:
Start an enterprise model. Powers configuration for now.
And a wrapper to inject an instance of the model loaded from config.
Be kind - it is my first modello work

Added:
    maven/sandbox/enterprise/enterprise-core/   (with props)
    maven/sandbox/enterprise/enterprise-core/pom.xml
    maven/sandbox/enterprise/enterprise-core/src/
    maven/sandbox/enterprise/enterprise-core/src/main/
    maven/sandbox/enterprise/enterprise-core/src/main/java/
    maven/sandbox/enterprise/enterprise-core/src/main/java/org/
    maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/
    maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/maven/
    maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/maven/enterprise/
    maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/maven/enterprise/config/
    maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/maven/enterprise/config/DefaultConfig.java
    maven/sandbox/enterprise/enterprise-core/src/test/
    maven/sandbox/enterprise/enterprise-core/src/test/resources/
    maven/sandbox/enterprise/enterprise-model/   (with props)
    maven/sandbox/enterprise/enterprise-model/pom.xml
    maven/sandbox/enterprise/enterprise-model/src/
    maven/sandbox/enterprise/enterprise-model/src/main/
    maven/sandbox/enterprise/enterprise-model/src/main/mdo/
    maven/sandbox/enterprise/enterprise-model/src/main/mdo/enterprise.xml
Modified:
    maven/sandbox/enterprise/enterprise-web/pom.xml
    maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseIDiskWebDavServlet.java
    maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseWebDavServlet.java
    maven/sandbox/enterprise/pom.xml

Propchange: maven/sandbox/enterprise/enterprise-core/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Feb  6 14:59:31 2007
@@ -0,0 +1,4 @@
+target
+*.iml
+*.ipr
+*.iws

Added: maven/sandbox/enterprise/enterprise-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/enterprise/enterprise-core/pom.xml?view=auto&rev=504356
==============================================================================
--- maven/sandbox/enterprise/enterprise-core/pom.xml (added)
+++ maven/sandbox/enterprise/enterprise-core/pom.xml Tue Feb  6 14:59:31 2007
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.enterprise</groupId>
+    <artifactId>enterprise</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>enterprise-core</artifactId>
+  <name>Maven Enterprise Core</name>
+  <packaging>jar</packaging>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.maven.enterprise</groupId>
+      <artifactId>enterprise-model</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-component-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus.security</groupId>
+      <artifactId>plexus-security-ui-web-integration</artifactId>
+      <version>1.0-alpha-10-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-maven-plugin</artifactId>
+        <version>1.3</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>descriptor</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Added: maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/maven/enterprise/config/DefaultConfig.java
URL: http://svn.apache.org/viewvc/maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/maven/enterprise/config/DefaultConfig.java?view=auto&rev=504356
==============================================================================
--- maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/maven/enterprise/config/DefaultConfig.java (added)
+++ maven/sandbox/enterprise/enterprise-core/src/main/java/org/apache/maven/enterprise/config/DefaultConfig.java Tue Feb  6 14:59:31 2007
@@ -0,0 +1,99 @@
+package org.apache.maven.enterprise.config;
+
+import org.apache.maven.enterprise.model.EnterpriseConfig;
+import org.apache.maven.enterprise.model.EnterpriseWebdavConfig;
+import org.apache.maven.enterprise.model.io.xpp3.EnterpriseXpp3Reader;
+import org.apache.maven.enterprise.model.io.xpp3.EnterpriseXpp3Writer;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException;
+import org.codehaus.plexus.logging.LogEnabled;
+import org.codehaus.plexus.logging.Logger;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+
+/**
+ * A wrapper for the Enterprise config for cdc and file monitoring
+ *
+ * @uthor: Andrew Williams
+ * @version: $Id$
+ *
+ * @plexus.component role="org.apache.maven.enterprise.model.EnterpriseConfig"
+ */
+public class DefaultConfig
+    extends EnterpriseConfig
+    implements Startable, LogEnabled
+{
+    EnterpriseConfig delegate;
+
+    EnterpriseXpp3Reader reader = new EnterpriseXpp3Reader();
+
+    EnterpriseXpp3Writer writer = new EnterpriseXpp3Writer();
+
+    File configFile;
+
+    Logger logger;
+
+    public void start()
+        throws StartingException
+    {
+        String plexusHome = "";
+        try
+        {
+            plexusHome = (String) (new InitialContext()).lookup( "java:comp/env/enterprise/dataDir" );
+        }
+        catch ( NamingException e )
+        {
+            /* default to the current directory */
+        }
+
+        configFile = new File( plexusHome, "config.xml" );
+        logger.debug( "Loading config from " + configFile.getAbsolutePath() );
+
+        try
+        {
+            delegate = reader.read( new FileReader( configFile ) );
+        }
+        catch (Exception e)
+        {
+            logger.warn( "Unable to read config, creating fresh" );
+            delegate = new EnterpriseConfig();
+            delegate.setWebdav( new EnterpriseWebdavConfig() );
+        }
+    }
+
+    public void stop()
+        throws StoppingException
+    {
+        try
+        {
+            writer.write( new FileWriter( configFile ), this );
+        }
+        catch (Exception e)
+        {
+            logger.error( "Failed writing config file " + configFile.getAbsolutePath() );
+        }
+    }
+
+    public void enableLogging( Logger logger )
+    {
+        this.logger = logger;
+    }
+
+    /* wrapped EnterpiseConfig methods */
+
+
+    public EnterpriseWebdavConfig getWebdav()
+    {
+        return delegate.getWebdav();
+    }
+
+    public void setWebdav( EnterpriseWebdavConfig webdav )
+    {
+        delegate.setWebdav( webdav );    //To change body of overridden methods use File | Settings | File Templates.
+    } 
+}

Propchange: maven/sandbox/enterprise/enterprise-model/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Feb  6 14:59:31 2007
@@ -0,0 +1,4 @@
+target
+*.iml
+*.ipr
+*.iws

Added: maven/sandbox/enterprise/enterprise-model/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/enterprise/enterprise-model/pom.xml?view=auto&rev=504356
==============================================================================
--- maven/sandbox/enterprise/enterprise-model/pom.xml (added)
+++ maven/sandbox/enterprise/enterprise-model/pom.xml Tue Feb  6 14:59:31 2007
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.maven.enterprise</groupId>
+    <artifactId>enterprise</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>enterprise-model</artifactId>
+  <packaging>jar</packaging>
+  <name>Maven Enterprise Model</name>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.modello</groupId>
+        <artifactId>modello-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>modello-continuum</id>
+            <goals>
+              <goal>java</goal>
+              <goal>xpp3-reader</goal>
+              <goal>xpp3-writer</goal>
+            </goals>
+            <configuration>
+              <model>src/main/mdo/enterprise.xml</model>
+            </configuration>
+          </execution>
+        </executions>
+        <configuration>
+          <version>1.1.0</version>
+          <packageWithVersion>false</packageWithVersion>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-utils</artifactId>
+    </dependency>
+  </dependencies>
+</project>

Added: maven/sandbox/enterprise/enterprise-model/src/main/mdo/enterprise.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/enterprise/enterprise-model/src/main/mdo/enterprise.xml?view=auto&rev=504356
==============================================================================
--- maven/sandbox/enterprise/enterprise-model/src/main/mdo/enterprise.xml (added)
+++ maven/sandbox/enterprise/enterprise-model/src/main/mdo/enterprise.xml Tue Feb  6 14:59:31 2007
@@ -0,0 +1,45 @@
+<model>
+  <id>enterprise</id>
+  <name>Enterprise</name>
+  <description>Maven Enterprise configuration model</description>
+  <defaults>
+    <default>
+      <key>package</key>
+      <value>org.apache.maven.enterprise.model</value>
+    </default>
+  </defaults>
+
+  <classes>
+    <class rootElement="true">
+      <name>EnterpriseConfig</name>
+      <version>1.1.0+</version>
+      <fields>
+        <field>
+          <name>webdav</name>
+          <version>1.1.0+</version>
+          <association>
+            <type>EnterpriseWebdavConfig</type>
+          </association>
+        </field>
+      </fields>
+    </class>
+    <class>
+      <name>EnterpriseWebdavConfig</name>
+      <version>1.1.0+</version>
+      <fields>
+        <field>
+          <name>publicRepositories</name>
+          <version>1.1.0+</version>
+          <type>boolean</type>
+          <defaultValue>true</defaultValue>
+        </field>
+        <field>
+          <name>publicIDisk</name>
+          <version>1.1.0+</version>
+          <type>boolean</type>
+          <defaultValue>false</defaultValue>
+        </field>
+      </fields>
+    </class>
+  </classes>
+</model>

Modified: maven/sandbox/enterprise/enterprise-web/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/enterprise/enterprise-web/pom.xml?view=diff&rev=504356&r1=504355&r2=504356
==============================================================================
--- maven/sandbox/enterprise/enterprise-web/pom.xml (original)
+++ maven/sandbox/enterprise/enterprise-web/pom.xml Tue Feb  6 14:59:31 2007
@@ -14,6 +14,11 @@
 
   <dependencies>
     <dependency>
+      <groupId>org.apache.maven.enterprise</groupId>
+      <artifactId>enterprise-core</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
       <groupId>org.codehaus.plexus.webdav</groupId>
       <artifactId>plexus-webdav-simple</artifactId>
       <version>1.0-alpha-1-SNAPSHOT</version>

Modified: maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseIDiskWebDavServlet.java
URL: http://svn.apache.org/viewvc/maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseIDiskWebDavServlet.java?view=diff&rev=504356&r1=504355&r2=504356
==============================================================================
--- maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseIDiskWebDavServlet.java (original)
+++ maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseIDiskWebDavServlet.java Tue Feb  6 14:59:31 2007
@@ -23,8 +23,6 @@
 public class EnterpriseIDiskWebDavServlet
     extends EnterpriseWebDavServlet
 {
-    private boolean publicIDisk = false;
-
     public File getRootDirectory( ServletConfig config )
         throws ServletException
     {
@@ -117,7 +115,7 @@
         if ( isRead )
         {
             /* if the repositories are public we do not require authentication for non-idisk requests */
-            if ( publicIDisk )
+            if ( config.getWebdav().isPublicIDisk() )
             {
                 return true;
             }

Modified: maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseWebDavServlet.java
URL: http://svn.apache.org/viewvc/maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseWebDavServlet.java?view=diff&rev=504356&r1=504355&r2=504356
==============================================================================
--- maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseWebDavServlet.java (original)
+++ maven/sandbox/enterprise/enterprise-web/src/main/java/org/apache/maven/enterprise/web/EnterpriseWebDavServlet.java Tue Feb  6 14:59:31 2007
@@ -9,6 +9,7 @@
 import org.codehaus.plexus.security.policy.MustChangePasswordException;
 import org.codehaus.plexus.security.ui.web.filter.authentication.HttpAuthenticator;
 import org.codehaus.plexus.util.StringUtils;
+import org.apache.maven.enterprise.model.EnterpriseConfig;
 
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
@@ -34,7 +35,7 @@
 
     protected File enterpriseDavRoot;
 
-    private boolean publicRepositories = true;
+    protected EnterpriseConfig config;
 
     public File getRootDirectory( ServletConfig config )
         throws ServletException
@@ -84,6 +85,8 @@
         }
 
         enterpriseDavRoot = new File( plexusHome, "webdav" );
+
+        config = (EnterpriseConfig) this.lookup( "org.apache.maven.enterprise.model.EnterpriseConfig" );
     }
 
     public boolean isAuthenticated( DavServerRequest davRequest, HttpServletResponse response )
@@ -154,7 +157,7 @@
         if ( isRead )
         {
             /* if the repositories are public we do not require authentication for non-idisk requests */
-            if ( publicRepositories )
+            if ( config.getWebdav().isPublicRepositories() )
             {
                 return true;
             }

Modified: maven/sandbox/enterprise/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/enterprise/pom.xml?view=diff&rev=504356&r1=504355&r2=504356
==============================================================================
--- maven/sandbox/enterprise/pom.xml (original)
+++ maven/sandbox/enterprise/pom.xml Tue Feb  6 14:59:31 2007
@@ -21,6 +21,8 @@
   </scm>
 
   <modules>
+    <module>enterprise-model</module>
+    <module>enterprise-core</module>
     <module>enterprise-web</module>
     <module>enterprise-plexus-application</module>
     <module>enterprise-runtime</module>
@@ -46,6 +48,11 @@
         <groupId>org.codehaus.plexus</groupId> 
         <artifactId>plexus-container-default</artifactId>
         <version>1.0-alpha-17</version>
+      </dependency>
+      <dependency>
+        <groupId>org.codehaus.plexus</groupId>
+        <artifactId>plexus-utils</artifactId>
+        <version>1.4</version>
       </dependency>
     </dependencies>
   </dependencyManagement>