< prev index next >

jaxws/src/jdk.xml.bind/share/classes/com/sun/tools/internal/jxc/SchemaGenerator.java

Print this page




  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.tools.internal.jxc;
  27 
  28 import com.sun.tools.internal.jxc.ap.Options;
  29 import com.sun.tools.internal.xjc.BadCommandLineException;
  30 import com.sun.xml.internal.bind.util.Which;
  31 
  32 import javax.lang.model.SourceVersion;

  33 import javax.tools.DiagnosticCollector;
  34 import javax.tools.JavaCompiler;
  35 import javax.tools.JavaFileObject;
  36 import javax.tools.OptionChecker;
  37 import javax.tools.StandardJavaFileManager;
  38 import javax.tools.ToolProvider;
  39 import javax.xml.bind.JAXBContext;
  40 import java.io.File;
  41 import java.lang.reflect.InvocationTargetException;
  42 import java.lang.reflect.Method;
  43 import java.net.MalformedURLException;
  44 import java.net.URISyntaxException;
  45 import java.net.URL;
  46 import java.net.URLClassLoader;
  47 import java.util.ArrayList;
  48 import java.util.Collection;
  49 import java.util.Collections;
  50 import java.util.List;
  51 import java.util.logging.Level;
  52 import java.util.logging.Logger;


 231             JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
 232             DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
 233             StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
 234             JavacOptions options = JavacOptions.parse(compiler, fileManager, args);
 235             List<String> unrecognizedOptions = options.getUnrecognizedOptions();
 236             if (!unrecognizedOptions.isEmpty()) {
 237                 LOGGER.log(Level.WARNING, "Unrecognized options found: {0}", unrecognizedOptions);
 238             }
 239             Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(options.getFiles());
 240             JavaCompiler.CompilationTask task = compiler.getTask(
 241                     null,
 242                     fileManager,
 243                     diagnostics,
 244                     options.getRecognizedOptions(),
 245                     options.getClassNames(),
 246                     compilationUnits);
 247             com.sun.tools.internal.jxc.ap.SchemaGenerator r = new com.sun.tools.internal.jxc.ap.SchemaGenerator();
 248             if (episode != null)
 249                 r.setEpisodeFile(episode);
 250             task.setProcessors(Collections.singleton(r));
 251             return task.call();





 252         }
 253     }
 254 
 255     /**
 256           *  @author Peter von der Ahe
 257           */
 258     private static final class JavacOptions {
 259         private final List<String> recognizedOptions;
 260         private final List<String> classNames;
 261         private final List<File> files;
 262         private final List<String> unrecognizedOptions;
 263 
 264         private JavacOptions(List<String> recognizedOptions, List<String> classNames, List<File> files,
 265                              List<String> unrecognizedOptions) {
 266             this.recognizedOptions = recognizedOptions;
 267             this.classNames = classNames;
 268             this.files = files;
 269             this.unrecognizedOptions = unrecognizedOptions;
 270         }
 271 




  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package com.sun.tools.internal.jxc;
  27 
  28 import com.sun.tools.internal.jxc.ap.Options;
  29 import com.sun.tools.internal.xjc.BadCommandLineException;
  30 import com.sun.xml.internal.bind.util.Which;
  31 
  32 import javax.lang.model.SourceVersion;
  33 import javax.tools.Diagnostic;
  34 import javax.tools.DiagnosticCollector;
  35 import javax.tools.JavaCompiler;
  36 import javax.tools.JavaFileObject;
  37 import javax.tools.OptionChecker;
  38 import javax.tools.StandardJavaFileManager;
  39 import javax.tools.ToolProvider;
  40 import javax.xml.bind.JAXBContext;
  41 import java.io.File;
  42 import java.lang.reflect.InvocationTargetException;
  43 import java.lang.reflect.Method;
  44 import java.net.MalformedURLException;
  45 import java.net.URISyntaxException;
  46 import java.net.URL;
  47 import java.net.URLClassLoader;
  48 import java.util.ArrayList;
  49 import java.util.Collection;
  50 import java.util.Collections;
  51 import java.util.List;
  52 import java.util.logging.Level;
  53 import java.util.logging.Logger;


 232             JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
 233             DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
 234             StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
 235             JavacOptions options = JavacOptions.parse(compiler, fileManager, args);
 236             List<String> unrecognizedOptions = options.getUnrecognizedOptions();
 237             if (!unrecognizedOptions.isEmpty()) {
 238                 LOGGER.log(Level.WARNING, "Unrecognized options found: {0}", unrecognizedOptions);
 239             }
 240             Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(options.getFiles());
 241             JavaCompiler.CompilationTask task = compiler.getTask(
 242                     null,
 243                     fileManager,
 244                     diagnostics,
 245                     options.getRecognizedOptions(),
 246                     options.getClassNames(),
 247                     compilationUnits);
 248             com.sun.tools.internal.jxc.ap.SchemaGenerator r = new com.sun.tools.internal.jxc.ap.SchemaGenerator();
 249             if (episode != null)
 250                 r.setEpisodeFile(episode);
 251             task.setProcessors(Collections.singleton(r));
 252             boolean res = task.call();
 253             //Print messages generated by compiler
 254             for (Diagnostic<? extends JavaFileObject> d : diagnostics.getDiagnostics()) {
 255                  System.err.println(d.toString());
 256             }
 257             return res;
 258         }
 259     }
 260 
 261     /**
 262           *  @author Peter von der Ahe
 263           */
 264     private static final class JavacOptions {
 265         private final List<String> recognizedOptions;
 266         private final List<String> classNames;
 267         private final List<File> files;
 268         private final List<String> unrecognizedOptions;
 269 
 270         private JavacOptions(List<String> recognizedOptions, List<String> classNames, List<File> files,
 271                              List<String> unrecognizedOptions) {
 272             this.recognizedOptions = recognizedOptions;
 273             this.classNames = classNames;
 274             this.files = files;
 275             this.unrecognizedOptions = unrecognizedOptions;
 276         }
 277 


< prev index next >