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

COVERAGE SUMMARY FOR SOURCE FILE [DefaultConfigurationService.java]

nameclass, %method, %block, %line, %
DefaultConfigurationService.java100% (1/1)36%  (21/58)32%  (327/1017)34%  (93.3/272)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class DefaultConfigurationService100% (1/1)36%  (21/58)32%  (327/1017)34%  (93.3/272)
containsBuildAgentUrl (String, BuildAgentGroupConfiguration): boolean 0%   (0/1)0%   (0/34)0%   (0/8)
createDefaultBuildQueue (): BuildQueue 0%   (0/1)0%   (0/12)0%   (0/4)
createDefaultSchedule (): Schedule 0%   (0/1)0%   (0/36)0%   (0/11)
getApplicationHome (): File 0%   (0/1)0%   (0/3)0%   (0/1)
getBuildAgent (String): BuildAgentConfiguration 0%   (0/1)0%   (0/30)0%   (0/7)
getBuildAgentGroup (String): BuildAgentGroupConfiguration 0%   (0/1)0%   (0/26)0%   (0/6)
getBuildOutput (int, int): String 0%   (0/1)0%   (0/30)0%   (0/7)
getBuildOutputDirectory (int): File 0%   (0/1)0%   (0/15)0%   (0/5)
getBuildOutputFile (int, int): File 0%   (0/1)0%   (0/38)0%   (0/4)
getBuildQueueService (): BuildQueueService 0%   (0/1)0%   (0/3)0%   (0/1)
getConfiguration (): ContinuumConfiguration 0%   (0/1)0%   (0/3)0%   (0/1)
getDefaultBuildQueue (): BuildQueue 0%   (0/1)0%   (0/17)0%   (0/5)
getDefaultSchedule (): Schedule 0%   (0/1)0%   (0/17)0%   (0/5)
getDeploymentRepositoryDirectory (): File 0%   (0/1)0%   (0/17)0%   (0/5)
getFile (String): File 0%   (0/1)0%   (0/34)0%   (0/12)
getNumberOfBuildsInParallel (): int 0%   (0/1)0%   (0/4)0%   (0/1)
getReleaseOutput (int, String): String 0%   (0/1)0%   (0/30)0%   (0/7)
getReleaseOutputDirectory (): File 0%   (0/1)0%   (0/17)0%   (0/5)
getReleaseOutputDirectory (int): File 0%   (0/1)0%   (0/20)0%   (0/7)
getReleaseOutputFile (int, String): File 0%   (0/1)0%   (0/42)0%   (0/6)
getScheduleDao (): ScheduleDao 0%   (0/1)0%   (0/3)0%   (0/1)
getTestReportsDirectory (int, int): File 0%   (0/1)0%   (0/23)0%   (0/2)
getWorkingDirectory (): File 0%   (0/1)0%   (0/17)0%   (0/5)
isDistributedBuildEnabled (): boolean 0%   (0/1)0%   (0/4)0%   (0/1)
isInitialized (): boolean 0%   (0/1)0%   (0/4)0%   (0/1)
isLoaded (): boolean 0%   (0/1)0%   (0/3)0%   (0/1)
removeBuildAgentGroup (BuildAgentGroupConfiguration): void 0%   (0/1)0%   (0/33)0%   (0/8)
setBuildQueueService (BuildQueueService): void 0%   (0/1)0%   (0/4)0%   (0/2)
setConfiguration (ContinuumConfiguration): void 0%   (0/1)0%   (0/4)0%   (0/2)
setDeploymentRepositoryDirectory (File): void 0%   (0/1)0%   (0/5)0%   (0/2)
setDistributedBuildEnabled (boolean): void 0%   (0/1)0%   (0/5)0%   (0/2)
setInitialized (boolean): void 0%   (0/1)0%   (0/5)0%   (0/2)
setNumberOfBuildsInParallel (int): void 0%   (0/1)0%   (0/5)0%   (0/2)
setScheduleDao (ScheduleDao): void 0%   (0/1)0%   (0/4)0%   (0/2)
setSystemConfigurationDao (SystemConfigurationDao): void 0%   (0/1)0%   (0/4)0%   (0/2)
updateBuildAgent (BuildAgentConfiguration): void 0%   (0/1)0%   (0/32)0%   (0/8)
updateBuildAgentGroup (BuildAgentGroupConfiguration): void 0%   (0/1)0%   (0/33)0%   (0/8)
getBuildOutputDirectory (): File 100% (1/1)47%  (8/17)60%  (3/5)
addBuildAgentGroup (BuildAgentGroupConfiguration): void 100% (1/1)51%  (21/41)60%  (5.4/9)
getUrl (): String 100% (1/1)60%  (12/20)57%  (2.8/5)
store (): void 100% (1/1)68%  (15/22)71%  (5/7)
setReleaseOutputDirectory (File): void 100% (1/1)68%  (13/19)67%  (6/9)
addBuildAgent (BuildAgentConfiguration): void 100% (1/1)78%  (32/41)80%  (7.2/9)
loadData (): void 100% (1/1)81%  (30/37)80%  (8/10)
addBuildAgent (BuildAgentGroupConfiguration, BuildAgentConfiguration): void 100% (1/1)89%  (51/57)91%  (11/12)
setBuildOutputDirectory (File): void 100% (1/1)92%  (11/12)83%  (5/6)
setWorkingDirectory (File): void 100% (1/1)92%  (11/12)83%  (5/6)
<static initializer> 100% (1/1)100% (4/4)100% (1/1)
DefaultConfigurationService (): void 100% (1/1)100% (6/6)100% (2/2)
getBuildAgentGroups (): List 100% (1/1)100% (4/4)100% (1/1)
getBuildAgents (): List 100% (1/1)100% (4/4)100% (1/1)
getSystemConfigurationDao (): SystemConfigurationDao 100% (1/1)100% (3/3)100% (1/1)
initialize (): void 100% (1/1)100% (3/3)100% (2/2)
reload (): void 100% (1/1)100% (6/6)100% (3/3)
removeBuildAgent (BuildAgentConfiguration): void 100% (1/1)100% (32/32)100% (8/8)
removeBuildAgent (BuildAgentGroupConfiguration, BuildAgentConfiguration): void 100% (1/1)100% (52/52)100% (12/12)
setApplicationHome (File): void 100% (1/1)100% (4/4)100% (2/2)
setUrl (String): void 100% (1/1)100% (5/5)100% (2/2)

