001/** 002 * Copyright 2004-2014 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.student.mock.mojo; 017 018import java.util.ArrayList; 019import java.util.HashMap; 020import java.util.List; 021import java.util.Map; 022 023import org.apache.maven.plugin.MojoExecutionException; 024import org.apache.maven.plugin.MojoFailureException; 025import org.apache.maven.project.MavenProject; 026import org.kuali.student.admin.ui.mojo.KSCreateAdminUiMojo; 027import org.kuali.student.common.mojo.AbstractKSMojo; 028import org.kuali.student.contract.model.ServiceContractModel; 029import org.kuali.student.contract.model.impl.ServiceContractModelPescXsdLoader; 030import org.kuali.student.contract.model.util.ServicesFilterByKeys; 031import org.slf4j.Logger; 032import org.slf4j.LoggerFactory; 033 034/** 035 * 036 * @author nwright 037 * 038 * @goal kscreatemock 039 * @phase site 040 * @requiresProject true 041 */ 042public class KSCreateMockImplMojo extends AbstractKSMojo { 043 044 private static Logger log = LoggerFactory.getLogger(KSCreateMockImplMojo.class); 045 046 public KSCreateMockImplMojo() { 047 } 048 049 private String targetDir; 050 051 public String getTargetDir() { 052 return targetDir; 053 } 054 055 public void setTargetDir(String targetDir) { 056 this.targetDir = targetDir; 057 } 058 059 060 061 @Override 062 public void execute() throws MojoExecutionException, MojoFailureException { 063 ServiceContractModel model = getModel(); 064 validate(model); 065 if (targetDir == null) { 066 targetDir = "target/generated-mock-impls"; 067 } 068 List<String> servKeys = new ArrayList<String>(); 069// servKeys.add("AcademicCalendar"); 070 servKeys.add("AcademicRecord"); 071// servKeys.add("Appointment"); 072// servKeys.add("Atp"); 073// servKeys.add("BatchJobResult"); 074// servKeys.add("Clu"); 075// servKeys.add("Comment"); 076// servKeys.add("CourseOffering"); 077// servKeys.add("CourseOfferingSet"); 078// servKeys.add("CourseRegistration"); 079// servKeys.add("Course"); 080// servKeys.add("CourseWaitlist"); 081// servKeys.add("DataDictionary"); 082// servKeys.add("Document"); 083// servKeys.add("EnumerationManagement"); 084// servKeys.add("Exemption"); 085// servKeys.add("Fee"); 086// servKeys.add("Grading"); 087// servKeys.add("Hold"); 088// servKeys.add("LRC"); 089// servKeys.add("LearningObjective"); 090// servKeys.add("LearningResultRecord"); 091// servKeys.add("LprRoster"); 092// servKeys.add("Lpr"); 093// servKeys.add("Lui"); 094// servKeys.add("Message"); 095// servKeys.add("Organization"); 096// servKeys.add("Population"); 097// servKeys.add("Process"); 098// servKeys.add("Program"); 099// servKeys.add("Proposal"); 100// servKeys.add("Room"); 101// servKeys.add("Scheduling"); 102// servKeys.add("Search"); 103// servKeys.add("State"); 104// servKeys.add("Statement"); 105// servKeys.add("Type"); 106// servKeys.add("VersionManagement"); 107// servKeys.add("Type"); 108// servKeys.add("State"); 109// servKeys.add("RICE.Permission"); 110// servKeys.add("RICE.Role"); 111 ServicesFilterByKeys filter = new ServicesFilterByKeys(servKeys); 112 boolean isR1 = false; 113 MockImplWriter instance = 114 new MockImplWriter(model, 115 targetDir, 116 MockImplWriter.ROOT_PACKAGE, 117 filter, 118 isR1); 119 instance.write(); 120 121 } 122 123 124 125 private static final String CORE_DIRECTORY = "D:/svn/ks/services/ks-api/ks-core-api/src/main"; 126 // "C:/svn/maven-dictionary-generator/trunk/src/main/java/org/kuali/student/core"; 127 private static final String COMMON_DIRECTORY = "D:/svn/ks/services/ks-api/ks-common-api/src/main/java"; 128 private static final String ENROLL_DIRECTORY = "D:/svn/ks/services/ks-api/ks-enroll-api/src/main/java"; 129 private static final String LUM_DIRECTORY = "D:/svn/ks/services/ks-api/ks-lum-api/src/main/java"; 130 private static final String RICE_CORE_API_DIRECTORY = "D:/svn/rice/rice-2.2.0/core/api/src/main/java"; 131 private static final String RICE_KIM_API_DIRECTORY = "D:/svn/rice/rice-2.2.0/kim/kim-api/src/main/java"; 132 private static final String RICE_KRMS_API_DIRECTORY = "D:/svn/rice/rice-2.2.0/krms/api/src/main/java"; 133 private static final String TEST_SOURCE_DIRECTORY = 134 "src/test/java/org/kuali/student/contract/model/test/source"; 135 private static final String TARGET_GENERATED_SOURCES = "target/generated-sources"; 136 private static final String STANDALONE_MAIN_DIRECTORY = "D:/svn/ks/ks-standalone-admin-app/src/main"; 137 private static final String SERVICES_ENROLL_IMPL = "D:/svn/ks/services/ks-enroll/ks-enroll-impl/src/main/java"; 138 private static final String CM_CORE_API = "D:/svn/ks/CM-2.0/ks-api/ks-core-api/src/main/java"; 139 private static final String TRUNK_CORE_IMPL = "D:/svn/ks/trunk/ks-core/ks-core-impl/src/main/java"; 140 private static final String TRUNK_ENROLL_IMPL = "D:/svn/ks/trunk/ks-enroll/ks-enroll-impl/src/main/java"; 141 private static final String BC_INTEGRATION_FMS_UTIL = "D:/svn/BCAll/Student/trunk/BC-KS-Integrations/bc-integration-master/bc-ksa-fms-integration/src/main/java"; 142 private static final String TRUNK_ENROLL_IMPL_KRMS_API = "D:/svn/ks/trunk/ks-enroll/ks-enroll-impl/src/main/java/org/kuali/rice/krms/api"; 143 144 145 public static void main(String[] args) { 146 log.info("execute"); 147 List<String> srcDirs = new ArrayList<String>(); 148 srcDirs.add(COMMON_DIRECTORY); 149 srcDirs.add(CORE_DIRECTORY); 150 srcDirs.add(LUM_DIRECTORY); 151 srcDirs.add(ENROLL_DIRECTORY); 152// srcDirs.add(RICE_KIM_API_DIRECTORY); 153// srcDirs.add(RICE_CORE_API_DIRECTORY); 154// srcDirs.add(RICE_KRMS_API_DIRECTORY); 155// srcDirs.add(TRUNK_ENROLL_IMPL_KRMS_API); 156 KSCreateMockImplMojo instance = new KSCreateMockImplMojo(); 157 Map pluginContext = new HashMap(); 158 MavenProject project = new MavenProject(); 159 pluginContext.put("project", project); 160 instance.setPluginContext(pluginContext); 161 instance.setSourceDirs(srcDirs); 162// instance.setTargetDir(SERVICES_ENROLL_IMPL); 163// instance.setTargetDir(CM_CORE_API); 164 instance.setTargetDir(BC_INTEGRATION_FMS_UTIL); 165 try { 166 instance.execute(); 167 // assertTrue(new File(instance.getOutputDirectory() + "/" + "ks-LprInfo-dictionary.xml").exists()); 168 } catch (MojoExecutionException ex) { 169 throw new RuntimeException(ex); 170 } catch (MojoFailureException ex) { 171 throw new RuntimeException(ex); 172 } 173 } 174}