001 /*
002 * Copyright 2009 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.osedu.org/licenses/ECL-2.0
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 */
016 package org.kuali.student.remote.impl.mojo;
017
018 import java.util.ArrayList;
019 import java.util.HashMap;
020 import java.util.List;
021 import java.util.Map;
022
023 import org.apache.maven.plugin.MojoExecutionException;
024 import org.apache.maven.plugin.MojoFailureException;
025 import org.apache.maven.project.MavenProject;
026 import org.kuali.student.common.mojo.AbstractKSMojo;
027 import org.kuali.student.contract.model.ServiceContractModel;
028 import org.kuali.student.contract.model.impl.ServiceContractModelPescXsdLoader;
029 import org.kuali.student.contract.model.util.ServicesFilterByKeys;
030 import org.slf4j.Logger;
031 import org.slf4j.LoggerFactory;
032
033 /**
034 *
035 * @author nwright
036 *
037 * @goal kscreateremoteimpl
038 * @phase none
039 * @requiresProject true
040 */
041 public class KSCreateRemoteImplMojo extends AbstractKSMojo {
042
043 private static Logger log = LoggerFactory.getLogger(KSCreateRemoteImplMojo.class);
044
045 public KSCreateRemoteImplMojo() {
046 }
047 public String targetDir;
048
049 public String getTargetDir() {
050 return targetDir;
051 }
052
053 public void setTargetDir(String targetDir) {
054 this.targetDir = targetDir;
055 }
056
057 @Override
058 public void execute() throws MojoExecutionException, MojoFailureException {
059
060 ServiceContractModel model = getModel();
061 validate(model);
062 if (targetDir == null) {
063 String targetDir = "target/generated-sources/remote-impl";
064 }
065 List<String> servKeys = new ArrayList<String>();
066 servKeys.add("AcademicCalendar");
067 // servKeys.add("AcademicRecord");
068 servKeys.add("Appointment");
069 // servKeys.add("Atp");
070 // servKeys.add("BatchJobResult");
071 servKeys.add("Clu");
072 servKeys.add("Comment");
073 servKeys.add("CourseOffering");
074 servKeys.add("CourseOfferingSet");
075 // servKeys.add("CourseRegistration");
076 servKeys.add("Course");
077 // servKeys.add("CourseWaitlist");
078 // servKeys.add("DataDictionary");
079 servKeys.add("Document");
080 servKeys.add("EnumerationManagement");
081 servKeys.add("Exemption");
082 // servKeys.add("Fee");
083 // servKeys.add("Grading");
084 servKeys.add("Hold");
085 // servKeys.add("LRC");
086 servKeys.add("LearningObjective");
087 // servKeys.add("LearningResultRecord");
088 // servKeys.add("LprRoster");
089 servKeys.add("Lpr");
090 servKeys.add("Lui");
091 servKeys.add("Message");
092 servKeys.add("Organization");
093 servKeys.add("Population");
094 servKeys.add("Process");
095 servKeys.add("Program");
096 servKeys.add("Proposal");
097 servKeys.add("Room");
098 servKeys.add("Scheduling");
099 // servKeys.add("Search");
100 // servKeys.add("State");
101 // servKeys.add("Statement");
102 // servKeys.add("Type");
103 // servKeys.add("VersionManagement");
104
105 // servKeys.add("Atp");
106 // servKeys.add("Type");
107 // servKeys.add("State");
108 // servKeys.add("LRC");
109 // servKeys.add("RICE.Permission");
110 // servKeys.add("RICE.Role");
111 ServicesFilterByKeys filter = new ServicesFilterByKeys(servKeys);
112 RemoteImplWriter instance =
113 new RemoteImplWriter(model,
114 targetDir,
115 RemoteImplWriter.DEFAULT_ROOT_PACKAGE,
116 // TODO: inject filters as part of the Mojo parameters
117 filter);
118 instance.write();
119
120 }
121 private static final String CORE_DIRECTORY = "D:/svn/ks/trunk/ks-api/ks-core-api/src/main";
122 // "C:/svn/maven-dictionary-generator/trunk/src/main/java/org/kuali/student/core";
123 private static final String COMMON_DIRECTORY = "D:/svn/ks/trunk/ks-api/ks-common-api/src/main/java";
124 private static final String ENROLL_DIRECTORY = "D:/svn/ks/trunk/ks-api/ks-enroll-api/src/main/java";
125 private static final String LUM_DIRECTORY = "D:/svn/ks/trunk/ks-api/ks-lum-api/src/main/java";
126 private static final String RICE_CORE_API_DIRECTORY = "D:/svn/rice/rice-2.2.0-M3/core/api/src/main/java";
127 private static final String RICE_KIM_API_DIRECTORY = "D:/svn/rice/rice-2.2.0-M3/kim/kim-api/src/main/java";
128 private static final String TEST_SOURCE_DIRECTORY =
129 "src/test/java/org/kuali/student/contract/model/test/source";
130 private static final String TARGET_GENERATED_SOURCES = "target/generated-sources";
131 private static final String STANDALONE_DIRECTORY = "D:/svn/ks/ks-standalone-admin-app/src";
132
133 public static void main(String[] args) {
134 log.info("execute");
135 List<String> srcDirs = new ArrayList<String>();
136 srcDirs.add(COMMON_DIRECTORY);
137 srcDirs.add(CORE_DIRECTORY);
138 srcDirs.add(LUM_DIRECTORY);
139 srcDirs.add(ENROLL_DIRECTORY);
140 srcDirs.add(RICE_KIM_API_DIRECTORY);
141 // srcDirs.add(RICE_CORE_API_DIRECTORY);
142 KSCreateRemoteImplMojo instance = new KSCreateRemoteImplMojo();
143 Map pluginContext = new HashMap();
144 MavenProject project = new MavenProject();
145 pluginContext.put("project", project);
146 instance.setPluginContext(pluginContext);
147 instance.setSourceDirs(srcDirs);
148 instance.setTargetDir(STANDALONE_DIRECTORY);
149 try {
150 instance.execute();
151 } catch (MojoExecutionException ex) {
152 throw new RuntimeException(ex);
153 } catch (MojoFailureException ex) {
154 throw new RuntimeException(ex);
155 }
156 }
157 }