EMMA Coverage Report (generated Sun Sep 18 11:34:27 PHT 2011)
[all classes][org.apache.continuum.configuration]

COVERAGE SUMMARY FOR SOURCE FILE [DefaultContinuumConfiguration.java]

nameclass, %method, %block, %line, %
DefaultContinuumConfiguration.java100% (1/1)91%  (10/11)79%  (458/582)83%  (105.1/127)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class DefaultContinuumConfiguration100% (1/1)91%  (10/11)79%  (458/582)83%  (105.1/127)
getConfigurationFile (): File 0%   (0/1)0%   (0/3)0%   (0/1)
initialize (): void 100% (1/1)30%  (16/54)43%  (4.3/10)
reload (File): void 100% (1/1)77%  (193/250)79%  (38.8/49)
save (File): void 100% (1/1)89%  (214/240)91%  (49/54)
<static initializer> 100% (1/1)100% (4/4)100% (1/1)
DefaultContinuumConfiguration (): void 100% (1/1)100% (3/3)100% (1/1)
getGeneralConfiguration (): GeneralConfiguration 100% (1/1)100% (3/3)100% (1/1)
reload (): void 100% (1/1)100% (3/3)100% (2/2)
save (): void 100% (1/1)100% (14/14)100% (4/4)
setConfigurationFile (File): void 100% (1/1)100% (4/4)100% (2/2)
setGeneralConfiguration (GeneralConfiguration): void 100% (1/1)100% (4/4)100% (2/2)

