]> source.dussan.org Git - archiva.git/blob
e13e1808a4f9def351e72f15f42d527fe28e0d93
[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 org.apache.commons.io.FileUtils;
23 import org.apache.maven.wagon.ConnectionException;
24 import org.apache.maven.wagon.ResourceDoesNotExistException;
25 import org.apache.maven.wagon.TransferFailedException;
26 import org.apache.maven.wagon.Wagon;
27 import org.apache.maven.wagon.authentication.AuthenticationException;
28 import org.apache.maven.wagon.authentication.AuthenticationInfo;
29 import org.apache.maven.wagon.authorization.AuthorizationException;
30 import org.apache.maven.wagon.events.SessionListener;
31 import org.apache.maven.wagon.events.TransferListener;
32 import org.apache.maven.wagon.proxy.ProxyInfo;
33 import org.apache.maven.wagon.repository.Repository;
34
35 import java.io.File;
36 import java.io.IOException;
37 import java.util.List;
38
39 /**
40  * A dummy wagon implementation
41  *
42  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
43  */
44 public class WagonDelegate
45     implements Wagon
46 {
47     private Wagon delegate;
48
49     private String contentToGet;
50
51     public void get( String resourceName, File destination )
52         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
53     {
54         delegate.get( resourceName, destination );
55         create( destination );
56     }
57
58     public boolean getIfNewer( String resourceName, File destination, long timestamp )
59         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
60     {
61         boolean result = delegate.getIfNewer( resourceName, destination, timestamp );
62         createIfMissing( destination );
63         return result;
64     }
65
66     public void put( File source, String destination )
67         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
68     {
69         delegate.put( source, destination );
70     }
71
72     public void putDirectory( File sourceDirectory, String destinationDirectory )
73         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
74     {
75         delegate.putDirectory( sourceDirectory, destinationDirectory );
76     }
77
78     public boolean resourceExists( String resourceName )
79         throws TransferFailedException, AuthorizationException
80     {
81         return delegate.resourceExists( resourceName );
82     }
83
84     public List getFileList( String destinationDirectory )
85         throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
86     {
87         return delegate.getFileList( destinationDirectory );
88     }
89
90     public boolean supportsDirectoryCopy()
91     {
92         return delegate.supportsDirectoryCopy();
93     }
94
95     public Repository getRepository()
96     {
97         return delegate.getRepository();
98     }
99
100     public void connect( Repository source )
101         throws ConnectionException, AuthenticationException
102     {
103         delegate.connect( source );
104     }
105
106     public void connect( Repository source, ProxyInfo proxyInfo )
107         throws ConnectionException, AuthenticationException
108     {
109         delegate.connect( source, proxyInfo );
110     }
111
112     public void connect( Repository source, AuthenticationInfo authenticationInfo )
113         throws ConnectionException, AuthenticationException
114     {
115         delegate.connect( source, authenticationInfo );
116     }
117
118     public void connect( Repository source, AuthenticationInfo authenticationInfo, ProxyInfo proxyInfo )
119         throws ConnectionException, AuthenticationException
120     {
121         delegate.connect( source, authenticationInfo, proxyInfo );
122     }
123
124     public void openConnection()
125         throws ConnectionException, AuthenticationException
126     {
127         delegate.openConnection();
128     }
129
130     public void disconnect()
131         throws ConnectionException
132     {
133         delegate.disconnect();
134     }
135
136     public void addSessionListener( SessionListener listener )
137     {
138         delegate.addSessionListener( listener );
139     }
140
141     public void removeSessionListener( SessionListener listener )
142     {
143         delegate.removeSessionListener( listener );
144     }
145
146     public boolean hasSessionListener( SessionListener listener )
147     {
148         return delegate.hasSessionListener( listener );
149     }
150
151     public void addTransferListener( TransferListener listener )
152     {
153         delegate.addTransferListener( listener );
154     }
155
156     public void removeTransferListener( TransferListener listener )
157     {
158         delegate.removeTransferListener( listener );
159     }
160
161     public boolean hasTransferListener( TransferListener listener )
162     {
163         return delegate.hasTransferListener( listener );
164     }
165
166     public boolean isInteractive()
167     {
168         return delegate.isInteractive();
169     }
170
171     public void setInteractive( boolean interactive )
172     {
173         delegate.setInteractive( interactive );
174     }
175
176     public void setDelegate( Wagon delegate )
177     {
178         this.delegate = delegate;
179     }
180
181     void setContentToGet( String content )
182     {
183         contentToGet = content;
184     }
185
186     private void createIfMissing( File destination )
187     {
188         // since the mock won't actually copy a file, create an empty one to simulate file existence
189         if ( !destination.exists() )
190         {
191             create( destination );
192         }
193     }
194
195     private void create( File destination )
196     {
197         try
198         {
199             destination.getParentFile().mkdirs();
200             if ( contentToGet == null )
201             {
202                 destination.createNewFile();
203             }
204             else
205             {
206                 FileUtils.writeStringToFile( new File( destination.getAbsolutePath() ), contentToGet, null );
207             }
208         }
209         catch ( IOException e )
210         {
211             throw new RuntimeException( e.getMessage(), e );
212         }
213     }
214 }