]> source.dussan.org Git - archiva.git/blob
a5de3eaeb1fc5b43054cd4b527b154a9ce22dc34
[archiva.git] /
1 package org.apache.archiva.maven.repository.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  * 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.components.registry.Registry;
22 import org.apache.archiva.components.registry.RegistryException;
23 import org.apache.archiva.components.registry.RegistryListener;
24 import org.apache.archiva.configuration.ArchivaConfiguration;
25 import org.apache.archiva.configuration.ArchivaRuntimeConfiguration;
26 import org.apache.archiva.configuration.Configuration;
27 import org.apache.archiva.configuration.ConfigurationListener;
28 import org.apache.archiva.configuration.FileType;
29 import org.apache.archiva.configuration.IndeterminateConfigurationException;
30 import org.apache.archiva.configuration.RepositoryScanningConfiguration;
31 import org.apache.commons.lang3.StringUtils;
32 import org.springframework.stereotype.Service;
33
34 import java.nio.file.Path;
35 import java.nio.file.Paths;
36 import java.util.ArrayList;
37 import java.util.HashSet;
38 import java.util.List;
39 import java.util.Locale;
40 import java.util.Set;
41
42 import static org.mockito.Mockito.mock;
43
44 /**
45  * MockConfiguration 
46  *
47  *
48  */
49 @Service("archivaConfiguration#mock")
50 public class MockConfiguration
51     implements ArchivaConfiguration
52 {
53
54     private Configuration configuration = new Configuration();
55
56     private Set<RegistryListener> registryListeners = new HashSet<RegistryListener>();
57     private Set<ConfigurationListener> configListeners = new HashSet<ConfigurationListener>();
58
59     private Registry registryMock;
60
61     public MockConfiguration()
62     {
63         registryMock = mock( Registry.class );
64         configuration.setArchivaRuntimeConfiguration(new ArchivaRuntimeConfiguration());
65         configuration.getArchivaRuntimeConfiguration().addChecksumType("sha1");
66         configuration.getArchivaRuntimeConfiguration().addChecksumType("sha256");
67         configuration.getArchivaRuntimeConfiguration().addChecksumType("md5");
68         RepositoryScanningConfiguration rpsc = new RepositoryScanningConfiguration( );
69         FileType ft = new FileType( );
70         ft.setId( "artifacts" );
71         ArrayList<String> plist = new ArrayList<>( );
72         plist.add( "**/*.jar" );
73         plist.add( "**/*.pom" );
74         plist.add( "**/*.war" );
75         ft.setPatterns( plist );
76         rpsc.addFileType( ft  );
77         ArrayList<FileType> ftList = new ArrayList<>( );
78         ftList.add( ft );
79         rpsc.setFileTypes( ftList );
80         configuration.setRepositoryScanning( rpsc );
81     }
82
83     @Override
84     public void addChangeListener( RegistryListener listener )
85     {
86         registryListeners.add( listener );
87     }
88
89     @Override
90     public void removeChangeListener( RegistryListener listener )
91     {
92         registryListeners.remove( listener );
93     }
94
95     @Override
96     public Configuration getConfiguration()
97     {
98         return configuration;
99     }
100
101     @Override
102     public void save( Configuration configuration )
103         throws RegistryException
104     {
105         /* do nothing */
106     }
107
108     @Override
109     public void save( Configuration configuration, String eventTag ) throws RegistryException, IndeterminateConfigurationException
110     {
111         // do nothing
112     }
113
114     public void triggerChange( String name, String value )
115     {
116         for(RegistryListener listener: registryListeners)
117         {
118             try
119             {
120                 listener.afterConfigurationChange( registryMock, name, value );
121             }
122             catch ( Exception e )
123             {
124                 e.printStackTrace();
125             }
126         }
127     }
128
129     @Override
130     public void addListener( ConfigurationListener listener )
131     {
132         configListeners.add(listener);
133     }
134
135     @Override
136     public void removeListener( ConfigurationListener listener )
137     {
138         configListeners.remove( listener );
139     }
140     
141     @Override
142     public boolean isDefaulted()
143     {
144         return false;
145     }
146
147     @Override
148     public void reload()
149     {
150         // no op
151     }
152
153     @Override
154     public Locale getDefaultLocale( )
155     {
156         return Locale.getDefault();
157     }
158
159     @Override
160     public List<Locale.LanguageRange> getLanguagePriorities( )
161     {
162         return Locale.LanguageRange.parse( "en,fr,de" );
163     }
164
165     @Override
166     public Path getAppServerBaseDir() {
167         if (System.getProperties().containsKey("appserver.base")) {
168             return Paths.get(System.getProperty("appserver.base"));
169         } else {
170             return Paths.get("");
171         }
172     }
173
174
175     @Override
176     public Path getRepositoryBaseDir() {
177         return getDataDirectory().resolve("repositories");
178     }
179
180     @Override
181     public Path getRemoteRepositoryBaseDir() {
182         return getDataDirectory().resolve("remotes");
183     }
184
185     @Override
186     public Path getRepositoryGroupBaseDir() {
187         return getDataDirectory().resolve("groups");
188     }
189
190     @Override
191     public Path getDataDirectory() {
192         if (configuration!=null && StringUtils.isNotEmpty(configuration.getArchivaRuntimeConfiguration().getDataDirectory())) {
193             return Paths.get(configuration.getArchivaRuntimeConfiguration().getDataDirectory());
194         } else {
195             return getAppServerBaseDir().resolve("data");
196         }
197     }
198
199     @Override
200     public Registry getRegistry( )
201     {
202         return null;
203     }
204
205
206 }