View Javadoc
1   package org.apache.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.archiva.configuration.ArchivaConfiguration;
23  import org.apache.archiva.configuration.Configuration;
24  import org.apache.archiva.configuration.ConfigurationListener;
25  import org.apache.archiva.configuration.FileType;
26  import org.apache.archiva.configuration.FileTypes;
27  import org.apache.archiva.configuration.RepositoryScanningConfiguration;
28  import org.apache.archiva.redback.components.registry.Registry;
29  import org.apache.archiva.redback.components.registry.RegistryException;
30  import org.apache.archiva.redback.components.registry.RegistryListener;
31  import org.easymock.EasyMock;
32  import org.easymock.IMocksControl;
33  import org.springframework.stereotype.Service;
34  
35  import java.util.Collections;
36  import java.util.HashSet;
37  import java.util.List;
38  import java.util.Set;
39  import javax.annotation.PostConstruct;
40  
41  /**
42   * MockConfiguration
43   *
44   *
45   */
46  @Service( "archivaConfiguration#mock" )
47  public class MockConfiguration
48      implements ArchivaConfiguration
49  {
50  
51      private Configuration configuration = new Configuration();
52  
53      private Set<RegistryListener> registryListeners = new HashSet<RegistryListener>();
54  
55      private Set<ConfigurationListener> configListeners = new HashSet<ConfigurationListener>();
56  
57      private IMocksControl registryControl;
58  
59      private Registry registryMock;
60  
61      public MockConfiguration()
62      {
63          registryControl = EasyMock.createNiceControl( );
64          registryMock = registryControl.createMock( Registry.class );
65      }
66  
67      @PostConstruct
68      public void initialize()
69          throws Exception
70      {
71  
72          configuration.setRepositoryScanning( new RepositoryScanningConfiguration()
73          {
74              @Override
75              public List<FileType> getFileTypes()
76              {
77                  FileType fileType = new FileType();
78                  fileType.setId( FileTypes.ARTIFACTS );
79                  fileType.setPatterns( Collections.singletonList( "**/*" ) );
80                  return Collections.singletonList( fileType );
81              }
82          } );
83      }
84  
85      @Override
86      public void addChangeListener( org.apache.archiva.redback.components.registry.RegistryListener listener )
87      {
88          registryListeners.add( listener );
89      }
90  
91      @Override
92      public void removeChangeListener( RegistryListener listener )
93      {
94          registryListeners.remove( listener );
95      }
96  
97      @Override
98      public Configuration getConfiguration()
99      {
100         return configuration;
101     }
102 
103     @Override
104     public void save( Configuration configuration )
105         throws RegistryException
106     {
107         /* do nothing */
108     }
109 
110     public void triggerChange( String name, String value )
111     {
112         for ( org.apache.archiva.redback.components.registry.RegistryListener listener : registryListeners )
113         {
114             try
115             {
116                 listener.afterConfigurationChange( registryMock, name, value );
117             }
118             catch ( Exception e )
119             {
120                 e.printStackTrace();
121             }
122         }
123     }
124 
125     @Override
126     public void addListener( ConfigurationListener listener )
127     {
128         configListeners.add( listener );
129     }
130 
131     @Override
132     public void removeListener( ConfigurationListener listener )
133     {
134         configListeners.remove( listener );
135     }
136 
137     @Override
138     public boolean isDefaulted()
139     {
140         return false;
141     }
142 
143     @Override
144     public void reload()
145     {
146         // no op
147     }
148 }