You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2008/12/02 08:37:03 UTC

svn commit: r722393 - in /continuum/branches/continuum-distributed-builds: continuum-core/src/main/java/org/apache/continuum/distributed/manager/ continuum-security/src/main/resources/META-INF/redback/ continuum-webapp/src/main/java/org/apache/continuu...

Author: ctan
Date: Mon Dec  1 23:37:03 2008
New Revision: 722393

URL: http://svn.apache.org/viewvc?rev=722393&view=rev
Log:
more fix

Added:
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildAgent.jsp
      - copied, changed from r722280, continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/addBuildAgent.jsp
Removed:
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/addBuildAgent.jsp
Modified:
    continuum/branches/continuum-distributed-builds/continuum-core/src/main/java/org/apache/continuum/distributed/manager/DefaultDistributedBuildManager.java
    continuum/branches/continuum-distributed-builds/continuum-security/src/main/resources/META-INF/redback/redback.xml
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/DistributedBuildAction.java
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/mdo/view-models.mdo
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildAgentsList.jsp
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp
    continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp

Modified: continuum/branches/continuum-distributed-builds/continuum-core/src/main/java/org/apache/continuum/distributed/manager/DefaultDistributedBuildManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-core/src/main/java/org/apache/continuum/distributed/manager/DefaultDistributedBuildManager.java?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-core/src/main/java/org/apache/continuum/distributed/manager/DefaultDistributedBuildManager.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-core/src/main/java/org/apache/continuum/distributed/manager/DefaultDistributedBuildManager.java Mon Dec  1 23:37:03 2008
@@ -112,6 +112,7 @@
     
                     if ( !found )
                     {
+                        // ping it 
                         BuildAgent buildAgent = new BuildAgent();
                         buildAgent.setUrl( agent.getUrl() );
                         buildAgent.setBusy( false );
@@ -202,7 +203,17 @@
                 List buildContext = initializeBuildContext( projectsAndBuildDefinitionsMap, trigger, buildAgent );
 
                 //BuildAgentXMLRpcClient client = new BuildAgentXmlRpcClient( buildAgent.getUrl(), null, null );
-                //client.buildProjects( buildContext );
+                
+                //try
+                //{
+                    //client.buildProjects( buildContext );
+                //}
+                //catch ( InterruptedException e )
+                //{
+                    //do something about the server Url
+                    //client.getServerUrl();
+                    //get projects of buildagent and set to build error the first project.
+                //}
                 log.info( "dispatched build to " + buildAgent.getUrl() );
                 found = true;
             }

Modified: continuum/branches/continuum-distributed-builds/continuum-security/src/main/resources/META-INF/redback/redback.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-security/src/main/resources/META-INF/redback/redback.xml?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-security/src/main/resources/META-INF/redback/redback.xml (original)
+++ continuum/branches/continuum-distributed-builds/continuum-security/src/main/resources/META-INF/redback/redback.xml Mon Dec  1 23:37:03 2008
@@ -165,6 +165,11 @@
   		      <name>continuum-manage-purging</name>
   		      <description>Continuum Manage Purging</description>
   		    </operation>
+  		    <operation>
+  		      <id>continuum-manage-distributed-builds</id>
+  		      <name>continuum-manage-distributed-builds</name>
+  		      <description>Continuum Manage Distributed Builds</description>
+  		    </operation>
   		  </operations>
   		  <roles>
   		    <role>
@@ -180,6 +185,13 @@
   		          <operation>continuum-manage-configuration</operation>
   		          <resource>global</resource>
   		        </permission>
+  		        <permission>
+  		          <id>continuum-manage-distributed-builds</id>
+  		          <name>Manage Distributed Builds</name>
+  		          <permanent>true</permanent>
+  		          <operation>continuum-manage-distributed-builds</operation>
+  		          <resource>global</resource>
+  		        </permission>
   		      </permissions>
   		      <parentRoles>
   		        <parentRole>system-administrator</parentRole>

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java Mon Dec  1 23:37:03 2008
@@ -20,12 +20,15 @@
  */
 
 import org.apache.continuum.configuration.BuildAgentConfiguration;
+import org.apache.continuum.distributed.BuildAgent;
+import org.apache.continuum.distributed.manager.DistributedBuildManager;
 import org.apache.maven.continuum.configuration.ConfigurationService;
 import org.apache.maven.continuum.model.system.Installation;
 import org.apache.maven.continuum.security.ContinuumRoleConstants;
 import org.apache.maven.continuum.web.action.ContinuumConfirmAction;
 import org.apache.struts2.ServletActionContext;
 import org.codehaus.plexus.redback.rbac.Resource;
+import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.redback.integration.interceptor.SecureAction;
 import org.codehaus.redback.integration.interceptor.SecureActionBundle;
 import org.codehaus.redback.integration.interceptor.SecureActionException;
