001 /* 002 * Copyright 2004 Niclas Hedhman. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 013 * implied. 014 * 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 019 package net.dpml.transit.monitor; 020 021 import java.io.File; 022 023 import java.net.URL; 024 025 import net.dpml.transit.Artifact; 026 027 /** 028 * Adapts cache events to logging messages. 029 * 030 * 031 * @author <a href="http://www.dpml.net">Digital Product Meta Library</a> 032 * @version 1.0.3 033 * @see net.dpml.transit.monitor.Monitor 034 */ 035 public class CacheMonitorAdapter extends AbstractAdapter 036 implements CacheMonitor 037 { 038 // ------------------------------------------------------------------------ 039 // constructor 040 // ------------------------------------------------------------------------ 041 042 /** 043 * Creation of a new adaptive cache monitor. 044 * @param adapter the adapter to assign to the monitor 045 */ 046 public CacheMonitorAdapter( Adapter adapter ) 047 { 048 super( adapter ); 049 } 050 051 // ------------------------------------------------------------------------ 052 // CacheMonitor 053 // ------------------------------------------------------------------------ 054 055 /** 056 * Notify the monitor that an artifact has been requested. 057 * @param artifact the requested artifact 058 */ 059 public void resourceRequested( Artifact artifact ) 060 { 061 } 062 063 /** 064 * Notify the monitor that an artifact has been added to the local cache. 065 * @param resource the url of the resource added to the local cache 066 * @param localFile the local file resident in the cache 067 */ 068 public void addedToLocalCache( URL resource, File localFile ) 069 { 070 } 071 072 /** 073 * Notify the monitor that an artifact in the local cache has been updated. 074 * @param resource the url of the resource updating the local cache 075 * @param localFile the local file that has been updated 076 */ 077 public void updatedLocalCache( URL resource, File localFile ) 078 { 079 } 080 081 /** 082 * Notify the monitor that an artifact has been removed from the local cache. 083 * @param resource the url of the resource removed from the local cache 084 * @param localFile the local file removed from the cache 085 */ 086 public void removedFromLocalCache( URL resource, File localFile ) 087 { 088 if( getAdapter().isDebugEnabled() ) 089 { 090 getAdapter().debug( "removed [" + localFile + "] representing [" + resource + "]" ); 091 } 092 } 093 094 /** 095 * Notify the monitor of a failed download attempt relative to an identified host. 096 * @param host the host raising the fail status 097 * @param artifact the requested artifact 098 * @param e the exception causing the failure 099 */ 100 public void failedDownloadFromHost( String host, Artifact artifact, Throwable e ) 101 { 102 if( getAdapter().isDebugEnabled() ) 103 { 104 getAdapter().debug( 105 "download failure on [" 106 + host + "] for [" 107 + artifact 108 + "] due to: " 109 + e.getMessage() ); 110 } 111 } 112 113 /** 114 * Notify the monitor of a failed download attempt. 115 * @param artifact the requested artifact 116 */ 117 public void failedDownload( Artifact artifact ) 118 { 119 if( getAdapter().isDebugEnabled() ) 120 { 121 getAdapter().warn( "failed to download " + artifact ); 122 } 123 } 124 }