1package org.apache.continuum.configuration;
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 
22import java.io.File;
23import java.io.FileInputStream;
24import java.io.FileWriter;
25import java.io.IOException;
26import java.io.InputStreamReader;
27import java.util.ArrayList;
28import java.util.List;
29 
30import org.apache.commons.lang.StringUtils;
31import org.apache.continuum.configuration.model.ContinuumConfigurationModel;
32import org.apache.continuum.configuration.model.io.xpp3.ContinuumConfigurationModelXpp3Reader;
33import org.apache.continuum.configuration.model.io.xpp3.ContinuumConfigurationModelXpp3Writer;
34import org.codehaus.plexus.util.IOUtil;
35import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
36import org.slf4j.Logger;
37import org.slf4j.LoggerFactory;
38 
39/**
40 * @author <a href="mailto:olamy@apache.org">olamy</a>
41 * @version $Id: DefaultContinuumConfiguration.java 780207 2009-05-30 08:51:12Z evenisse $
42 * @since 17 juin 2008
43 */
44public class DefaultContinuumConfiguration
45    implements ContinuumConfiguration
46{
47    private static final Logger log = LoggerFactory.getLogger( DefaultContinuumConfiguration.class );
48 
49    private File configurationFile;
50 
51    private GeneralConfiguration generalConfiguration;
52 
53    public static final String CONFIGURATION_FILE = "continuum.xml";
54 
55    //----------------------------------------------------
56    //  Initialize method configured in the Spring xml 
57    //   configuration file
58    //----------------------------------------------------
59    protected void initialize()
60    {
61        if ( log.isDebugEnabled() )
62        {
63            log.debug( "configurationFile null " + ( configurationFile.getPath() == null ) );
64        }
65        if ( configurationFile != null && configurationFile.exists() )
66        {
67            try
68            {
69                reload( configurationFile );
70            }
71            catch ( ContinuumConfigurationException e )
72            {
73                // skip this and only log a warn
74                log.warn( " error on loading configuration from file " + configurationFile.getPath() );
75            }
76        }
77        else
78        {
79            log.info( "configuration file not exists" );
80            this.generalConfiguration = new GeneralConfiguration();
81        }
82    }
83 
84    public void reload()
85        throws ContinuumConfigurationException
86    {
87        this.initialize();
88    }
89 
90    public void save()
91        throws ContinuumConfigurationException
92    {
93        if ( !configurationFile.exists() )
94        {
95            configurationFile.getParentFile().mkdirs();
96        }
97        save( configurationFile );
98    }
99 
100    /**
101     * @see org.apache.continuum.configuration.ContinuumConfiguration#getGeneralConfiguration()
102     */
103    public GeneralConfiguration getGeneralConfiguration()
104        throws ContinuumConfigurationException
105    {
106        return this.generalConfiguration;
107    }
108 
109    public void setGeneralConfiguration( GeneralConfiguration generalConfiguration )
110        throws ContinuumConfigurationException
111    {
112        this.generalConfiguration = generalConfiguration;
113    }
114 
115    public void reload( File file )
116        throws ContinuumConfigurationException
117    {
118        FileInputStream fis = null;
119        try
120        {
121            fis = new FileInputStream( file );
122            ContinuumConfigurationModelXpp3Reader configurationXpp3Reader = new ContinuumConfigurationModelXpp3Reader();
123            ContinuumConfigurationModel configuration = configurationXpp3Reader.read( new InputStreamReader( fis ) );
124 
125            this.generalConfiguration = new GeneralConfiguration();
126 
127            this.generalConfiguration.setNumberOfBuildsInParallel( configuration.getNumberOfBuildsInParallel() );
128            this.generalConfiguration.setBaseUrl( configuration.getBaseUrl() );
129            if ( StringUtils.isNotEmpty( configuration.getBuildOutputDirectory() ) )
130            {
131                // TODO take care if file exists ?
132                this.generalConfiguration.setBuildOutputDirectory(
133                    new File( configuration.getBuildOutputDirectory() ) );
134            }
135            if ( StringUtils.isNotEmpty( configuration.getDeploymentRepositoryDirectory() ) )
136            {
137                // TODO take care if file exists ?
138                this.generalConfiguration.setDeploymentRepositoryDirectory(
139                    new File( configuration.getDeploymentRepositoryDirectory() ) );
140            }
141            if ( StringUtils.isNotEmpty( configuration.getWorkingDirectory() ) )
142            {
143                // TODO take care if file exists ?
144                this.generalConfiguration.setWorkingDirectory( new File( configuration.getWorkingDirectory() ) );
145            }
146            if ( configuration.getProxyConfiguration() != null )
147            {
148                ProxyConfiguration proxyConfiguration =
149                    new ProxyConfiguration( configuration.getProxyConfiguration().getProxyHost(),
150                                            configuration.getProxyConfiguration().getProxyPassword(),
151                                            configuration.getProxyConfiguration().getProxyPort(),
152                                            configuration.getProxyConfiguration().getProxyUser() );
153                this.generalConfiguration.setProxyConfiguration( proxyConfiguration );
154            }
155            if ( StringUtils.isNotEmpty( configuration.getReleaseOutputDirectory() ) )
156            {
157                // TODO take care if file exists?
158                this.generalConfiguration.setReleaseOutputDirectory(
159                    new File( configuration.getReleaseOutputDirectory() ) );
160            }
161            if ( configuration.getBuildAgents() != null )
162            {
163                List<BuildAgentConfiguration> buildAgents = new ArrayList<BuildAgentConfiguration>();
164 
165                List<org.apache.continuum.configuration.model.BuildAgentConfiguration> agents =
166                    configuration.getBuildAgents();
167                for ( org.apache.continuum.configuration.model.BuildAgentConfiguration agent : agents )
168                {
169                    BuildAgentConfiguration buildAgent =
170                        new BuildAgentConfiguration( agent.getUrl(), agent.getDescription(), agent.isEnabled() );
171                    buildAgents.add( buildAgent );
172                }
173 
174                this.generalConfiguration.setBuildAgents( buildAgents );
175            }
176            if ( configuration.getBuildAgentGroups() != null )
177            {
178                List<BuildAgentGroupConfiguration> buildAgentGroups = new ArrayList<BuildAgentGroupConfiguration>();
179                List<org.apache.continuum.configuration.model.BuildAgentGroupConfiguration> groups =
180                    configuration.getBuildAgentGroups();
181 
182                for ( org.apache.continuum.configuration.model.BuildAgentGroupConfiguration group : groups )
183                {
184                    List<BuildAgentConfiguration> agents = new ArrayList<BuildAgentConfiguration>();
185                    List<org.apache.continuum.configuration.model.BuildAgentConfiguration> modelAgents =
186                        group.getBuildAgents();
187                    for ( org.apache.continuum.configuration.model.BuildAgentConfiguration modelAgent : modelAgents )
188                    {
189                        BuildAgentConfiguration buildAgent =
190                            new BuildAgentConfiguration( modelAgent.getUrl(), modelAgent.getDescription(),
191                                                         modelAgent.isEnabled() );
192                        agents.add( buildAgent );
193                    }
194 
195                    BuildAgentGroupConfiguration groupAgent =
196                        new BuildAgentGroupConfiguration( group.getName(), agents );
197                    buildAgentGroups.add( groupAgent );
198                }
199 
200                this.generalConfiguration.setBuildAgentGroups( buildAgentGroups );
201            }
202        }
203        catch ( IOException e )
204        {
205            log.error( e.getMessage(), e );
206            throw new RuntimeException( e.getMessage(), e );
207        }
208        catch ( XmlPullParserException e )
209        {
210            log.error( e.getMessage(), e );
211            throw new RuntimeException( e.getMessage(), e );
212        }
213        finally
214        {
215            if ( fis != null )
216            {
217                IOUtil.close( fis );
218            }
219        }
220    }
221 
222    public void save( File file )
223        throws ContinuumConfigurationException
224    {
225        try
226        {
227            ContinuumConfigurationModel configurationModel = new ContinuumConfigurationModel();
228            configurationModel.setBaseUrl( this.generalConfiguration.getBaseUrl() );
229            configurationModel.setNumberOfBuildsInParallel( this.generalConfiguration.getNumberOfBuildsInParallel() );
230 
231            // normally not null but NPE free is better !
232            if ( this.generalConfiguration.getBuildOutputDirectory() != null )
233            {
234                configurationModel.setBuildOutputDirectory(
235                    this.generalConfiguration.getBuildOutputDirectory().getPath() );
236            }
237            if ( this.generalConfiguration.getWorkingDirectory() != null )
238            {
239                configurationModel.setWorkingDirectory( this.generalConfiguration.getWorkingDirectory().getPath() );
240            }
241            if ( this.generalConfiguration.getDeploymentRepositoryDirectory() != null )
242            {
243                configurationModel.setDeploymentRepositoryDirectory(
244                    this.generalConfiguration.getDeploymentRepositoryDirectory().getPath() );
245            }
246            if ( this.generalConfiguration.getProxyConfiguration() != null )
247            {
248                configurationModel.setProxyConfiguration(
249                    new org.apache.continuum.configuration.model.ProxyConfiguration() );
250                configurationModel.getProxyConfiguration().setProxyHost(
251                    this.generalConfiguration.getProxyConfiguration().getProxyHost() );
252                configurationModel.getProxyConfiguration().setProxyPassword(
253                    this.generalConfiguration.getProxyConfiguration().getProxyPassword() );
254                configurationModel.getProxyConfiguration().setProxyPort(
255                    this.generalConfiguration.getProxyConfiguration().getProxyPort() );
256                configurationModel.getProxyConfiguration().setProxyHost(
257                    this.generalConfiguration.getProxyConfiguration().getProxyHost() );
258            }
259            if ( this.generalConfiguration.getReleaseOutputDirectory() != null )
260            {
261                configurationModel.setReleaseOutputDirectory(
262                    this.generalConfiguration.getReleaseOutputDirectory().getPath() );
263            }
264            if ( this.generalConfiguration.getBuildAgents() != null )
265            {
266                List<org.apache.continuum.configuration.model.BuildAgentConfiguration> buildAgents =
267                    new ArrayList<org.apache.continuum.configuration.model.BuildAgentConfiguration>();
268 
269                for ( BuildAgentConfiguration agent : this.generalConfiguration.getBuildAgents() )
270                {
271                    org.apache.continuum.configuration.model.BuildAgentConfiguration buildAgent =
272                        new org.apache.continuum.configuration.model.BuildAgentConfiguration();
273                    buildAgent.setUrl( agent.getUrl() );
274                    buildAgent.setDescription( agent.getDescription() );
275                    buildAgent.setEnabled( agent.isEnabled() );
276 
277                    buildAgents.add( buildAgent );
278                }
279                configurationModel.setBuildAgents( buildAgents );
280            }
281            if ( this.generalConfiguration.getBuildAgentGroups() != null )
282            {
283                List<org.apache.continuum.configuration.model.BuildAgentGroupConfiguration> buildAgentGroups =
284                    new ArrayList<org.apache.continuum.configuration.model.BuildAgentGroupConfiguration>();
285 
286                for ( BuildAgentGroupConfiguration group : this.generalConfiguration.getBuildAgentGroups() )
287                {
288                    org.apache.continuum.configuration.model.BuildAgentGroupConfiguration buildAgentGroup =
289                        new org.apache.continuum.configuration.model.BuildAgentGroupConfiguration();
290                    buildAgentGroup.setName( group.getName() );
291 
292                    List<org.apache.continuum.configuration.model.BuildAgentConfiguration> buildAgents =
293                        new ArrayList<org.apache.continuum.configuration.model.BuildAgentConfiguration>();
294 
295                    if ( group.getBuildAgents() != null )
296                    {
297                        for ( BuildAgentConfiguration agent : group.getBuildAgents() )
298                        {
299                            org.apache.continuum.configuration.model.BuildAgentConfiguration buildAgent =
300                                new org.apache.continuum.configuration.model.BuildAgentConfiguration();
301                            buildAgent.setUrl( agent.getUrl() );
302                            buildAgent.setDescription( agent.getDescription() );
303                            buildAgent.setEnabled( agent.isEnabled() );
304 
305                            buildAgents.add( buildAgent );
306                        }
307 
308                        buildAgentGroup.setBuildAgents( buildAgents );
309                    }
310 
311                    buildAgentGroups.add( buildAgentGroup );
312                }
313                configurationModel.setBuildAgentGroups( buildAgentGroups );
314            }
315 
316            ContinuumConfigurationModelXpp3Writer writer = new ContinuumConfigurationModelXpp3Writer();
317            FileWriter fileWriter = new FileWriter( file );
318            writer.write( fileWriter, configurationModel );
319            fileWriter.flush();
320            fileWriter.close();
321        }
322        catch ( IOException e )
323        {
324            throw new ContinuumConfigurationException( e.getMessage(), e );
325        }
326 
327    }
328 
329    // ----------------------------------------
330    //  Spring injection
331    // ----------------------------------------
332 
333 
334    public File getConfigurationFile()
335    {
336        return configurationFile;
337    }
338 
339    public void setConfigurationFile( File configurationFile )
340    {
341        this.configurationFile = configurationFile;
342    }
343 
344}

[all classes][org.apache.continuum.configuration]
EMMA 2.0.5312 (C) Vladimir Roubtsov