Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * The MIT License
   *
   * Copyright (c) 2010, Manufacture Fran├žaise des Pneumatiques Michelin, Romain Seguy
   *
   * Permission is hereby granted, free of charge, to any person obtaining a copy
   * of this software and associated documentation files (the "Software"), to deal
   * in the Software without restriction, including without limitation the rights
   * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
  *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
  *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
 
 package com.michelin.cio.hudson.plugins.clearcaseucmbaseline;
 
 import hudson.scm.SCM;
 import java.io.File;
This class is of no real use and is only there for a "ClearCase UCM baseline" option to be displayed in the "Source Code Management" section of the configuration screen of hudson.model.AbstractProjects.

If you refer to ClearCaseUcmBaselineSCM/config.jelly file, you'll see that there is no possibility to configure this option: This option is just there so that the user is displayed with a message saying that, if he wants to gets his data from a ClearCase UBM baseline, he has to actually add a "ClearCase UCM baseline" build parameter to get the real configuration fields (as defined in ClearCaseUcmBaselineParameterDefinition).

Author(s):
Romain Seguy (http://davadoc.deviantart.com)
See also:
ClearCaseUcmBaselineParameterDefinition
 
 public class ClearCaseUcmBaselineSCM extends SCM {
 
     public final static String CLEARCASE_BASELINE_ENVSTR = "CLEARCASE_BASELINE";
 
     public ClearCaseUcmBaselineSCM() {
     }

    
This method does nothing except checking that a "ClearCase UCM baseline" parameter has been defined for the job (it not, the build will fail).
 
     @Override
     public boolean checkout(AbstractBuild buildLauncher launcherFilePath workspaceBuildListener listenerFile changelogFilethrows IOExceptionInterruptedException {
         // has the project some parameters?
         if(params == null) {
             listener.fatalError("No parameters have been defined for this project: To use the ClearCase UCM baseline mode, you MUST add a '"
                     + .
                     + "' parameter to the project.");
             return false;
         }
 
         // let's count the number of CC UCM baseline paramaters for the build:
         // if we have more than 1, we'll make the job fail to avoid any issues
         // with the environment variables
         int clearCaseUcmBaselineParameters = 0;
         for(ParameterDefinition pd : params.getParameterDefinitions()) {
                 if(!(pd instanceof ClearCaseUcmBaselineParameterDefinition)) {
                     // the parameter with the name ClearCase UCM baseline is NOT
                     // a real ClearCaseUcmBaselineParameterDefinition, we make
                     // the build fail
                     listener.fatalError("A parameter named '"
                            + .
                            + "' doesn't correspond to what's expected by "
                            + Hudson.getInstance().getDescriptor(ClearCaseUcmBaselineSCM.class).getDisplayName()
                            + " (e.g. you may have added a String parameter named '"
                            + .
                            + "'); Remove it from the project configuration before trying to run the build again.");
                    return false;
                }
                clearCaseUcmBaselineParameters++;
            }
        }
        if(clearCaseUcmBaselineParameters > 1) {
            listener.fatalError("More than two '"
                    + .
                    + "' parameters have been defined for this project: Aborting the build to avoid any conflict with the "
                    + .
                    + " and "
                    + .
                    + " environment variables; Edit the project configuration and remove one of them before trying to run the build again.");
            return false;
        }
        // everything is fine (well, for the moment)
        return true;
    }
    @Override
        return null;
    }
    @Override
    public DescriptorImpl getDescriptor() {
        return (DescriptorImplsuper.getDescriptor();
    }
    @Override
    @Deprecated
    public boolean pollChanges(AbstractProject projectLauncher launcherFilePath workspaceTaskListener listenerthrows IOExceptionInterruptedException {
        return false;
    }
    // we don't need this method ==> no risk to return null
    @Override
      return null;
    }
    // we don't need this method ==> no risk to return null
    @Override
      return null;
    }
    @Extension
    public static class DescriptorImpl extends SCMDescriptor<ClearCaseUcmBaselineSCM> {
        public DescriptorImpl() {
            super(ClearCaseUcmBaselineSCM.classnull);
            load();
        }
        @Override
        public String getDisplayName() {
            return ResourceBundleHolder.get(ClearCaseUcmBaselineParameterDefinition.class).format("DisplayName");
        }
        @Override
        @Deprecated
        public SCM newInstance(StaplerRequest reqthrows FormException {
            return new ClearCaseUcmBaselineSCM();
        }
    }
New to GrepCode? Check out our FAQ X