View Javadoc

1   package org.apache.continuum.buildqueue;
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 java.util.List;
23  
24  import org.apache.continuum.dao.BuildQueueDao;
25  import org.apache.continuum.dao.ScheduleDao;
26  import org.apache.maven.continuum.model.project.BuildQueue;
27  import org.apache.maven.continuum.model.project.Schedule;
28  import org.apache.maven.continuum.store.ContinuumStoreException;
29  
30  import javax.annotation.Resource;
31  
32  /**
33   * DefaultBuildQueueService
34   * 
35   * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
36   */
37  public class DefaultBuildQueueService
38      implements BuildQueueService
39  {
40      @Resource
41      private BuildQueueDao buildQueueDao;
42      
43      @Resource
44      private ScheduleDao scheduleDao;
45  
46      public BuildQueue addBuildQueue( BuildQueue buildQueue )
47          throws BuildQueueServiceException
48      {        
49          try
50          {
51              return buildQueueDao.addBuildQueue( buildQueue );
52          } 
53          catch ( ContinuumStoreException e )
54          {
55              throw new BuildQueueServiceException( e );
56          }
57      }
58  
59      public List<BuildQueue> getAllBuildQueues()
60          throws BuildQueueServiceException
61      {
62          try
63          {
64              return buildQueueDao.getAllBuildQueues();
65          }
66          catch ( ContinuumStoreException e )
67          {
68              throw new BuildQueueServiceException( e );
69          }
70      }
71  
72      public BuildQueue getBuildQueue( int buildQueueId )
73          throws BuildQueueServiceException
74      {
75          try
76          {
77              return buildQueueDao.getBuildQueue( buildQueueId );
78          }
79          catch ( ContinuumStoreException e )
80          {
81              throw new BuildQueueServiceException( e );
82          }
83      }
84  
85      public BuildQueue getBuildQueueByName( String buildQueueName )
86          throws BuildQueueServiceException
87      {
88          try
89          {
90              return buildQueueDao.getBuildQueueByName( buildQueueName );
91          }
92          catch ( ContinuumStoreException e )
93          {
94              throw new BuildQueueServiceException( e );
95          }
96      }
97  
98      public void removeBuildQueue( BuildQueue buildQueue )
99          throws BuildQueueServiceException
100     {   
101         try
102         {
103             // detach from schedule(s) first
104             List<Schedule> schedules = scheduleDao.getAllSchedulesByName();
105             for( Schedule schedule : schedules )
106             {
107                 List<BuildQueue> buildQueues = schedule.getBuildQueues();
108                 if( buildQueues.contains( buildQueue ) )
109                 {
110                     buildQueues.remove( buildQueue );
111                 }
112                 schedule.setBuildQueues( buildQueues );
113                 
114                 scheduleDao.updateSchedule( schedule );
115             }        
116         
117             buildQueueDao.removeBuildQueue( buildQueue );
118         }
119         catch ( ContinuumStoreException e )
120         {
121             throw new BuildQueueServiceException( e );
122         }
123     }
124 
125     public BuildQueue updateBuildQueue( BuildQueue buildQueue )
126         throws BuildQueueServiceException
127     {
128         try
129         {
130             return buildQueueDao.storeBuildQueue( buildQueue );
131         }
132         catch ( ContinuumStoreException e )
133         {
134             throw new BuildQueueServiceException( e );
135         }
136     }
137 
138     public BuildQueueDao getBuildQueueDao()
139     {
140         return buildQueueDao;
141     }
142 
143     public void setBuildQueueDao( BuildQueueDao buildQueueDao )
144     {
145         this.buildQueueDao = buildQueueDao;
146     }
147 
148     public ScheduleDao getScheduleDao()
149     {
150         return scheduleDao;
151     }
152 
153     public void setScheduleDao( ScheduleDao scheduleDao )
154     {
155         this.scheduleDao = scheduleDao;
156     }
157 
158 }