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

COVERAGE SUMMARY FOR SOURCE FILE [MavenOneContinuumProjectBuilder.java]

nameclass, %method, %block, %line, %
MavenOneContinuumProjectBuilder.java100% (1/1)40%  (2/5)54%  (93/173)59%  (22.5/38)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MavenOneContinuumProjectBuilder100% (1/1)40%  (2/5)54%  (93/173)59%  (22.5/38)
buildProjectsFromMetadata (URL, String, String): ContinuumProjectBuildingResult 0%   (0/1)0%   (0/7)0%   (0/1)
buildProjectsFromMetadata (URL, String, String, boolean): ContinuumProjectBui... 0%   (0/1)0%   (0/18)0%   (0/3)
getDefaultBuildDefinitionTemplate (): BuildDefinitionTemplate 0%   (0/1)0%   (0/12)0%   (0/3)
buildProjectsFromMetadata (URL, String, String, boolean, BuildDefinitionTempl... 100% (1/1)68%  (90/133)72%  (21.5/30)
MavenOneContinuumProjectBuilder (): void 100% (1/1)100% (3/3)100% (1/1)

1package org.apache.maven.continuum.project.builder.maven;
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.net.URL;
24import java.util.List;
25 
26import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
27import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
28import org.apache.maven.continuum.execution.maven.m1.MavenOneBuildExecutor;
29import org.apache.maven.continuum.execution.maven.m1.MavenOneMetadataHelper;
30import org.apache.maven.continuum.execution.maven.m1.MavenOneMetadataHelperException;
31import org.apache.maven.continuum.model.project.BuildDefinition;
32import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
33import org.apache.maven.continuum.model.project.Project;
34import org.apache.maven.continuum.model.project.ProjectGroup;
35import org.apache.maven.continuum.project.builder.AbstractContinuumProjectBuilder;
36import org.apache.maven.continuum.project.builder.ContinuumProjectBuilder;
37import org.apache.maven.continuum.project.builder.ContinuumProjectBuilderException;
38import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
39import org.codehaus.plexus.util.StringUtils;
40 
41/**
42 * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
43 * @version $Id: MavenOneContinuumProjectBuilder.java 766549 2009-04-20 00:08:07Z jmorales $
44 * @plexus.component role="org.apache.maven.continuum.project.builder.ContinuumProjectBuilder"
45 * role-hint="maven-one-builder"
46 */
47public class MavenOneContinuumProjectBuilder
48    extends AbstractContinuumProjectBuilder
49    implements ContinuumProjectBuilder
50{
51    public static final String ID = "maven-one-builder";
52 
53    /**
54     * @plexus.requirement
55     */
56    private BuildDefinitionService buildDefinitionService;
57 
58    /**
59     * @plexus.requirement
60     */
61    private MavenOneMetadataHelper metadataHelper;
62 
63    // ----------------------------------------------------------------------
64    // ProjectCreator Implementation
65    // ----------------------------------------------------------------------
66 
67    public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password )
68        throws ContinuumProjectBuilderException
69    {
70        return buildProjectsFromMetadata( url, username, password, true );
71    }
72 
73    public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
74                                                                     boolean recursiveProjects )
75        throws ContinuumProjectBuilderException
76    {
77        try
78        {
79            return buildProjectsFromMetadata( url, username, password, recursiveProjects,
80                                              buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate() );
81        }
82        catch ( BuildDefinitionServiceException e )
83        {
84            throw new ContinuumProjectBuilderException( e.getMessage(), e );
85        }
86    }
87 
88    public ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
89                                                                     boolean recursiveProjects,
90                                                                     BuildDefinitionTemplate buildDefinitionTemplate )
91        throws ContinuumProjectBuilderException
92    {
93        ContinuumProjectBuildingResult result = new ContinuumProjectBuildingResult();
94 
95        File pomFile;
96 
97        pomFile = createMetadataFile( result, url, username, password );
98 
99        if ( pomFile == null )
100        {
101            return result;
102        }
103 
104        Project project = new Project();
105 
106        try
107        {
108            metadataHelper.mapMetadata( result, pomFile, project );
109 
110            if ( result.hasErrors() )
111            {
112                return result;
113            }
114            for ( BuildDefinition bd : (List<BuildDefinition>) buildDefinitionTemplate.getBuildDefinitions() )
115            {
116                BuildDefinition cloneBuildDefinition = buildDefinitionService.cloneBuildDefinition( bd );
117                cloneBuildDefinition.setTemplate( false );
118                project.addBuildDefinition( cloneBuildDefinition );
119            }
120            result.addProject( project, MavenOneBuildExecutor.ID );
121        }
122        catch ( MavenOneMetadataHelperException e )
123        {
124            log.error( "Unknown error while processing metadata", e );
125 
126            result.addError( ContinuumProjectBuildingResult.ERROR_UNKNOWN );
127        }
128        finally
129        {
130            if ( pomFile.exists() )
131            {
132                pomFile.delete();
133            }
134        }
135 
136        ProjectGroup projectGroup = new ProjectGroup();
137 
138        // ----------------------------------------------------------------------
139        // Group id
140        // ----------------------------------------------------------------------
141 
142        if ( StringUtils.isEmpty( project.getGroupId() ) )
143        {
144            result.addError( ContinuumProjectBuildingResult.ERROR_MISSING_GROUPID );
145        }
146 
147        projectGroup.setGroupId( project.getGroupId() );
148 
149        // ----------------------------------------------------------------------
150        // Name
151        // ----------------------------------------------------------------------
152 
153        String name = project.getName();
154 
155        if ( StringUtils.isEmpty( name ) )
156        {
157            name = project.getGroupId();
158        }
159 
160        projectGroup.setName( name );
161 
162        // ----------------------------------------------------------------------
163        // Description
164        // ----------------------------------------------------------------------
165 
166        projectGroup.setDescription( project.getDescription() );
167 
168        result.addProjectGroup( projectGroup );
169 
170        return result;
171    }
172 
173    public BuildDefinitionTemplate getDefaultBuildDefinitionTemplate()
174        throws ContinuumProjectBuilderException
175    {
176        try
177        {
178            return buildDefinitionService.getDefaultMavenOneBuildDefinitionTemplate();
179        }
180        catch ( BuildDefinitionServiceException e )
181        {
182            throw new ContinuumProjectBuilderException( e.getMessage(), e );
183        }
184    }
185}

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