001    /**
002     * Copyright 2013 The Kuali Foundation Licensed under the
003     * Educational Community License, Version 2.0 (the "License"); you may
004     * not use this file except in compliance with the License. You may
005     * obtain a copy of the License at
006     *
007     * http://www.osedu.org/licenses/ECL-2.0
008     *
009     * Unless required by applicable law or agreed to in writing,
010     * software distributed under the License is distributed on an "AS IS"
011     * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
012     * or implied. See the License for the specific language governing
013     * permissions and limitations under the License.
014     *
015     * Created by Mezba Mahtab (mezba.mahtab@utoronto.ca) on 3/8/13
016     */
017    package org.kuali.student.mock.mojo;
018    
019    import org.apache.maven.plugin.MojoExecutionException;
020    import org.apache.maven.plugin.MojoFailureException;
021    import org.apache.maven.project.MavenProject;
022    import org.kuali.student.common.mojo.AbstractKSMojo;
023    import org.kuali.student.contract.model.ServiceContractModel;
024    import org.kuali.student.contract.model.impl.ServiceContractModelPescXsdLoader;
025    import org.slf4j.Logger;
026    import org.slf4j.LoggerFactory;
027    
028    import java.util.ArrayList;
029    import java.util.HashMap;
030    import java.util.List;
031    import java.util.Map;
032    
033    /**
034     * This class associates a mojo to create the conformance tests.
035     *
036     * @goal kscreateconftest
037     * @phase site
038     * @requiresProject true
039     * @author Mezba Mahtab (mezba.mahtab@utoronto.ca)
040     */
041    public class KSCreateConformanceTestMojo extends AbstractKSMojo {
042    
043        private static Logger log = LoggerFactory.getLogger(KSCreateConformanceTestMojo.class);
044        
045        ///////////////////////////
046        // Data Variables
047        ///////////////////////////
048    
049        private String targetDir;
050    
051        ///////////////////////////
052        // Getters and Setters
053        ///////////////////////////
054    
055        public String getTargetDir() {
056            return targetDir;
057        }
058    
059        public void setTargetDir(String targetDir) {
060            this.targetDir = targetDir;
061        }
062    
063        ///////////////////////////
064        // Constructor
065        ///////////////////////////
066    
067        public KSCreateConformanceTestMojo() {}
068    
069        ////////////////////////////
070        // Functional Methods
071        ////////////////////////////
072    
073        @Override
074        public void execute() throws MojoExecutionException, MojoFailureException {
075    
076            ServiceContractModel model = getModel();
077            validate(model);
078            if (targetDir == null) {
079                targetDir = "target/generated-conf-tests";
080            }
081            boolean isR1 = false;
082            ConformanceTestWriter instance =
083                    new ConformanceTestWriter(model,
084                            targetDir,
085                            MockImplWriter.ROOT_PACKAGE,
086                            null,
087                            isR1);
088            instance.write();
089        }
090    
091        public static void main (String [] args) {
092            log.info("execute");
093            List<String> srcDirs = new ArrayList<String>();
094            srcDirs.add("C:/Users/mahtabme/kuali/student/enrollment/aggregate/branches/services/ks-api/ks-common-api/src/main/java"); // common
095            srcDirs.add("C:/Users/mahtabme/kuali/student/enrollment/aggregate/branches/services/ks-api/ks-core-api/src/main"); // core
096            srcDirs.add("C:/Users/mahtabme/kuali/student/enrollment/aggregate/branches/services/ks-api/ks-lum-api/src/main/java"); // lum
097            srcDirs.add("C:/Users/mahtabme/kuali/student/enrollment/aggregate/branches/services/ks-api/ks-enroll-api/src/main/java"); // enroll
098            KSCreateConformanceTestMojo instance = new KSCreateConformanceTestMojo();
099            Map pluginContext = new HashMap();
100            MavenProject project = new MavenProject();
101            pluginContext.put("project", project);
102            instance.setPluginContext(pluginContext);
103            instance.setSourceDirs(srcDirs);
104            instance.setTargetDir("C:/Users/mahtabme.CC4NPBS1/kuali/student/enrollment/aggregate/branches/services/target/generated-conf-tests");
105            try {
106                instance.execute();
107                //        assertTrue(new File(instance.getOutputDirectory() + "/" + "ks-LprInfo-dictionary.xml").exists());
108            } catch (MojoExecutionException ex) {
109                throw new RuntimeException(ex);
110            } catch (MojoFailureException ex) {
111                throw new RuntimeException(ex);
112            }
113    
114        }
115    
116    
117    }