Author: oching
Date: Tue Jul  1 22:01:08 2008
New Revision: 673280

URL: http://svn.apache.org/viewvc?rev=673280&view=rev
Log:
[MRM-810]
-implemented the Auditable for UploadAction
-cleaned up the logging config

Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java?rev=673280&r1=673279&r2=673280&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/audit/AuditEvent.java
 Tue Jul  1 22:01:08 2008
@@ -37,6 +37,8 @@
 
     public static final String MODIFY_FILE = "Modify File";
     
+    public static final String UPLOAD_FILE = "Uploaded File";
+    
     private String repositoryId;
 
     private String userId;

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java?rev=673280&r1=673279&r2=673280&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/UploadAction.java
 Tue Jul  1 22:01:08 2008
@@ -42,6 +42,9 @@
 import org.apache.maven.archiva.repository.RepositoryException;
 import org.apache.maven.archiva.repository.RepositoryNotFoundException;
 import org.apache.maven.archiva.repository.scanner.RepositoryContentConsumers;
+import org.apache.maven.archiva.repository.audit.AuditEvent;
+import org.apache.maven.archiva.repository.audit.AuditListener;
+import org.apache.maven.archiva.repository.audit.Auditable;
 import org.apache.maven.archiva.repository.metadata.MetadataTools;
 import 
org.apache.maven.archiva.repository.metadata.RepositoryMetadataException;
 import org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader;
@@ -55,6 +58,7 @@
 import org.apache.maven.archiva.security.ArchivaXworkUser;
 import org.codehaus.plexus.xwork.action.PlexusActionSupport;
 
+import com.opensymphony.webwork.ServletActionContext;
 import com.opensymphony.xwork.ActionContext;
 import com.opensymphony.xwork.Preparable;
 import com.opensymphony.xwork.Validateable;
@@ -69,7 +73,7 @@
  */
 public class UploadAction
     extends PlexusActionSupport
-    implements Validateable, Preparable
+    implements Validateable, Preparable, Auditable
 {
     /**
       * @plexus.requirement
@@ -161,6 +165,11 @@
      */
     private RepositoryContentFactory repositoryFactory;
     
+    /**
+     * @plexus.requirement 
role="org.apache.maven.archiva.repository.audit.AuditListener"
+     */
+    private List<AuditListener> auditListeners = new 
ArrayList<AuditListener>();
+    
     private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[] { 
ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 };
 
     private ProjectModelWriter pomWriter = new ProjectModel400Writer();
@@ -383,9 +392,8 @@
 
             String msg = "Artifact \'" + groupId + ":" + artifactId + ":" + 
version +
                 "\' was successfully deployed to repository \'" + repositoryId 
+ "\'";
-
-            //TODO: MRM-810 (this writes to archiva.log, should be audit.log)
-            getLogger().info( msg + " by " + getPrincipal() );
+                        
+            triggerAuditEvent( getPrincipal(), repositoryId, groupId + ":" + 
artifactId + ":" + version, AuditEvent.UPLOAD_FILE );
             
             addActionMessage( msg );
 
@@ -536,4 +544,30 @@
             addActionError( ae.getMessage() );
         }
     }
+    
+    public void addAuditListener( AuditListener listener )
+    {
+        this.auditListeners.add( listener );
+    }
+
+    public void clearAuditListeners()
+    {
+        this.auditListeners.clear();
+    }
+
+    public void removeAuditListener( AuditListener listener )
+    {
+        this.auditListeners.remove( listener );
+    }
+    
+    private void triggerAuditEvent( String user, String repositoryId, String 
resource, String action )
+    {
+        AuditEvent event = new AuditEvent( repositoryId, user, resource, 
action );
+        event.setRemoteIP( ServletActionContext.getRequest().getRemoteAddr() );
+        
+        for ( AuditListener listener : auditListeners )
+        {
+            listener.auditEvent( event );
+        }
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml?rev=673280&r1=673279&r2=673280&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/resources/log4j.xml
 Tue Jul  1 22:01:08 2008
@@ -22,16 +22,14 @@
   </appender>
 
   <!-- Help identify bugs during testing -->
-  <logger name="org.apache.maven">
-    <level value="info"/>
-  </logger>
-  
   <logger name="org.apache.maven.archiva">
-    <level value="info" />
+    <level value="info"/>
+    <appender-ref ref="rolling" />
   </logger>
   
   <logger name="org.apache.maven.archiva.repository.scanner">
     <level value="info" />
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="org.apache.archiva.AuditLog">
@@ -41,72 +39,87 @@
   
   <logger name="org.codehaus.plexus.security">
     <level value="info"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <!-- squelch noisy objects (for now) -->
   <logger name="org.apache.commons">
     <level value="warn"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="net.sf.ehcache">
     <level value="warn"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="org.codehaus.plexus.mailsender.MailSender">
     <level value="info"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="org.codehaus.plexus.velocity">
     <level value="error"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="org.quartz">
     <level value="info"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="org.apache.jasper">
     <level value="info"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="com.opensymphony.xwork">
     <level value="info"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="com.opensymphony.webwork">
     <level value="info"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="org.codehaus.plexus.PlexusContainer">
     <level value="info"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="JPOX">
     <level value="warn"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="JPOX.MetaData">
     <level value="error"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="JPOX.RDBMS.SQL">
     <level value="error"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="SQL">
     <level value="error"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger name="freemarker">
     <level value="warn"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <logger 
name="org.codehaus.plexus.component.manager.ClassicSingletonComponentManager">
     <level value="error"/>
+    <appender-ref ref="rolling" />
   </logger>
 
   <root>
     <priority value ="info" />
-    <appender-ref ref="rolling" />
   </root>
 
-</log4j:configuration>
+</log4j:configuration>
\ No newline at end of file


Reply via email to