]> source.dussan.org Git - archiva.git/blob
94f8727b78da0c99bb64966430408e4802291948
[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.proxy.ProxyInfoProvider;
38 import org.apache.maven.wagon.repository.Repository;
39 import org.slf4j.Logger;
40 import org.slf4j.LoggerFactory;
41
42 /**
43  * A dummy wagon implementation
44  *
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, ProxyInfoProvider proxyInfoProvider )
130         throws ConnectionException, AuthenticationException
131     {
132         delegate.connect( source, proxyInfoProvider );
133     }
134
135     public void connect( Repository source, AuthenticationInfo authenticationInfo )
136         throws ConnectionException, AuthenticationException
137     {
138         delegate.connect( source, authenticationInfo );
139     }
140
141     public void connect( Repository source, AuthenticationInfo authenticationInfo, ProxyInfo proxyInfo )
142         throws ConnectionException, AuthenticationException
143     {
144         delegate.connect( source, authenticationInfo, proxyInfo );
145     }
146
147     public void connect( Repository source, AuthenticationInfo authenticationInfo, ProxyInfoProvider proxyInfoProvider )
148         throws ConnectionException, AuthenticationException
149     {
150         delegate.connect( source, authenticationInfo, proxyInfoProvider );
151     }
152
153     public void openConnection()
154         throws ConnectionException, AuthenticationException
155     {
156         delegate.openConnection();
157     }
158
159     public void disconnect()
160         throws ConnectionException
161     {
162         delegate.disconnect();
163     }
164
165     public void addSessionListener( SessionListener listener )
166     {
167         delegate.addSessionListener( listener );
168     }
169
170     public void removeSessionListener( SessionListener listener )
171     {
172         delegate.removeSessionListener( listener );
173     }
174
175     public boolean hasSessionListener( SessionListener listener )
176     {
177         return delegate.hasSessionListener( listener );
178     }
179
180     public void addTransferListener( TransferListener listener )
181     {
182         delegate.addTransferListener( listener );
183     }
184
185     public void removeTransferListener( TransferListener listener )
186     {
187         delegate.removeTransferListener( listener );
188     }
189
190     public boolean hasTransferListener( TransferListener listener )
191     {
192         return delegate.hasTransferListener( listener );
193     }
194
195     public boolean isInteractive()
196     {
197         return delegate.isInteractive();
198     }
199
200     public void setInteractive( boolean interactive )
201     {
202         delegate.setInteractive( interactive );
203     }
204
205     public void setDelegate( Wagon delegate )
206     {
207         this.delegate = delegate;
208     }
209
210     void setContentToGet( String content )
211     {
212         contentToGet = content;
213     }
214
215     private void createIfMissing( File destination )
216     {
217         // since the mock won't actually copy a file, create an empty one to simulate file existence
218         if ( !destination.exists() )
219         {
220             create( destination );
221         }
222     }
223
224     private void create( File destination )
225     {
226         try
227         {
228             destination.getParentFile().mkdirs();
229             if ( contentToGet == null )
230             {
231                 destination.createNewFile();
232             }
233             else
234             {
235                 FileUtils.writeStringToFile( new File( destination.getAbsolutePath() ), contentToGet, null );
236             }
237         }
238         catch ( IOException e )
239         {
240             throw new RuntimeException( e.getMessage(), e );
241         }
242     }
243 }