]> source.dussan.org Git - archiva.git/blob
8979544386fbefa08648c4069a746c3fa4dd0b4b
[archiva.git] /
1 package org.apache.maven.archiva.proxy;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import java.io.File;
23 import java.io.IOException;
24 import java.util.List;
25
26 import org.apache.commons.io.FileUtils;
27 import org.apache.maven.wagon.ConnectionException;
28 import org.apache.maven.wagon.ResourceDoesNotExistException;
29 import org.apache.maven.wagon.TransferFailedException;
30 import org.apache.maven.wagon.Wagon;
31 import org.apache.maven.wagon.authentication.AuthenticationException;
32 import org.apache.maven.wagon.authentication.AuthenticationInfo;
33 import org.apache.maven.wagon.authorization.AuthorizationException;
34 import org.apache.maven.wagon.events.SessionListener;
35 import org.apache.maven.wagon.events.TransferListener;
36 import org.apache.maven.wagon.proxy.ProxyInfo;
37 import org.apache.maven.wagon.repository.Repository;
38 import org.slf4j.Logger;
39 import org.slf4j.LoggerFactory;
40
41 /**
42  * A dummy wagon implementation
43  *
44  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
45  */
46 public class WagonDelegate
47     implements Wagon
48 {
49     private Logger log = LoggerFactory.getLogger( WagonDelegate.class );
50     
51     private Wagon delegate;
52
53     private String contentToGet;
54
55     public void get( String resourceName, File destination )
56         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
57     {
58         log.debug( ".get(" + resourceName + ", " + destination + ")" );
59         delegate.get( resourceName, destination );
60         create( destination );
61     }
62
63     public boolean getIfNewer( String resourceName, File destination, long timestamp )
64         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
65     {
66         log.info( ".getIfNewer(" + resourceName + ", " + destination + ", " + timestamp + ")" );
67
68         boolean result = delegate.getIfNewer( resourceName, destination, timestamp );
69         createIfMissing( destination );
70         return result;
71     }
72
73     public void put( File source, String destination )
74         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
75     {
76         delegate.put( source, destination );
77     }
78
79     public void putDirectory( File sourceDirectory, String destinationDirectory )
80         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
81     {
82         delegate.putDirectory( sourceDirectory, destinationDirectory );
83     }
84
85     public boolean resourceExists( String resourceName )
86         throws TransferFailedException, AuthorizationException
87     {
88         return delegate.resourceExists( resourceName );
89     }
90
91     public List<String> getFileList( String destinationDirectory )
92         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
93     {
94         return delegate.getFileList( destinationDirectory );
95     }
96
97     public boolean supportsDirectoryCopy()
98     {
99         return delegate.supportsDirectoryCopy();
100     }
101         
102      public void setTimeout(int val)
103      {
104              // ignore
105      }
106  
107      public int getTimeout()
108      {
109          return 0;
110      }  
111
112     public Repository getRepository()
113     {
114         return delegate.getRepository();
115     }
116
117     public void connect( Repository source )
118         throws ConnectionException, AuthenticationException
119     {
120         delegate.connect( source );
121     }
122
123     public void connect( Repository source, ProxyInfo proxyInfo )
124         throws ConnectionException, AuthenticationException
125     {
126         delegate.connect( source, proxyInfo );
127     }
128
129     public void connect( Repository source, AuthenticationInfo authenticationInfo )
130         throws ConnectionException, AuthenticationException
131     {
132         delegate.connect( source, authenticationInfo );
133     }
134
135     public void connect( Repository source, AuthenticationInfo authenticationInfo, ProxyInfo proxyInfo )
136         throws ConnectionException, AuthenticationException
137     {
138         delegate.connect( source, authenticationInfo, proxyInfo );
139     }
140
141     public void openConnection()
142         throws ConnectionException, AuthenticationException
143     {
144         delegate.openConnection();
145     }
146
147     public void disconnect()
148         throws ConnectionException
149     {
150         delegate.disconnect();
151     }
152
153     public void addSessionListener( SessionListener listener )
154     {
155         delegate.addSessionListener( listener );
156     }
157
158     public void removeSessionListener( SessionListener listener )
159     {
160         delegate.removeSessionListener( listener );
161     }
162
163     public boolean hasSessionListener( SessionListener listener )
164     {
165         return delegate.hasSessionListener( listener );
166     }
167
168     public void addTransferListener( TransferListener listener )
169     {
170         delegate.addTransferListener( listener );
171     }
172
173     public void removeTransferListener( TransferListener listener )
174     {
175         delegate.removeTransferListener( listener );
176     }
177
178     public boolean hasTransferListener( TransferListener listener )
179     {
180         return delegate.hasTransferListener( listener );
181     }
182
183     public boolean isInteractive()
184     {
185         return delegate.isInteractive();
186     }
187
188     public void setInteractive( boolean interactive )
189     {
190         delegate.setInteractive( interactive );
191     }
192
193     public void setDelegate( Wagon delegate )
194     {
195         this.delegate = delegate;
196     }
197
198     void setContentToGet( String content )
199     {
200         contentToGet = content;
201     }
202
203     private void createIfMissing( File destination )
204     {
205         // since the mock won't actually copy a file, create an empty one to simulate file existence
206         if ( !destination.exists() )
207         {
208             create( destination );
209         }
210     }
211
212     private void create( File destination )
213     {
214         try
215         {
216             destination.getParentFile().mkdirs();
217             if ( contentToGet == null )
218             {
219                 destination.createNewFile();
220             }
221             else
222             {
223                 FileUtils.writeStringToFile( new File( destination.getAbsolutePath() ), contentToGet, null );
224             }
225         }
226         catch ( IOException e )
227         {
228             throw new RuntimeException( e.getMessage(), e );
229         }
230     }
231 }