You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2010/07/25 08:02:04 UTC
svn commit: r978986 - in
/continuum/trunk/continuum-buildagent/continuum-buildagent-webdav: ./
src/main/java/org/apache/continuum/webdav/
src/main/java/org/apache/continuum/webdav/util/
src/test/java/org/apache/continuum/webdav/
Author: ctan
Date: Sun Jul 25 06:02:03 2010
New Revision: 978986
URL: http://svn.apache.org/viewvc?rev=978986&view=rev
Log:
[CONTINUUM-2545] do not write content as html when dav resource is a collection
Added:
continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResource.java
Modified:
continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/pom.xml
continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResource.java
continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResourceFactory.java
continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/util/IndexWriter.java
continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResourceFactory.java
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/pom.xml?rev=978986&r1=978985&r2=978986&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/pom.xml (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/pom.xml Sun Jul 25 06:02:03 2010
@@ -33,6 +33,10 @@
<artifactId>continuum-buildagent-core</artifactId>
</dependency>
<dependency>
+ <groupId>org.codehaus.redback</groupId>
+ <artifactId>plexus-spring</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-webdav</artifactId>
</dependency>
@@ -77,4 +81,21 @@
<scope>test</scope>
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>generate</id>
+ <phase>generate-resources</phase>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</project>
\ No newline at end of file
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResource.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResource.java?rev=978986&r1=978985&r2=978986&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResource.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResource.java Sun Jul 25 06:02:03 2010
@@ -194,6 +194,11 @@ public class ContinuumBuildAgentDavResou
return null;
}
+ public String getLogicalResource()
+ {
+ return logicalResource;
+ }
+
public DavResourceIterator getMembers()
{
List<DavResource> list = new ArrayList<DavResource>();
@@ -227,6 +232,11 @@ public class ContinuumBuildAgentDavResou
return new DavResourceIteratorImpl( list );
}
+ public MimetypesFileTypeMap getMimeTypes()
+ {
+ return mimeTypes;
+ }
+
public long getModificationTime()
{
return localResource.lastModified();
@@ -336,11 +346,6 @@ public class ContinuumBuildAgentDavResou
IOUtils.closeQuietly( is );
}
}
- else if ( outputContext.hasStream() )
- {
- IndexWriter writer = new IndexWriter( this, localResource, logicalResource );
- writer.write( outputContext );
- }
}
public void unlock( String lockTocken )
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResourceFactory.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResourceFactory.java?rev=978986&r1=978985&r2=978986&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResourceFactory.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/ContinuumBuildAgentDavResourceFactory.java Sun Jul 25 06:02:03 2010
@@ -37,6 +37,9 @@ import org.apache.jackrabbit.webdav.DavS
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * @plexus.component role="org.apache.continuum.webdav.ContinuumBuildAgentDavResourceFactory"
+ */
public class ContinuumBuildAgentDavResourceFactory
implements DavResourceFactory
{
@@ -79,9 +82,7 @@ public class ContinuumBuildAgentDavResou
}
else
{
- DavResource resource = new ContinuumBuildAgentDavResource( resourceFile.getAbsolutePath(), logicalResource,
- davSession, continuumLocator, this, mimeTypes );
- return resource;
+ return createResource( resourceFile, logicalResource, davSession, continuumLocator );
}
}
@@ -114,10 +115,7 @@ public class ContinuumBuildAgentDavResou
}
else
{
- DavResource resource = new ContinuumBuildAgentDavResource( resourceFile.getAbsolutePath(), logicalResource,
- request.getDavSession(), continuumLocator, this,
- mimeTypes );
- return resource;
+ return createResource( resourceFile, logicalResource, request.getDavSession(), continuumLocator );
}
}
@@ -126,6 +124,11 @@ public class ContinuumBuildAgentDavResou
return buildAgentConfigurationService;
}
+ public MimetypesFileTypeMap getMimeTypes()
+ {
+ return mimeTypes;
+ }
+
public void setBuildAgentConfigurationService( BuildAgentConfigurationService buildAgentConfigurationService )
{
this.buildAgentConfigurationService = buildAgentConfigurationService;
@@ -162,4 +165,11 @@ public class ContinuumBuildAgentDavResou
return new File( workingDir, logicalResource );
}
+
+ protected DavResource createResource( File resourceFile, String logicalResource, DavSession session,
+ ContinuumBuildAgentDavResourceLocator locator )
+ {
+ return new ContinuumBuildAgentDavResource( resourceFile.getAbsolutePath(), logicalResource, session,
+ locator, this, mimeTypes );
+ }
}
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/util/IndexWriter.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/util/IndexWriter.java?rev=978986&r1=978985&r2=978986&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/util/IndexWriter.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/main/java/org/apache/continuum/webdav/util/IndexWriter.java Sun Jul 25 06:02:03 2010
@@ -52,15 +52,15 @@ public class IndexWriter
public void write( OutputContext outputContext )
{
- outputContext.setModificationTime(new Date().getTime());
- outputContext.setContentType("text/html");
- outputContext.setETag("");
+ outputContext.setModificationTime( new Date().getTime() );
+ outputContext.setContentType( "text/html" );
+ outputContext.setETag( "" );
if ( outputContext.hasStream() )
{
PrintWriter writer = new PrintWriter( outputContext.getOutputStream() );
writeDocumentStart( writer );
- writeHyperlinks(writer);
- writeDocumentEnd(writer);
+ writeHyperlinks( writer );
+ writeDocumentEnd( writer );
writer.flush();
writer.close();
}
Added: continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResource.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResource.java?rev=978986&view=auto
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResource.java (added)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResource.java Sun Jul 25 06:02:03 2010
@@ -0,0 +1,73 @@
+package org.apache.continuum.webdav;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import javax.activation.MimetypesFileTypeMap;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.continuum.webdav.util.IndexWriter;
+import org.apache.jackrabbit.webdav.DavResourceFactory;
+import org.apache.jackrabbit.webdav.DavSession;
+import org.apache.jackrabbit.webdav.io.OutputContext;
+
+public class MockContinuumBuildAgentDavResource
+ extends ContinuumBuildAgentDavResource
+{
+ public MockContinuumBuildAgentDavResource( String localResource, String logicalResource, DavSession session,
+ ContinuumBuildAgentDavResourceLocator locator,
+ DavResourceFactory factory, MimetypesFileTypeMap mimeTypes )
+ {
+ super( localResource, logicalResource, session, locator, factory, mimeTypes );
+ }
+
+ @Override
+ public void spool( OutputContext outputContext )
+ throws IOException
+ {
+ if ( !isCollection() )
+ {
+ outputContext.setContentLength( getLocalResource().length() );
+ outputContext.setContentType( getMimeTypes().getContentType( getLocalResource() ) );
+ }
+
+ if ( !isCollection() && outputContext.hasStream() )
+ {
+ FileInputStream is = null;
+ try
+ {
+ // Write content to stream
+ is = new FileInputStream( getLocalResource() );
+ IOUtils.copy( is, outputContext.getOutputStream() );
+ }
+ finally
+ {
+ IOUtils.closeQuietly( is );
+ }
+ }
+ else if ( outputContext.hasStream() )
+ {
+ IndexWriter writer = new IndexWriter( this, getLocalResource(), getLogicalResource() );
+ writer.write( outputContext );
+ }
+ }
+}
Modified: continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResourceFactory.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResourceFactory.java?rev=978986&r1=978985&r2=978986&view=diff
==============================================================================
--- continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResourceFactory.java (original)
+++ continuum/trunk/continuum-buildagent/continuum-buildagent-webdav/src/test/java/org/apache/continuum/webdav/MockContinuumBuildAgentDavResourceFactory.java Sun Jul 25 06:02:03 2010
@@ -22,6 +22,9 @@ package org.apache.continuum.webdav;
import java.io.File;
import java.io.IOException;
+import org.apache.jackrabbit.webdav.DavResource;
+import org.apache.jackrabbit.webdav.DavSession;
+
public class MockContinuumBuildAgentDavResourceFactory
extends ContinuumBuildAgentDavResourceFactory
{
@@ -31,6 +34,14 @@ public class MockContinuumBuildAgentDavR
return new File( getWorkingDirectory( projectId ), logicalResource );
}
+ @Override
+ protected DavResource createResource( File resourceFile, String logicalResource, DavSession session,
+ ContinuumBuildAgentDavResourceLocator locator )
+ {
+ return new MockContinuumBuildAgentDavResource( resourceFile.getAbsolutePath(), logicalResource, session,
+ locator, this, getMimeTypes() );
+ }
+
private File getWorkingDirectory( int projectId )
{
String basedir = System.getProperty( "basedir" );