1 package org.apache.maven.lifecycle.internal.builder.singlethreaded;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.List;
23
24 import javax.inject.Inject;
25 import javax.inject.Named;
26 import javax.inject.Singleton;
27
28 import org.apache.maven.execution.MavenSession;
29 import org.apache.maven.lifecycle.internal.LifecycleModuleBuilder;
30 import org.apache.maven.lifecycle.internal.ProjectBuildList;
31 import org.apache.maven.lifecycle.internal.ProjectSegment;
32 import org.apache.maven.lifecycle.internal.ReactorBuildStatus;
33 import org.apache.maven.lifecycle.internal.ReactorContext;
34 import org.apache.maven.lifecycle.internal.TaskSegment;
35 import org.apache.maven.lifecycle.internal.builder.Builder;
36
37
38
39
40
41
42 @Named( "singlethreaded" )
43 @Singleton
44 public class SingleThreadedBuilder
45 implements Builder
46 {
47 private final LifecycleModuleBuilder lifecycleModuleBuilder;
48
49 @Inject
50 public SingleThreadedBuilder( LifecycleModuleBuilder lifecycleModuleBuilder )
51 {
52 this.lifecycleModuleBuilder = lifecycleModuleBuilder;
53 }
54
55 public void build( MavenSession session, ReactorContext reactorContext, ProjectBuildList projectBuilds,
56 List<TaskSegment> taskSegments, ReactorBuildStatus reactorBuildStatus )
57 {
58 for ( TaskSegment taskSegment : taskSegments )
59 {
60 for ( ProjectSegment projectBuild : projectBuilds.getByTaskSegment( taskSegment ) )
61 {
62 try
63 {
64 lifecycleModuleBuilder.buildProject( session, reactorContext, projectBuild.getProject(),
65 taskSegment );
66 if ( reactorBuildStatus.isHalted() )
67 {
68 break;
69 }
70 }
71 catch ( Exception e )
72 {
73 break;
74 }
75 }
76 }
77 }
78 }