Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010-2013, CloudBees Inc.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.cloudbees.sdk.commands.app;
 
 import  com.cloudbees.sdk.cli.BeesCommand;
 import  com.cloudbees.sdk.cli.CLICommand;
 
 import java.util.List;
 import java.util.Map;

Author(s):
Fabian Donze
 
 @BeesCommand(group="Application", description = "Create a new application")
 @CLICommand("app:create")
 public class ApplicationCreate extends ApplicationBase {
     private Boolean withCD;
     private Boolean withCI;
     private Boolean withRepo;
     private Boolean useApp;
     private String template;
     private String repoType;
     private String ciType;
     private String type;
     private String useRepo;
     private String ciOptions;
     private Map<StringStringapplicationParameters = new HashMap<StringString>();
     private Map<StringStringconfigVariables = new HashMap<StringString>();
     private Map<StringStringruntimeParameters = new HashMap<StringString>();
 
     public ApplicationCreate() {
         setArgumentExpected(0);
     }
 
     public void setWithCD(Boolean withCD) {
         this. = withCD;
     }
 
     public boolean withCD() {
         return  == null ? false : ;
     }
 
     public void setWithCI(Boolean withCI) {
         this. = withCI;
     }
 
     public boolean withCI() {
         return  == null ? false : ;
     }
 
     public boolean withRepo() {
         return  == null ? false : ;
     }
 
     public void setWithRepo(Boolean withRepo) {
         this. = withRepo;
     }
 
     public String getTemplate() {
         return ;
     }
 
     public void setTemplate(String template) {
         this. = template;
     }
 
     public boolean useExistingApp() {
         return  == null ? false : ;
     }
 
     public void setUseApp(Boolean useApp) {
         this. = useApp;
     }
 
     public String getRepoType() {
         return  != null ?  : "git";
     }
 
     public void setRepoType(String repoType) {
         this. = repoType;
     }
    public String getCiType() {
        return  != null ?  : "maven";
    }
    public void setCiType(String ciType) {
        this. = ciType;
    }
    public String getType() {
        return ;
    }
    public void setType(String type) {
        this. = type;
    }
    public void setUseRepo(String useRepo) {
        this. = useRepo;
    }
    public String getCiOptions() {
        return ;
    }
    public void setCiOptions(String ciOptions) {
        this. = ciOptions;
    }
    public Map<StringStringgetConfigVariables() {
        return ;
    }
    public void setP(String var) {
        var = var.trim();
        int idx = isParameter(var);
        if (idx > -1) {
            .put(var.substring(0, idx), var.substring(idx + 1));
        }
    }
    public Map<StringStringgetRuntimeParameters() {
        return ;
    }
    public void setR(String rt) {
        rt = rt.trim();
        int idx = isParameter(rt);
        if (idx > -1) {
            .put(rt.substring(0, idx), rt.substring(idx + 1));
        }
    }
    @Override
    protected String getUsageMessage() {
        return "APPLICATION_ID [parameterX=valueY]";
    }
    @Override
    protected boolean preParseCommandLine() {
        if(super.preParseCommandLine()) {
            addOptionnull"withRepo"false"with repository (create a repository), default: GIT");
            addOption"re""useRepo"true"existing repository url");
            addOptionnull"withCI"false"with Continuous Integration (create|use a repository and create a Continuous Integration job)");
            addOptionnull"withCD"false"with Continuous Deployment (create|use a repository and create a Continuous Integration job with application Deployment)");
            addOptionnull"ciOptions"true"Continuous Integration optional parameters"true);
            addOptionnull"useApp"false"use existing application (do not create a new one) if the application already exists");
            addOption"at""template"true"Application archetype url template (i.e. git://git.cloudbees.com/cloudbees/the-repository-name)");
            addOption"rt""repoType"true"the repository type [git, svn], default: git"true);
            addOption"ct""ciType"true"the Continuous Integration type [maven, play], default: maven");
            addOption"t""type"true"the deployment container type [tomcat, jboss], default: tomcat");
            addOption"P"nulltrue"Application config parameter name=value" );
            addOption"R"nulltrue"Runtime config parameter name=value" );
            return true;
        }
        return false;
    }
    @Override
    protected boolean postParseCommandLine() {
        if (super.postParseCommandLine()) {
            List otherArgs = getCommandLine().getArgList();
            for (int i=0; i<otherArgs.size(); i++) {
                String str = (String)otherArgs.get(i);
                int idx = isParameter(str);
                if (idx > -1) {
                    .put(str.substring(0, idx), str.substring(idx + 1));
                }
            }
            return true;
        }
        return false;
    }
    @Override
    protected boolean execute() throws Exception {
        String appid = getAppId();
        Map<StringStringparameters = new HashMap();
        if (withRepo()) {
            parameters.put("repo_type"getRepoType());
        }
        if ( != null) {
            parameters.put("repo_url");
        }
        if (withCI()) {
            parameters.put("repo_type"getRepoType());
            parameters.put("ci_type"getCiType());
            parameters.put("with_cd""false");
        }
        if (withCD()) {
            parameters.put("repo_type"getRepoType());
            parameters.put("ci_type"getCiType());
            parameters.put("with_cd""true");
        }
        if (getCiOptions() != null) {
            parameters.put("ci_options"getCiOptions());
        }
        if (getTemplate() != null) {
            parameters.put("repo_template"getTemplate());
        }
        if (useExistingApp()) {
            parameters.put("use_existing_app""true");
        }
        if (getType() != null) {
            parameters.put("app_type"getType());
        }
        Map<StringStringrts = getRuntimeParameters();
        if (rts.size() > 0) {
            for (Map.Entry<String,Stringentry : rts.entrySet()) {
                .put("runtime." + entry.getKey(), entry.getValue());
            }
        }
        AppClient client = getBeesClient(AppClient.class);
        ApplicationCreateResponse res = client.applicationCreate(appidparametersgetConfigVariables());
        if (isTextOutput()) {
            com.cloudbees.api.ApplicationInfo applicationInfo = res.getApplicationInfo();
            ..println("Application: " + applicationInfo.getId());
            ..println("\turl: " + applicationInfo.getUrls()[0]);
            RepositoryInfo repositoryInfo = res.getRepository();
            if (repositoryInfo != null) {
                if (repositoryInfo.getName() != null)
                    ..println("Repository: " + repositoryInfo.getName());
                else
                    ..println("Repository");
                if (repositoryInfo.getUrl() != null)
                    ..println("\tconsole url: " + repositoryInfo.getUrl());
                ..println("\turl: " + repositoryInfo.getAuthenticatedUrl());
            }
            CIInfo ciInfo = res.getCIInfo();
            if (ciInfo != null) {
                ..println("CI Job: " + ciInfo.getJobName());
                ..println("\turl: " + ciInfo.getJobUrl());
            }
        } else
            printOutput(resApplicationCreateResponse.classApplicationInfo.classRepositoryInfo.classCIInfo.class);
        return true;
    }
New to GrepCode? Check out our FAQ X