@@ -40,6 +43,11 @@
     extends ContinuumConfirmAction
     implements SecureAction
 {
+    /**
+     * @plexus.requirement
+     */
+    private DistributedBuildManager distributedBuildManager;
+    
     private List<BuildAgentConfiguration> buildAgents;
 
     private BuildAgentConfiguration buildAgent;
@@ -50,6 +58,25 @@
 
     private String message;
 
+    public String input()
+        throws Exception
+    {
+        if ( buildAgent != null && StringUtils.isBlank( buildAgent.getUrl() ) )
+        {
+            List<BuildAgentConfiguration> agents = getContinuum().getConfiguration().getBuildAgents();
+            
+            for ( BuildAgentConfiguration agent : agents )
+            {
+                if ( agent.getUrl().equals( buildAgent.getUrl() ) )
+                {
+                    buildAgent = agent;
+                }
+            }
+        }
+
+        return INPUT;
+    }
+
     public String list()
         throws Exception
     {
@@ -61,6 +88,7 @@
         }
 
         this.buildAgents = getContinuum().getConfiguration().getBuildAgents();
+
         return SUCCESS;
     }
 
@@ -100,6 +128,8 @@
 
         configuration.addBuildAgent( buildAgent );
 
+        distributedBuildManager.reload();
+
         return SUCCESS;
     }
 
@@ -110,7 +140,26 @@
         {
             return CONFIRM;
         }
-        
+
+        List<BuildAgent> agents = distributedBuildManager.getBuildAgents();
+
+        for ( BuildAgent agent : agents )
+        {
+            if ( agent.getUrl().equals( buildAgent.getUrl() ) )
+            {
+                if ( agent.isBusy() )
+                {
+                    message = "buildAgent.error.delete.busy";
+                    return ERROR;
+                }
+                else
+                {
+                    agents.remove( agent );
+                    break;
+                }
+            }
+        }
+
         ConfigurationService configuration = getContinuum().getConfiguration();
 
         for ( BuildAgentConfiguration agent : configuration.getBuildAgents() )

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/DistributedBuildAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/DistributedBuildAction.java?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/DistributedBuildAction.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/DistributedBuildAction.java Mon Dec  1 23:37:03 2008
@@ -19,8 +19,6 @@
  * under the License.
  */
 
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java Mon Dec  1 23:37:03 2008
@@ -59,6 +59,8 @@
 
     private boolean requireReleaseOutput;
 
+    private boolean distributedBuildEnabled;
+
     public void prepare()
     {
         ConfigurationService configuration = getContinuum().getConfiguration();
@@ -99,6 +101,8 @@
         
         String requireRelease = ServletActionContext.getRequest().getParameter( "requireReleaseOutput" );
         setRequireReleaseOutput( new Boolean( requireRelease ) );
+
+        distributedBuildEnabled = configuration.isDistributedBuildEnabled();
     }
 
     public String input()
@@ -147,6 +151,8 @@
             configuration.setReleaseOutputDirectory( null );
         }
 
+        configuration.setDistributedBuildEnabled( distributedBuildEnabled );
+
         configuration.store();
 
         return SUCCESS;
@@ -221,4 +227,14 @@
     {
         this.requireReleaseOutput = requireReleaseOutput;
     }
