]> source.dussan.org Git - archiva.git/blob
7085e96a4d7b95e1b7bf4d20053543f132862c0a
[archiva.git] /
1 package org.apache.archiva.repository.maven.metadata.storage.mock;
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.components.registry.Registry;
23 import org.apache.archiva.components.registry.RegistryException;
24 import org.apache.archiva.components.registry.RegistryListener;
25 import org.apache.archiva.configuration.ArchivaConfiguration;
26 import org.apache.archiva.configuration.ArchivaRuntimeConfiguration;
27 import org.apache.archiva.configuration.Configuration;
28 import org.apache.archiva.configuration.ConfigurationListener;
29 import org.apache.archiva.configuration.FileType;
30 import org.apache.archiva.configuration.IndeterminateConfigurationException;
31 import org.apache.archiva.configuration.RepositoryScanningConfiguration;
32 import org.apache.commons.lang3.StringUtils;
33 import org.easymock.IMocksControl;
34 import org.springframework.stereotype.Service;
35
36 import java.nio.file.Path;
37 import java.nio.file.Paths;
38 import java.util.ArrayList;
39 import java.util.HashSet;
40 import java.util.List;
41 import java.util.Locale;
42 import java.util.Set;
43
44 import static org.easymock.EasyMock.createNiceControl;
45
46 /**
47  * MockConfiguration 
48  *
49  *
50  */
51 @Service("archivaConfiguration#mock")
52 public class MockConfiguration
53     implements ArchivaConfiguration
54 {
55
56     private Configuration configuration = new Configuration();
57
58     private Set<RegistryListener> registryListeners = new HashSet<RegistryListener>();
59     private Set<ConfigurationListener> configListeners = new HashSet<ConfigurationListener>();
60
61     private IMocksControl registryControl;
62
63     private Registry registryMock;
64
65     public MockConfiguration()
66     {
67         registryControl = createNiceControl();
68         registryMock = registryControl.createMock( Registry.class );
69         configuration.setArchivaRuntimeConfiguration(new ArchivaRuntimeConfiguration());
70         configuration.getArchivaRuntimeConfiguration().addChecksumType("sha1");
71         configuration.getArchivaRuntimeConfiguration().addChecksumType("sha256");
72         configuration.getArchivaRuntimeConfiguration().addChecksumType("md5");
73         RepositoryScanningConfiguration rpsc = new RepositoryScanningConfiguration( );
74         FileType ft = new FileType( );
75         ft.setId( "artifacts" );
76         ArrayList<String> plist = new ArrayList<>( );
77         plist.add( "**/*.jar" );
78         plist.add( "**/*.pom" );
79         plist.add( "**/*.war" );
80         ft.setPatterns( plist );
81         rpsc.addFileType( ft  );
82         ArrayList<FileType> ftList = new ArrayList<>( );
83         ftList.add( ft );
84         rpsc.setFileTypes( ftList );
85         configuration.setRepositoryScanning( rpsc );
86     }
87
88     @Override
89     public void addChangeListener( RegistryListener listener )
90     {
91         registryListeners.add( listener );
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(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
134     @Override
135     public void addListener( ConfigurationListener listener )
136     {
137         configListeners.add(listener);
138     }
139
140     @Override
141     public void removeListener( ConfigurationListener listener )
142     {
143         configListeners.remove( listener );
144     }
145     
146     @Override
147     public boolean isDefaulted()
148     {
149         return false;
150     }
151
152     @Override
153     public void reload()
154     {
155         // no op
156     }
157
158     @Override
159     public Locale getDefaultLocale( )
160     {
161         return Locale.getDefault();
162     }
163
164     @Override
165     public List<Locale.LanguageRange> getLanguagePriorities( )
166     {
167         return Locale.LanguageRange.parse( "en,fr,de" );
168     }
169
170     @Override
171     public Path getAppServerBaseDir() {
172         if (System.getProperties().containsKey("appserver.base")) {
173             return Paths.get(System.getProperty("appserver.base"));
174         } else {
175             return Paths.get("");
176         }
177     }
178
179
180     @Override
181     public Path getRepositoryBaseDir() {
182         return getDataDirectory().resolve("repositories");
183     }
184
185     @Override
186     public Path getRemoteRepositoryBaseDir() {
187         return getDataDirectory().resolve("remotes");
188     }
189
190     @Override
191     public Path getRepositoryGroupBaseDir() {
192         return getDataDirectory().resolve("groups");
193     }
194
195     @Override
196     public Path getDataDirectory() {
197         if (configuration!=null && StringUtils.isNotEmpty(configuration.getArchivaRuntimeConfiguration().getDataDirectory())) {
198             return Paths.get(configuration.getArchivaRuntimeConfiguration().getDataDirectory());
199         } else {
200             return getAppServerBaseDir().resolve("data");
201         }
202     }
203
204
205
206
207 }