diff -r cc682329886b -r b0610cd08440 src/share/jaxws_classes/com/sun/tools/internal/ws/wscompile/WsimportTool.java --- a/src/share/jaxws_classes/com/sun/tools/internal/ws/wscompile/WsimportTool.java Thu Sep 26 10:43:28 2013 -0700 +++ b/src/share/jaxws_classes/com/sun/tools/internal/ws/wscompile/WsimportTool.java Fri Oct 04 16:21:34 2013 +0100 @@ -524,29 +524,34 @@ String classDir = options.destDir.getAbsolutePath(); String classpathString = createClasspathString(); boolean bootCP = useBootClasspath(EndpointContext.class) || useBootClasspath(JAXBPermission.class); - String[] args = new String[4 + (bootCP ? 1 : 0) + (options.debug ? 1 : 0) - + (options.encoding != null ? 2 : 0) + sourceFiles.size()]; - args[0] = "-d"; - args[1] = classDir; - args[2] = "-classpath"; - args[3] = classpathString; - int baseIndex = 4; + List args = new ArrayList(); + args.add("-d"); + args.add(classDir); + args.add("-classpath"); + args.add(classpathString); //javac is not working in osgi as the url starts with a bundle if (bootCP) { - args[baseIndex++] = "-Xbootclasspath/p:"+JavaCompilerHelper.getJarFile(EndpointContext.class)+File.pathSeparator+JavaCompilerHelper.getJarFile(JAXBPermission.class); + args.add("-Xbootclasspath/p:" + + JavaCompilerHelper.getJarFile(EndpointContext.class) + + File.pathSeparator + + JavaCompilerHelper.getJarFile(JAXBPermission.class)); } if (options.debug) { - args[baseIndex++] = "-g"; + args.add("-g"); } if (options.encoding != null) { - args[baseIndex++] = "-encoding"; - args[baseIndex++] = options.encoding; + args.add("-encoding"); + args.add(options.encoding); + } + + if (options.javacOptions != null) { + args.addAll(options.getJavacOptions(args, listener)); } for (int i = 0; i < sourceFiles.size(); ++i) { - args[baseIndex + i] = sourceFiles.get(i); + args.add(sourceFiles.get(i)); } listener.message(WscompileMessages.WSIMPORT_COMPILING_CODE()); @@ -558,7 +563,7 @@ listener.message("javac "+ argstr.toString()); } - return JavaCompilerHelper.compile(args, out, receiver); + return JavaCompilerHelper.compile(args.toArray(new String[args.size()]), out, receiver); } //there are no files to compile, so return true? return true;