]> source.dussan.org Git - archiva.git/blob
5ce3f2e8ee49b363fc10f6d99925640b54a6e84b
[archiva.git] /
1 package org.apache.archiva.maven.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  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  */
20
21 import org.apache.archiva.configuration.*;
22 import org.apache.archiva.components.registry.Registry;
23 import org.apache.archiva.components.registry.RegistryException;
24 import org.apache.archiva.components.registry.RegistryListener;
25 import org.apache.commons.lang3.StringUtils;
26 import org.easymock.EasyMock;
27 import org.easymock.IMocksControl;
28 import org.springframework.stereotype.Service;
29
30 import javax.annotation.PostConstruct;
31 import java.nio.file.Path;
32 import java.nio.file.Paths;
33 import java.util.*;
34
35 /**
36  * MockConfiguration
37  *
38  *
39  */
40 @Service( "archivaConfiguration#mock" )
41 public class MockConfiguration
42     implements ArchivaConfiguration
43 {
44
45     private Configuration configuration = new Configuration();
46
47     private Set<RegistryListener> registryListeners = new HashSet<RegistryListener>();
48
49     private Set<ConfigurationListener> configListeners = new HashSet<ConfigurationListener>();
50
51     private IMocksControl registryControl;
52
53     private Registry registryMock;
54
55     public MockConfiguration()
56     {
57         registryControl = EasyMock.createNiceControl( );
58         registryMock = registryControl.createMock( Registry.class );
59     }
60
61     @PostConstruct
62     public void initialize()
63         throws Exception
64     {
65
66         configuration.setRepositoryScanning( new RepositoryScanningConfiguration()
67         {
68             @Override
69             public List<FileType> getFileTypes()
70             {
71                 FileType fileType = new FileType();
72                 fileType.setId( FileTypes.ARTIFACTS );
73                 fileType.setPatterns( Collections.singletonList( "**/*" ) );
74                 return Collections.singletonList( fileType );
75             }
76         } );
77         ArchivaRuntimeConfiguration rt = new ArchivaRuntimeConfiguration();
78         List<String> checksums = new ArrayList<>();
79         checksums.add("MD5");
80         checksums.add("SHA1");
81         checksums.add("SHA256");
82         rt.setChecksumTypes(checksums);
83         configuration.setArchivaRuntimeConfiguration(rt);
84
85     }
86
87     @Override
88     public void addChangeListener( org.apache.archiva.components.registry.RegistryListener listener )
89     {
90         registryListeners.add( listener );
91     }
92
93
94     @Override
95     public void removeChangeListener( RegistryListener listener )
96     {
97         registryListeners.remove( listener );
98     }
99
100     @Override
101     public Configuration getConfiguration()
102     {
103         return configuration;
104     }
105
106     @Override
107     public void save( Configuration configuration )
108         throws RegistryException
109     {
110         /* do nothing */
111     }
112
113     @Override
114     public void save( Configuration configuration, String eventTag ) throws RegistryException, IndeterminateConfigurationException
115     {
116         // do nothing
117     }
118
119     public void triggerChange( String name, String value )
120     {
121         for ( org.apache.archiva.components.registry.RegistryListener listener : registryListeners )
122         {
123             try
124             {
125                 listener.afterConfigurationChange( registryMock, name, value );
126             }
127             catch ( Exception e )
128             {
129                 e.printStackTrace();
130             }
131         }
132
133         for (ConfigurationListener listener : configListeners) {
134             listener.configurationEvent( new ConfigurationEvent( ConfigurationEvent.CHANGED ) );
135         }
136     }
137
138     @Override
139     public void addListener( ConfigurationListener listener )
140     {
141         configListeners.add( listener );
142     }
143
144     @Override
145     public void removeListener( ConfigurationListener listener )
146     {
147         configListeners.remove( listener );
148     }
149
150     @Override
151     public boolean isDefaulted()
152     {
153         return false;
154     }
155
156     @Override
157     public void reload()
158     {
159         // no op
160     }
161
162     @Override
163     public Locale getDefaultLocale( )
164     {
165         return Locale.getDefault();
166     }
167
168     @Override
169     public List<Locale.LanguageRange> getLanguagePriorities( )
170     {
171         return Locale.LanguageRange.parse( "en,fr,de" );
172     }
173
174     @Override
175     public Path getAppServerBaseDir() {
176         if (System.getProperties().containsKey("appserver.base")) {
177             return Paths.get(System.getProperty("appserver.base"));
178         } else {
179             return Paths.get("");
180         }
181     }
182
183
184     @Override
185     public Path getRepositoryBaseDir() {
186         return getDataDirectory().resolve("repositories");
187     }
188
189     @Override
190     public Path getRemoteRepositoryBaseDir() {
191         return getDataDirectory().resolve("remotes");
192     }
193
194     @Override
195     public Path getRepositoryGroupBaseDir() {
196         return getDataDirectory().resolve("groups");
197     }
198
199     @Override
200     public Path getDataDirectory() {
201         if (configuration!=null && StringUtils.isNotEmpty(configuration.getArchivaRuntimeConfiguration().getDataDirectory())) {
202             return Paths.get(configuration.getArchivaRuntimeConfiguration().getDataDirectory());
203         } else {
204             return getAppServerBaseDir().resolve("data");
205         }
206     }
207
208     @Override
209     public Registry getRegistry( )
210     {
211         return null;
212     }
213 }