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.admin.ui.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.common.mojo.AbstractKSMojo; 027import org.kuali.student.contract.model.ServiceContractModel; 028import org.kuali.student.contract.model.util.ServicesFilterByKeys; 029import org.slf4j.Logger; 030import org.slf4j.LoggerFactory; 031 032/** 033 * 034 * @author nwright 035 * 036 * @goal kscreateadminui 037 * @phase none 038 * @requiresProject true 039 */ 040public class KSCreateAdminUiMojo extends AbstractKSMojo { 041 042 private static final Logger log = LoggerFactory.getLogger(KSCreateAdminUiMojo.class); 043 044 public KSCreateAdminUiMojo() { 045 } 046 public String targetDir; 047 048 public String getTargetDir() { 049 return targetDir; 050 } 051 052 public void setTargetDir(String targetDir) { 053 this.targetDir = targetDir; 054 } 055 056 @Override 057 public void execute() throws MojoExecutionException, MojoFailureException { 058 ServiceContractModel model = getModel(); 059 validate(model); 060 if (targetDir == null) { 061 targetDir = "target/generated-sources/admin-ui"; 062 } 063// ServicesFilterKualiStudentOnly filter = new ServicesFilterKualiStudentOnly (); 064 List<String> servKeys = new ArrayList<String>(); 065 servKeys.add("Atp"); 066// servKeys.add("Type"); 067// servKeys.add("State"); 068// servKeys.add("LRC"); 069 servKeys.add("Organization"); 070 ServicesFilterByKeys filter = new ServicesFilterByKeys(servKeys); 071 072 AdminUiWriter instance = 073 new AdminUiWriter(model, 074 targetDir, 075 AdminUiWriter.DEFAULT_ROOT_PACKAGE, 076 // TODO: inject filters as part of the Mojo parameters 077 filter); 078 instance.write(); 079 080 } 081 private static final String CORE_DIRECTORY = "D:/svn/org-fixer/ks-api/ks-core-api/src/main"; 082 // "C:/svn/maven-dictionary-generator/trunk/src/main/java/org/kuali/student/core"; 083 private static final String COMMON_DIRECTORY = "D:/svn/org-fixer/ks-api/ks-common-api/src/main/java"; 084 private static final String ENROLL_DIRECTORY = "D:/svn/org-fixer/ks-api/ks-enroll-api/src/main/java"; 085 private static final String LUM_DIRECTORY = "D:/svn/org-fixer/ks-api/ks-lum-api/src/main/java"; 086 private static final String RICE_CORE_API_DIRECTORY = "D:/svn/rice/rice-2.2.0-M3/core/api/src/main/java"; 087 private static final String RICE_KIM_API_DIRECTORY = "D:/svn/rice/rice-2.2.0-M3/kim/kim-api/src/main/java"; 088 private static final String TEST_SOURCE_DIRECTORY = 089 "src/test/java/org/kuali/student/contract/model/test/source"; 090 private static final String TARGET_GENERATED_SOURCES = "target/generated-sources"; 091 private static final String STANDALONE_MAIN_DIRECTORY = "D:/svn/ks/ks-standalone-admin-app/src/main"; 092 private static final String ORG_FIXER_CORE_UI_MAIN_DIRECTORY = "D:/svn/org-fixer/ks-core/ks-core-ui/src/main"; 093 094 public static void main(String[] args) { 095 log.info("execute"); 096 List<String> srcDirs = new ArrayList<String>(); 097 srcDirs.add(COMMON_DIRECTORY); 098 srcDirs.add(CORE_DIRECTORY); 099 srcDirs.add(LUM_DIRECTORY); 100 srcDirs.add(ENROLL_DIRECTORY); 101// srcDirs.add(RICE_KIM_API_DIRECTORY); 102// srcDirs.add(RICE_CORE_API_DIRECTORY); 103 KSCreateAdminUiMojo instance = new KSCreateAdminUiMojo(); 104 Map pluginContext = new HashMap(); 105 MavenProject project = new MavenProject(); 106 pluginContext.put("project", project); 107 instance.setPluginContext(pluginContext); 108 instance.setSourceDirs(srcDirs); 109 instance.setTargetDir(ORG_FIXER_CORE_UI_MAIN_DIRECTORY); 110 try { 111 instance.execute(); 112 // assertTrue(new File(instance.getOutputDirectory() + "/" + "ks-LprInfo-dictionary.xml").exists()); 113 } catch (MojoExecutionException ex) { 114 throw new RuntimeException(ex); 115 } catch (MojoFailureException ex) { 116 throw new RuntimeException(ex); 117 } 118 } 119}