]> source.dussan.org Git - archiva.git/blob
f2631c05129c35036bad8faff21058fe81e59e97
[archiva.git] /
1 package org.apache.archiva.proxy.common;
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.archiva.common.plexusbridge.PlexusSisuBridge;
23 import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException;
24 import org.apache.commons.lang.StringUtils;
25 import org.apache.maven.wagon.Wagon;
26 import org.springframework.stereotype.Service;
27
28 import javax.inject.Inject;
29
30 /**
31  * @author Olivier Lamy
32  * @since 1.4
33  */
34 @Service( "wagonFactory" )
35 public class DefaultWagonFactory
36     implements WagonFactory
37 {
38
39     private PlexusSisuBridge plexusSisuBridge;
40
41     @Inject
42     public DefaultWagonFactory( PlexusSisuBridge plexusSisuBridge )
43     {
44         this.plexusSisuBridge = plexusSisuBridge;
45     }
46
47     public Wagon getWagon( String protocol )
48         throws WagonFactoryException
49     {
50         try
51         {
52             // with sisu inject bridge hint is file or http
53             // so remove wagon#
54             protocol = StringUtils.remove( protocol, "wagon#" );
55             return plexusSisuBridge.lookup( Wagon.class, protocol );
56         }
57         catch ( PlexusSisuBridgeException e )
58         {
59             throw new WagonFactoryException( e.getMessage(), e );
60         }
61     }
62 }