+
+    public boolean isDistributedBuildEnabled()
+    {
+        return distributedBuildEnabled;
+    }
+
+    public void setDistributedBuildEnabled( boolean distributedBuildEnabled )
+    {
+        this.distributedBuildEnabled = distributedBuildEnabled;
+    }
 }

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/mdo/view-models.mdo
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/mdo/view-models.mdo?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/mdo/view-models.mdo (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/mdo/view-models.mdo Mon Dec  1 23:37:03 2008
@@ -475,5 +475,49 @@
         </field>
       </fields>
     </class>    
+    <class>
+      <name>BuildAgentSummary</name>
+      <version>1.0.0+</version>
+      <fields>
+        <field>
+          <name>url</name>
+          <version>1.0.0</version>
+          <required>true</required>
+          <description>URL of the build agent</description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>description</name>
+          <version>1.0.0</version>
+          <required>false</required>
+          <description>Description of the build agent</description>
+          <type>String</type>
+        </field>
+        <field>
+          <name>enabled</name>
+          <version>1.0.0</version>
+          <required>true</required>
+          <description>Determines if the build agent is enabled</description>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>busy</name>
+          <version>1.0.0</version>
+          <required>true</required>
+          <description>Determines if the build agent is busy</description>
+          <type>boolean</type>
+        </field>
+        <field>
+          <name>projects</name>
+          <version>1.0.0</version>
+          <description></description>
+          <required>false</required>
+          <association>
+            <type>ProjectSummary</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
+      </fields>
+    </class>
   </classes>
 </model>

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/resources/struts.xml Mon Dec  1 23:37:03 2008
@@ -863,6 +863,11 @@
       <result name="success">/WEB-INF/jsp/admin/buildAgentsList.jsp</result>
     </action>
     
+    <action name="editBuildAgent" class="buildAgent" method="input">
+      <result name="input">/WEB-INF/jsp/admin/editBuildAgent.jsp</result>
+      <result name="error">/WEB-INF/jsp/admin/editBuildAgent.jsp</result>
+    </action>
+    
     <action name="saveBuildAgent" class="buildAgent" method="save">
       <result name="input">/WEB-INF/jsp/admin/addBuildAgent.jsp</result>
       <result name="error">/WEB-INF/jsp/admin/addBuildAgent.jsp</result>

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildAgentsList.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildAgentsList.jsp?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildAgentsList.jsp (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildAgentsList.jsp Mon Dec  1 23:37:03 2008
@@ -52,19 +52,27 @@
             </ec:column>
             <ec:column property="enabled" title="buildAgents.table.enabled"/>
             <ec:column property="description" title="buildAgents.table.description"/>
+            <ec:column property="editActions" title="&nbsp;" width="1%">
+              <s:url id="editBuildAgentUrl" action="editBuildAgent">
+                <s:param name="buildAgent.url">${pageScope.buildAgent.url}</s:param>
+              </s:url>
+              <s:a href="%{editBuildAgentUrl}">
+                <img src="<s:url value='/images/edit.gif' includeParams="none"/>" alt="<s:text name='edit'/>" title="<s:text name='edit'/>" border="0"/>
+              </s:a>
+            </ec:column>
             <ec:column property="deleteActions" title="&nbsp;" width="1%">
               <s:url id="removeBuildAgentUrl" action="removeBuildAgent">
                 <s:param name="buildAgent.url">${pageScope.buildAgent.url}</s:param>
               </s:url>
               <s:a href="%{removeBuildAgentUrl}">
-                <img src="<s:url value='/images/delete.gif' includeParams="none"/>" alt="<s:text name='delete'/>" border="0">
+                <img src="<s:url value='/images/delete.gif' includeParams="none"/>" alt="<s:text name='delete'/>" title="<s:text name='delete'/>" border="0"/>
               </s:a>
             </ec:column>
           </ec:row>
         </ec:table>
       </div>
       <div class="functnbar3">
-        <s:form action="addBuildAgent" method="post">
+        <s:form name="addBuildAgent" action="editBuildAgent" method="post">
           <s:submit value="%{getText('add')}"/>
         </s:form>
       </div>

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp Mon Dec  1 23:37:03 2008
@@ -40,6 +40,7 @@
         <c1:data label="%{getText('configuration.deploymentRepositoryDirectory.label')}"
                  name="deploymentRepositoryDirectory"/>
         <c1:data label="%{getText('configuration.baseUrl.label')}" name="baseUrl"/>
+        <c1:data label="%{getText('configuration.distributedBuildEnabled.label')}" name="distributedBuildEnabled"/>
       </table>
       <div class="functnbar3">
         <s:form action="configuration!input.action" method="post">

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp Mon Dec  1 23:37:03 2008
@@ -83,6 +83,11 @@
               </p></s:param>
             </s:textfield>
 
+		    <s:checkbox label="%{getText('configuration.distributedBuildEnabled.label')}" name="distributedBuildEnabled">
+		      <s:param name="desc"><p>
+		        <s:text name="configuration.distributedBuildEnabled.label"/>
+		      </p></s:param>
+		    </s:checkbox>
             <s:hidden name="requireReleaseOutput"/>
           </tbody>
         </table>

Copied: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildAgent.jsp (from r722280, continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/addBuildAgent.jsp)
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildAgent.jsp?p2=continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildAgent.jsp&p1=continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/addBuildAgent.jsp&r1=722280&r2=722393&rev=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/addBuildAgent.jsp (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editBuildAgent.jsp Mon Dec  1 23:37:03 2008
@@ -45,7 +45,7 @@
               <s:textfield label="%{getText('buildAgent.description.label')}" name="buildAgent.description"/>
               <s:checkbox label="%{getText('buildAgent.enabled.label')}" name="enabled" value="enabled" fieldValue="true"/>
             </table>
-          
+            <s:hidden name="buildAgent.url"/>
             <div class="functnbar3">
               <c1:submitcancel value="%{getText('save')}" cancel="%{getText('cancel')}"/>
             </div>

Modified: continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp?rev=722393&r1=722392&r2=722393&view=diff
==============================================================================
--- continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp (original)
+++ continuum/branches/continuum-distributed-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp Mon Dec  1 23:37:03 2008
@@ -158,6 +158,14 @@
             </s:a>
           </div>
         </redback:ifAuthorized>
+          <s:url id="buildAgentList" action="buildAgentList" namespace="/security" includeParams="none"/>
+          <div class="body">
+            <s:a href="%{buildAgentList}">
+              <s:text name="menu.administration.buildAgents"/>
+            </s:a>
+          </div>
+        <redback:ifAuthorized permission="continuum-manage-distributed-builds">
+        </redback:ifAuthorized>
         <redback:ifAuthorized permission="continuum-manage-users">
           <s:url id="userListUrl" action="userlist" namespace="/security" includeParams="none"/>
           <div class="body">