1package org.apache.maven.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.IOException;
24import java.util.ArrayList;
25import java.util.List;
26 
27import javax.annotation.Resource;
28 
29import org.apache.continuum.buildqueue.BuildQueueService;
30import org.apache.continuum.buildqueue.BuildQueueServiceException;
31import org.apache.continuum.configuration.BuildAgentConfiguration;
32import org.apache.continuum.configuration.BuildAgentGroupConfiguration;
33import org.apache.continuum.configuration.ContinuumConfiguration;
34import org.apache.continuum.configuration.ContinuumConfigurationException;
35import org.apache.continuum.configuration.GeneralConfiguration;
36import org.apache.continuum.dao.ScheduleDao;
37import org.apache.continuum.dao.SystemConfigurationDao;
38import org.apache.maven.continuum.model.project.BuildQueue;
39import org.apache.maven.continuum.model.project.Schedule;
40import org.apache.maven.continuum.model.system.SystemConfiguration;
41import org.apache.maven.continuum.store.ContinuumStoreException;
42import org.codehaus.plexus.util.FileUtils;
43import org.codehaus.plexus.util.StringUtils;
44import org.slf4j.Logger;
45import org.slf4j.LoggerFactory;
46 
47/**
48 * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
49 * @version $Id: DefaultConfigurationService.java 764918 2009-04-14 18:34:43Z evenisse $
50 */
51public class DefaultConfigurationService
52    implements ConfigurationService
53{
54    private static final Logger log = LoggerFactory.getLogger( DefaultConfigurationService.class );
55 
56    // when adding a requirement, the template in spring-context.xml must be updated CONTINUUM-1207
57 
58    /**
59     * @plexus.configuration default-value="${plexus.home}"
60     */
61    private File applicationHome;
62 
63    @Resource
64    private ScheduleDao scheduleDao;
65 
66    @Resource
67    private SystemConfigurationDao systemConfigurationDao;
68 
69    @Resource
70    private BuildQueueService buildQueueService;
71 
72    @Resource
73    private ContinuumConfiguration configuration;
74 
75    private GeneralConfiguration generalConfiguration;
76 
77    // ----------------------------------------------------------------------
78    //
79    // ----------------------------------------------------------------------
80 
81    private SystemConfiguration systemConf;
82 
83    private boolean loaded = false;
84 
85    // ----------------------------------------------------------------------
86    //
87    // ----------------------------------------------------------------------
88 
89    public void initialize()
90        throws ConfigurationLoadingException, ContinuumConfigurationException
91    {
92        loadData();
93    }
94 
95    public ScheduleDao getScheduleDao()
96    {
97        return scheduleDao;
98    }
99 
100    public void setScheduleDao( ScheduleDao scheduleDao )
101    {
102        this.scheduleDao = scheduleDao;
103    }
104 
105    public BuildQueueService getBuildQueueService()
106    {
107        return buildQueueService;
108    }
109 
110    public void setBuildQueueService( BuildQueueService buildQueueService )
111    {
112        this.buildQueueService = buildQueueService;
113    }
114 
115    public SystemConfigurationDao getSystemConfigurationDao()
116    {
117        return systemConfigurationDao;
118    }
119 
120    public void setSystemConfigurationDao( SystemConfigurationDao systemConfigurationDao )
121    {
122        this.systemConfigurationDao = systemConfigurationDao;
123    }
124 
125    public ContinuumConfiguration getConfiguration()
126    {
127        return configuration;
128    }
129 
130    public void setConfiguration( ContinuumConfiguration configuration )
131    {
132        this.configuration = configuration;
133    }
134 
135    public File getApplicationHome()
136    {
137        return applicationHome;
138    }
139 
140    public void setApplicationHome( File applicationHome )
141    {
142        this.applicationHome = applicationHome;
143    }
144 
145    public void setInitialized( boolean initialized )
146    {
147        systemConf.setInitialized( initialized );
148    }
149 
150    public boolean isInitialized()
151    {
152        return systemConf.isInitialized();
153    }
154 
155    public String getUrl()
156    {
157        String baseUrl = generalConfiguration.getBaseUrl();
158        if ( StringUtils.isEmpty( baseUrl ) )
159        {
160            baseUrl = systemConf.getBaseUrl();
161            setUrl( baseUrl );
162        }
163        return baseUrl != null ? baseUrl : "";
164    }
165 
166    public void setUrl( String url )
167    {
168        generalConfiguration.setBaseUrl( url );
169    }
170 
171    /**
172     * @see org.apache.maven.continuum.configuration.ConfigurationService#getBuildOutputDirectory()
173     */
174    public File getBuildOutputDirectory()
175    {
176        File buildOutputDirectory = generalConfiguration.getBuildOutputDirectory();
177        if ( buildOutputDirectory == null )
178        {
179            buildOutputDirectory = getFile( systemConf.getBuildOutputDirectory() );
180            setBuildOutputDirectory( buildOutputDirectory );
181        }
182        return buildOutputDirectory;
183    }
184 
185    public void setBuildOutputDirectory( File buildOutputDirectory )
186    {
187        File f = buildOutputDirectory;
188        try
189        {
190            f = f.getCanonicalFile();
191        }
192        catch ( IOException e )
193        {
194        }
195        generalConfiguration.setBuildOutputDirectory( f );
196    }
197 
198    public File getWorkingDirectory()
199    {
200        File workingDirectory = generalConfiguration.getWorkingDirectory();
201        if ( workingDirectory == null )
202        {
203            workingDirectory = getFile( systemConf.getWorkingDirectory() );
204            setWorkingDirectory( workingDirectory );
205        }
206        return workingDirectory;
207    }
208 
209    public void setWorkingDirectory( File workingDirectory )
210    {
211        File f = workingDirectory;
212        try
213        {
214            f = f.getCanonicalFile();
215        }
216        catch ( IOException e )
217        {
218        }
219 
220        generalConfiguration.setWorkingDirectory( f );
221    }
222 
223    public File getDeploymentRepositoryDirectory()
224    {
225        File deploymentDirectory = generalConfiguration.getDeploymentRepositoryDirectory();
226        if ( deploymentDirectory == null )
227        {
228            deploymentDirectory = getFile( systemConf.getDeploymentRepositoryDirectory() );
229            setDeploymentRepositoryDirectory( deploymentDirectory );
230        }
231        return deploymentDirectory;
232    }
233 
234    public void setDeploymentRepositoryDirectory( File deploymentRepositoryDirectory )
235    {
236        generalConfiguration.setDeploymentRepositoryDirectory( deploymentRepositoryDirectory );
237    }
238 
239    public String getBuildOutput( int buildId, int projectId )
240        throws ConfigurationException
241    {
242        File file = getBuildOutputFile( buildId, projectId );
243 
244        try
245        {
246            if ( file.exists() )
247            {
248                return FileUtils.fileRead( file.getAbsolutePath() );
249            }
250            else
251            {
252                return "There are no output for this build.";
253            }
254        }
255        catch ( IOException e )
256        {
257            log.warn( "Error reading build output for build '" + buildId + "'.", e );
258 
259            return null;
260        }
261    }
262 
263    public File getReleaseOutputDirectory()
264    {
265        File releaseOutputDirectory = generalConfiguration.getReleaseOutputDirectory();
266 
267        if ( releaseOutputDirectory == null )
268        {
269            releaseOutputDirectory = getFile( systemConf.getReleaseOutputDirectory() );
270            setReleaseOutputDirectory( releaseOutputDirectory );
271        }
272        return releaseOutputDirectory;
273    }
274 
275    public void setReleaseOutputDirectory( File releaseOutputDirectory )
276    {
277        if ( releaseOutputDirectory == null )
278        {
279            generalConfiguration.setReleaseOutputDirectory( releaseOutputDirectory );
280            return;
281        }
282 
283        File f = releaseOutputDirectory;
284        try
285        {
286            f = f.getCanonicalFile();
287        }
288        catch ( IOException e )
289        {
290        }
291        generalConfiguration.setReleaseOutputDirectory( f );
292    }
293 
294    public List<BuildAgentConfiguration> getBuildAgents()
295    {
296        return generalConfiguration.getBuildAgents();
297    }
298 
299    public void addBuildAgent( BuildAgentConfiguration buildAgent )
300        throws ConfigurationException
301    {
302        List<BuildAgentConfiguration> buildAgents = generalConfiguration.getBuildAgents();
303        if ( buildAgents == null )
304        {
305            buildAgents = new ArrayList<BuildAgentConfiguration>();
306        }
307 
308        for ( BuildAgentConfiguration agent : buildAgents )
309        {
310            if ( agent.getUrl().equals( buildAgent.getUrl() ) )
311            {
312                throw new ConfigurationException( "Unable to add build agent: build agent already exist" );
313            }
314        }
315 
316        buildAgents.add( buildAgent );
317        generalConfiguration.setBuildAgents( buildAgents );
318    }
319 
320    public void removeBuildAgent( BuildAgentConfiguration buildAgent )
321    {
322        List<BuildAgentConfiguration> buildAgents = getBuildAgents();
323        if ( buildAgents != null )
324        {
325            for ( BuildAgentConfiguration agent : buildAgents )
326            {
327                if ( agent.getUrl().equals( buildAgent.getUrl() ) )
328                {
329                    buildAgents.remove( agent );
330                    break;
331                }
332            }
333            generalConfiguration.setBuildAgents( buildAgents );
334        }
335    }
336 
337    public void updateBuildAgent( BuildAgentConfiguration buildAgent )
338    {
339        List<BuildAgentConfiguration> buildAgents = getBuildAgents();
340        if ( buildAgents != null )
341        {
342            for ( BuildAgentConfiguration agent : buildAgents )
343            {
344                if ( agent.getUrl().equals( buildAgent.getUrl() ) )
345                {
346                    agent.setDescription( buildAgent.getDescription() );
347                    agent.setEnabled( buildAgent.isEnabled() );
348 
349                    return;
350                }
351            }
352        }
353    }
354 
355    public boolean isDistributedBuildEnabled()
356    {
357        return systemConf.isDistributedBuildEnabled();
358    }
359 
360    public void setDistributedBuildEnabled( boolean distributedBuildEnabled )
361    {
362        systemConf.setDistributedBuildEnabled( distributedBuildEnabled );
363    }
364 
365    public void addBuildAgentGroup( BuildAgentGroupConfiguration buildAgentGroup )
366        throws ConfigurationException
367    {
368        List<BuildAgentGroupConfiguration> buildAgentGroups = generalConfiguration.getBuildAgentGroups();
369 
370        if ( buildAgentGroups == null )
371        {
372            buildAgentGroups = new ArrayList<BuildAgentGroupConfiguration>();
373        }
374 
375        for ( BuildAgentGroupConfiguration groups : buildAgentGroups )
376        {
377            if ( groups.getName().equals( buildAgentGroup.getName() ) )
378            {
379                throw new ConfigurationException( "Unable to add build agent group: build agent group already exist" );
380            }
381        }
382 
383        buildAgentGroups.add( buildAgentGroup );
384        generalConfiguration.setBuildAgentGroups( buildAgentGroups );
385    }
386 
387    public void removeBuildAgentGroup( BuildAgentGroupConfiguration buildAgentGroup )
388        throws ConfigurationException
389    {
390        List<BuildAgentGroupConfiguration> buildAgentGroups = generalConfiguration.getBuildAgentGroups();
391        if ( buildAgentGroups != null )
392        {
393            for ( BuildAgentGroupConfiguration groups : buildAgentGroups )
394            {
395                if ( groups.getName().equals( buildAgentGroup.getName() ) )
396                {
397                    buildAgentGroups.remove( groups );
398                    break;
399                }
400            }
401            generalConfiguration.setBuildAgentGroups( buildAgentGroups );
402        }
403    }
404 
405    public void updateBuildAgentGroup( BuildAgentGroupConfiguration buildAgentGroup )
406        throws ConfigurationException
407    {
408        List<BuildAgentGroupConfiguration> buildAgentGroups = generalConfiguration.getBuildAgentGroups();
409        if ( buildAgentGroups != null )
410        {
411            for ( BuildAgentGroupConfiguration groups : buildAgentGroups )
412            {
413                if ( groups.getName().equals( buildAgentGroup.getName() ) )
414                {
415                    groups.setName( buildAgentGroup.getName() );
416                    groups.setBuildAgents( buildAgentGroup.getBuildAgents() );
417 
418                    return;
419                }
420            }
421        }
422 
423    }
424 
425    public void addBuildAgent( BuildAgentGroupConfiguration buildAgentGroup, BuildAgentConfiguration buildAgent )
426        throws ConfigurationException
427    {
428        List<BuildAgentGroupConfiguration> buildAgentGroupConfiguration = generalConfiguration.getBuildAgentGroups();
429        if ( buildAgentGroupConfiguration != null )
430        {
431            for ( BuildAgentGroupConfiguration group : buildAgentGroupConfiguration )
432            {
433                if ( group.getName().equals( buildAgentGroup.getName() ) )
434                {
435                    List<BuildAgentConfiguration> agents = group.getBuildAgents();
436 
437                    for ( BuildAgentConfiguration agent : agents )
438                    {
439                        if ( agent.getUrl().equals( buildAgent.getUrl() ) )
440                        {
441                            throw new ConfigurationException( "Unable to add build agent : build agent already exist" );
442                        }
443                    }
444                    group.addBuildAgent( buildAgent );
445                    break;
446                }
447            }
448            generalConfiguration.setBuildAgentGroups( buildAgentGroupConfiguration );
449        }
450    }
451 
452    public void removeBuildAgent( BuildAgentGroupConfiguration buildAgentGroup, BuildAgentConfiguration buildAgent )
453        throws ConfigurationException
454    {
455        List<BuildAgentGroupConfiguration> buildAgentGroupConfiguration = generalConfiguration.getBuildAgentGroups();
456        if ( buildAgentGroupConfiguration != null )
457        {
458            for ( BuildAgentGroupConfiguration group : buildAgentGroupConfiguration )
459            {
460                if ( group.getName().equals( buildAgentGroup.getName() ) )
461                {
462                    List<BuildAgentConfiguration> agents = group.getBuildAgents();
463 
464                    for ( BuildAgentConfiguration agent : agents )
465                    {
466                        if ( agent.getUrl().equals( buildAgent.getUrl() ) )
467                        {
468                            group.removeBuildAgent( agent );
469                            break;
470                        }
471                    }
472                }
473            }
474            generalConfiguration.setBuildAgentGroups( buildAgentGroupConfiguration );
475        }
476    }
477 
478    public BuildAgentGroupConfiguration getBuildAgentGroup( String name )
479    {
480        List<BuildAgentGroupConfiguration> buildAgentGroupConfiguration = generalConfiguration.getBuildAgentGroups();
481        if ( buildAgentGroupConfiguration != null )
482        {
483            for ( BuildAgentGroupConfiguration buildAgentGroup : buildAgentGroupConfiguration )
484            {
485                if ( buildAgentGroup.getName().equals( name ) )
486                {
487                    return buildAgentGroup;
488                }
489            }
490        }
491 
492        return null;
493    }
494 
495    public BuildAgentConfiguration getBuildAgent( String url )
496    {
497        List<BuildAgentConfiguration> buildAgents = generalConfiguration.getBuildAgents();
498        if ( buildAgents == null )
499        {
500            buildAgents = new ArrayList<BuildAgentConfiguration>();
501        }
502 
503        for ( BuildAgentConfiguration agent : buildAgents )
504        {
505            if ( agent.getUrl().equals( url ) )
506            {
507                return agent;
508            }
509        }
510        return null;
511    }
512 
513    public List<BuildAgentGroupConfiguration> getBuildAgentGroups()
514    {
515        return generalConfiguration.getBuildAgentGroups();
516    }
517 
518    public boolean containsBuildAgentUrl( String buildAgentUrl, BuildAgentGroupConfiguration buildAgentGroup )
519    {
520        BuildAgentGroupConfiguration group = this.getBuildAgentGroup( buildAgentGroup.getName() );
521        List<BuildAgentConfiguration> buildAgents = group.getBuildAgents();
522        if ( buildAgents == null )
523        {
524            buildAgents = new ArrayList<BuildAgentConfiguration>();
525        }
526 
527        for ( BuildAgentConfiguration agent : buildAgents )
528        {
529            if ( agent.getUrl().equals( buildAgentUrl ) )
530            {
531                return true;
532            }
533        }
534        return false;
535    }
536 
537    // ----------------------------------------------------------------------
538    //
539    // ----------------------------------------------------------------------
540 
541 
542    public File getBuildOutputDirectory( int projectId )
543    {
544        File dir = new File( getBuildOutputDirectory(), Integer.toString( projectId ) );
545 
546        try
547        {
548            dir = dir.getCanonicalFile();
549        }
550        catch ( IOException e )
551        {
552        }
553 
554        return dir;
555    }
556 
557    public File getTestReportsDirectory( int buildId, int projectId )
558        throws ConfigurationException
559    {
560        File ouputDirectory = getBuildOutputDirectory( projectId );
561 
562        return new File(
563            ouputDirectory.getPath() + File.separatorChar + buildId + File.separatorChar + "surefire-reports" );
564 
565    }
566 
567    public File getBuildOutputFile( int buildId, int projectId )
568        throws ConfigurationException
569    {
570        File dir = getBuildOutputDirectory( projectId );
571 
572        if ( !dir.exists() && !dir.mkdirs() )
573        {
574            throw new ConfigurationException(
575                "Could not make the build output directory: " + "'" + dir.getAbsolutePath() + "'." );
576        }
577 
578        return new File( dir, buildId + ".log.txt" );
579    }
580 
581    public File getReleaseOutputDirectory( int projectGroupId )
582    {
583        if ( getReleaseOutputDirectory() == null )
584        {
585            return null;
586        }
587 
588        File dir = new File( getReleaseOutputDirectory(), Integer.toString( projectGroupId ) );
589 
590        try
591        {
592            dir = dir.getCanonicalFile();
593        }
594        catch ( IOException e )
595        {
596        }
597 
598        return dir;
599    }
600 
601    public File getReleaseOutputFile( int projectGroupId, String name )
602        throws ConfigurationException
603    {
604        File dir = getReleaseOutputDirectory( projectGroupId );
605 
606        if ( dir == null )
607        {
608            return null;
609        }
610 
611        if ( !dir.exists() && !dir.mkdirs() )
612        {
613            throw new ConfigurationException(
614                "Could not make the release output directory: " + "'" + dir.getAbsolutePath() + "'." );
615        }
616 
617        return new File( dir, name + ".log.txt" );
618    }
619 
620    public String getReleaseOutput( int projectGroupId, String name )
621        throws ConfigurationException
622    {
623        File file = getReleaseOutputFile( projectGroupId, name );
624 
625        try
626        {
627            if ( file.exists() )
628            {
629                return FileUtils.fileRead( file.getAbsolutePath() );
630            }
631            else
632            {
633                return "There are no output for this release.";
634            }
635        }
636        catch ( IOException e )
637        {
638            log.warn( "Error reading release output for release '" + name + "'.", e );
639            return null;
640        }
641    }
642 
643    public int getNumberOfBuildsInParallel()
644    {
645        return generalConfiguration.getNumberOfBuildsInParallel();
646    }
647 
648    public void setNumberOfBuildsInParallel( int num )
649    {
650        generalConfiguration.setNumberOfBuildsInParallel( num );
651    }
652 
653    // ----------------------------------------------------------------------
654    //
655    // ----------------------------------------------------------------------
656 
657    public File getFile( String filename )
658    {
659        if ( filename == null )
660        {
661            return null;
662        }
663 
664        File f = null;
665 
666        if ( filename.length() != 0 )
667        {
668            f = new File( filename );
669 
670            if ( !f.isAbsolute() )
671            {
672                f = new File( applicationHome, filename );
673            }
674        }
675 
676        try
677        {
678            if ( f != null )
679            {
680                return f.getCanonicalFile();
681            }
682            return null;
683        }
684        catch ( IOException e )
685        {
686            return f;
687        }
688    }
689 
690    // ----------------------------------------------------------------------
691    // Load and Store
692    // ----------------------------------------------------------------------
693 
694    public boolean isLoaded()
695    {
696        return loaded;
697    }
698 
699 
700    private void loadData()
701        throws ConfigurationLoadingException, ContinuumConfigurationException
702    {
703        generalConfiguration = configuration.getGeneralConfiguration();
704 
705        try
706        {
707            systemConf = getSystemConfigurationDao().getSystemConfiguration();
708 
709            if ( systemConf == null )
710            {
711                systemConf = new SystemConfiguration();
712 
713                systemConf = getSystemConfigurationDao().addSystemConfiguration( systemConf );
714            }
715 
716            loaded = true;
717        }
718        catch ( ContinuumStoreException e )
719        {
720            throw new ConfigurationLoadingException( "Error reading configuration from database.", e );
721        }
722    }
723 
724    public void reload()
725        throws ConfigurationLoadingException, ContinuumConfigurationException
726    {
727        configuration.reload();
728        loadData();
729    }
730 
731    public void store()
732        throws ConfigurationStoringException, ContinuumConfigurationException
733    {
734        configuration.setGeneralConfiguration( generalConfiguration );
735        configuration.save();
736        try
737        {
738            getSystemConfigurationDao().updateSystemConfiguration( systemConf );
739        }
740        catch ( ContinuumStoreException e )
741        {
742            throw new ConfigurationStoringException( "Error writting configuration to database.", e );
743        }
744    }
745 
746    public Schedule getDefaultSchedule()
747        throws ContinuumStoreException, ConfigurationLoadingException, ContinuumConfigurationException,
748        BuildQueueServiceException
749    {
750        // Schedule
751        Schedule defaultSchedule = scheduleDao.getScheduleByName( DEFAULT_SCHEDULE_NAME );
752 
753        if ( defaultSchedule == null )
754        {
755            defaultSchedule = createDefaultSchedule();
756 
757            defaultSchedule = scheduleDao.addSchedule( defaultSchedule );
758        }
759 
760        return defaultSchedule;
761    }
762 
763    public BuildQueue getDefaultBuildQueue()
764        throws BuildQueueServiceException
765    {
766        BuildQueue defaultBuildQueue = buildQueueService.getBuildQueueByName( DEFAULT_BUILD_QUEUE_NAME );
767 
768        if ( defaultBuildQueue == null )
769        {
770            defaultBuildQueue = createDefaultBuildQueue();
771 
772            defaultBuildQueue = buildQueueService.addBuildQueue( defaultBuildQueue );
773        }
774 
775        return defaultBuildQueue;
776    }
777 
778    // ----------------------------------------------------------------------
779    //
780    // ----------------------------------------------------------------------
781 
782    private Schedule createDefaultSchedule()
783        throws ConfigurationLoadingException, ContinuumConfigurationException, ContinuumStoreException,
784        BuildQueueServiceException
785    {
786 
787        log.info( "create Default Schedule" );
788 
789        Schedule schedule = new Schedule();
790 
791        schedule.setName( DEFAULT_SCHEDULE_NAME );
792 
793        //It shouldn't be possible
794        if ( systemConf == null )
795        {
796            this.reload();
797        }
798 
799        schedule.setDescription( systemConf.getDefaultScheduleDescription() );
800 
801        schedule.setCronExpression( systemConf.getDefaultScheduleCronExpression() );
802 
803        schedule.setActive( true );
804 
805        BuildQueue buildQueue = getDefaultBuildQueue();
806 
807        schedule.addBuildQueue( buildQueue );
808 
809        return schedule;
810    }
811 
812    private BuildQueue createDefaultBuildQueue()
813    {
814        log.info( "create Default Build Queue" );
815 
816        BuildQueue buildQueue = new BuildQueue();
817 
818        buildQueue.setName( DEFAULT_BUILD_QUEUE_NAME );
819 
820        return buildQueue;
821    }
822}

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