prevent caching when browsing a directory

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1388705 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Olivier Lamy 2012-09-21 22:13:53 +00:00
parent 8c8f3a21ea
commit 9e37277c4a
1 changed files with 17 additions and 8 deletions

View File

@ -112,7 +112,7 @@ import java.util.Set;
/** /**
* *
*/ */
@Service ( "davResourceFactory#archiva" ) @Service ("davResourceFactory#archiva")
public class ArchivaDavResourceFactory public class ArchivaDavResourceFactory
implements DavResourceFactory, Auditable implements DavResourceFactory, Auditable
{ {
@ -145,7 +145,7 @@ public class ArchivaDavResourceFactory
* *
*/ */
@Inject @Inject
@Named ( value = "repositoryProxyConnectors#default" ) @Named (value = "repositoryProxyConnectors#default")
private RepositoryProxyConnectors connectors; private RepositoryProxyConnectors connectors;
/** /**
@ -175,7 +175,7 @@ public class ArchivaDavResourceFactory
* *
*/ */
@Inject @Inject
@Named ( value = "httpAuthenticator#basic" ) @Named (value = "httpAuthenticator#basic")
private HttpAuthenticator httpAuth; private HttpAuthenticator httpAuth;
@Inject @Inject
@ -208,7 +208,7 @@ public class ArchivaDavResourceFactory
* *
*/ */
@Inject @Inject
@Named ( value = "archivaTaskScheduler#repository" ) @Named (value = "archivaTaskScheduler#repository")
private RepositoryArchivaTaskScheduler scheduler; private RepositoryArchivaTaskScheduler scheduler;
private ApplicationContext applicationContext; private ApplicationContext applicationContext;
@ -852,10 +852,19 @@ public class ArchivaDavResourceFactory
response.setHeader( "Pragma", "no-cache" ); response.setHeader( "Pragma", "no-cache" );
response.setHeader( "Cache-Control", "no-cache" ); response.setHeader( "Cache-Control", "no-cache" );
} }
// if the resource is a directory don't cache it as new groupId deployed will be available
// We need to specify this so connecting wagons can work correctly // without need of refreshing browser
response.setDateHeader( "last-modified", resource.getModificationTime() ); if ( ( (ArchivaDavResource) resource ).getLocalResource().isDirectory() )
{
response.setHeader( "Pragma", "no-cache" );
response.setHeader( "Cache-Control", "no-cache" );
response.setDateHeader( "last-modified", new Date().getTime() );
}
else
{
// We need to specify this so connecting wagons can work correctly
response.setDateHeader( "last-modified", resource.getModificationTime() );
}
// TODO: [MRM-524] determine http caching options for other types of files (artifacts, sha1, md5, snapshots) // TODO: [MRM-524] determine http caching options for other types of files (artifacts, sha1, md5, snapshots)
} }