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}