Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2002-2012 Alibaba Group Holding Limited.
   * All rights reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *    http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.alibaba.maven.plugin.springext;
 
 import java.io.File;
 import java.net.URL;
 import java.util.List;
 
Exports schema files to specified directory.

Author(s):
Michael Zhou
Goal:
export
Description:
Runs SchemaExporter to save schema files within current maven project to specified directory.
 
 public class SpringExtExecMojo extends AbstractSpringExtMojo {
     private final static String mainClass = "com.alibaba.citrus.springext.export.SchemaExporterCLI";

    
The temporary directory to use for the webapp. Defaults to target/schemas.

Parameter:
expression="${destdir}" default-value="${project.build.directory}/schemas"
Required:
 
     private File destdir;

    
The URI prefix used to replace the absolute URI imported or included in schemas.

Parameter:
expression="${uriPrefix}"
 
     private String uriPrefix;
 
     public void execute() throws MojoExecutionExceptionMojoFailureException {
         try {
             ClassLoader cl = createClassLoader();
             String[] args = createArgs();
 
             if (getLog().isDebugEnabled()) {
                 StringBuffer msg = new StringBuffer();
 
                 msg.append("Invoking : ").append().append(".main(");
 
                 for (int i = 0; i < args.lengthi++) {
                     if (i > 0) {
                         msg.append(", ");
                     }
 
                     msg.append(args[i]);
                 }
 
                 msg.append(")");
 
                 getLog().debug(msg.toString());
             }
 
             run(clargs);
         } catch (Exception e) {
             throw new MojoExecutionException("Failure: " + e.getClass().getName() + " " + e.getMessage(), e);
         }
     }
 
     private void run(ClassLoader clString mainClassString[] argsthrows Exception {
         ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
 
         try {
             Thread.currentThread().setContextClassLoader(cl);
 
             Class clazz = cl.loadClass(mainClass);
 
             Method main = clazz.getMethod("main"new Class[] { String[].class });
 
             if (!main.isAccessible()) {
                 main.setAccessible(true);
            }
            main.invoke(mainnew Object[] { args });
        } finally {
            Thread.currentThread().setContextClassLoader(oldLoader);
        }
    }
    private String[] createArgs() throws Exception {
        List args = new ArrayList(3);
        if (getLog().isDebugEnabled()) {
            args.add("-debug");
        }
        args.add(.getCanonicalPath());
        if ( != null) {
            args.add();
        }
        return (String[]) args.toArray(new String[args.size()]);
    }
    private ClassLoader createClassLoader() throws Exception {
        List classPathFiles = createClassPath();
        URL[] urls = new URL[classPathFiles.size()];
        for (int i = 0; i < classPathFiles.size(); i++) {
            urls[i] = ((FileclassPathFiles.get(i)).toURI().toURL();
        }
        return new URLClassLoader(urls);
    }
New to GrepCode? Check out our FAQ X