| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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 org.codehaus.groovy.vmplugin.v9; |
| |
| import groovy.lang.GroovyClassLoader; |
| import groovy.lang.GroovyRuntimeException; |
| import groovy.lang.MetaClass; |
| import groovy.lang.MetaMethod; |
| import groovy.lang.Tuple; |
| import groovy.lang.Tuple2; |
| import org.codehaus.groovy.GroovyBugError; |
| import org.codehaus.groovy.reflection.CachedClass; |
| import org.codehaus.groovy.reflection.CachedMethod; |
| import org.codehaus.groovy.reflection.ReflectionUtils; |
| import org.codehaus.groovy.runtime.DefaultGroovyMethods; |
| import org.codehaus.groovy.vmplugin.v8.Java8; |
| |
| import java.lang.invoke.MethodHandle; |
| import java.lang.invoke.MethodHandles; |
| import java.lang.module.ModuleDescriptor; |
| import java.lang.module.ModuleFinder; |
| import java.lang.module.ModuleReference; |
| import java.lang.reflect.AccessibleObject; |
| import java.lang.reflect.Constructor; |
| import java.lang.reflect.InvocationTargetException; |
| import java.lang.reflect.Member; |
| import java.lang.reflect.Method; |
| import java.lang.reflect.Modifier; |
| import java.math.BigInteger; |
| import java.net.URI; |
| import java.util.ArrayList; |
| import java.util.Arrays; |
| import java.util.HashMap; |
| import java.util.HashSet; |
| import java.util.LinkedHashMap; |
| import java.util.LinkedList; |
| import java.util.List; |
| import java.util.Map; |
| import java.util.Optional; |
| import java.util.Set; |
| import java.util.logging.Level; |
| import java.util.logging.Logger; |
| import java.util.stream.Collectors; |
| |
| /** |
| * Additional Java 9 based functions will be added here as needed. |
| */ |
| public class Java9 extends Java8 { |
| private static final Logger LOGGER = Logger.getLogger(Java9.class.getName()); |
| |
| @Override |
| public Map<String, Set<String>> getDefaultImportClasses(String[] packageNames) { |
| List<String> javaPns = new ArrayList<>(4); |
| List<String> groovyPns = new ArrayList<>(4); |
| for (String prefix : packageNames) { |
| String pn = prefix.substring(0, prefix.length() - 1).replace('.', '/'); |
| |
| if (pn.startsWith("java/")) { |
| javaPns.add(pn); |
| } else if (pn.startsWith("groovy/")) { |
| groovyPns.add(pn); |
| } else { |
| throw new GroovyBugError("unexpected package: " + pn); |
| } |
| } |
| |
| Map<String, Set<String>> result = new LinkedHashMap<>(2048); |
| try (GroovyClassLoader gcl = new GroovyClassLoader(this.getClass().getClassLoader())) { |
| result.putAll(doFindClasses(URI.create("jrt:/modules/java.base/"), "java", javaPns)); |
| |
| URI gsLocation = DefaultGroovyMethods.getLocation(gcl.loadClass("groovy.lang.GroovySystem")).toURI(); |
| result.putAll(doFindClasses(gsLocation, "groovy", groovyPns)); |
| |
| // in production environment, groovy-core classes, e.g. `GroovySystem`(java class) and `GrapeIvy`(groovy class) are all packaged in the groovy-core jar file, |
| // but in Groovy development environment, groovy-core classes are distributed in different directories |
| URI giLocation = DefaultGroovyMethods.getLocation(gcl.loadClass("groovy.grape.GrapeIvy")).toURI(); |
| if (!gsLocation.equals(giLocation)) { |
| result.putAll(doFindClasses(giLocation, "groovy", groovyPns)); |
| } |
| } catch (Exception ignore) { |
| if (LOGGER.isLoggable(Level.FINEST)) { |
| LOGGER.finest("[WARNING] Failed to find default imported classes:\n" + DefaultGroovyMethods.asString(ignore)); |
| } |
| } |
| |
| return result; |
| } |
| |
| private static Map<String, Set<String>> doFindClasses(URI uri, String packageName, List<String> defaultPackageNames) { |
| Map<String, Set<String>> result = ClassFinder.find(uri, packageName, true) |
| .entrySet().stream() |
| .filter(e -> e.getValue().stream().anyMatch(defaultPackageNames::contains)) |
| .collect( |
| Collectors.toMap( |
| Map.Entry::getKey, |
| entry -> entry.getValue().stream() |
| .filter(e -> defaultPackageNames.contains(e)) |
| .map(e -> e.replace('/', '.') + ".") |
| .collect(Collectors.toSet()) |
| ) |
| ); |
| return result; |
| } |
| |
| private static class LookupHolder { |
| private static final Method PRIVATE_LOOKUP; |
| private static final Constructor<MethodHandles.Lookup> LOOKUP_Constructor; |
| |
| static { |
| Constructor<MethodHandles.Lookup> lookup = null; |
| Method privateLookup = null; |
| try { // java 9 |
| privateLookup = MethodHandles.class.getMethod("privateLookupIn", Class.class, MethodHandles.Lookup.class); |
| } catch (final NoSuchMethodException | RuntimeException e) { // java 8 or fallback if anything else goes wrong |
| try { |
| lookup = MethodHandles.Lookup.class.getDeclaredConstructor(Class.class, Integer.TYPE); |
| if (!lookup.isAccessible()) { |
| ReflectionUtils.trySetAccessible(lookup); |
| } |
| } catch (final NoSuchMethodException ex) { |
| throw new IllegalStateException("Incompatible JVM", e); |
| } |
| } |
| PRIVATE_LOOKUP = privateLookup; |
| LOOKUP_Constructor = lookup; |
| } |
| } |
| |
| private static Constructor<MethodHandles.Lookup> getLookupConstructor() { |
| return LookupHolder.LOOKUP_Constructor; |
| } |
| |
| private static Method getPrivateLookup() { |
| return LookupHolder.PRIVATE_LOOKUP; |
| } |
| |
| public static MethodHandles.Lookup of(final Class<?> declaringClass) { |
| try { |
| final Method privateLookup = getPrivateLookup(); |
| if (privateLookup != null) { |
| return (MethodHandles.Lookup) privateLookup.invoke(null, declaringClass, MethodHandles.lookup()); |
| } |
| return getLookupConstructor().newInstance(declaringClass, MethodHandles.Lookup.PRIVATE).in(declaringClass); |
| } catch (final IllegalAccessException | InstantiationException e) { |
| throw new IllegalArgumentException(e); |
| } catch (final InvocationTargetException e) { |
| throw new GroovyRuntimeException(e); |
| } |
| } |
| |
| @Override |
| public int getVersion() { |
| return 9; |
| } |
| |
| @Override |
| public Object getInvokeSpecialHandle(Method method, Object receiver) { |
| final Class<?> receiverType = receiver.getClass(); |
| try { |
| return of(receiverType).unreflectSpecial(method, receiverType).bindTo(receiver); |
| } catch (ReflectiveOperationException e) { |
| return super.getInvokeSpecialHandle(method, receiver); |
| } |
| } |
| |
| /** |
| * This method may be used by a caller in class C to check whether to enable access to a member of declaring class D successfully |
| * if {@link Java8#checkCanSetAccessible(java.lang.reflect.AccessibleObject, java.lang.Class)} returns true and any of the following hold: |
| * <p> |
| * 1) C and D are in the same module. |
| * 2) The member is public and D is public in a package that the module containing D exports to at least the module containing C. |
| * 3) The member is protected static, D is public in a package that the module containing D exports to at least the module containing C, and C is a subclass of D. |
| * 4) D is in a package that the module containing D opens to at least the module containing C. All packages in unnamed and open modules are open to all modules and so this method always succeeds when D is in an unnamed or open module. |
| * |
| * @param accessibleObject the accessible object to check |
| * @param callerClass the callerClass to invoke {@code setAccessible} |
| * @return the check result |
| */ |
| public boolean checkCanSetAccessible(AccessibleObject accessibleObject, Class<?> callerClass) { |
| |
| if (!super.checkCanSetAccessible(accessibleObject, callerClass)) return false; |
| |
| if (callerClass == MethodHandle.class) { |
| throw new IllegalCallerException(); // should not happen |
| } |
| |
| if (!(accessibleObject instanceof Member)) { |
| throw new IllegalArgumentException("accessibleObject should be a member of type: " + accessibleObject); // should not happen |
| } |
| |
| Member member = (Member) accessibleObject; |
| Class<?> declaringClass = member.getDeclaringClass(); |
| |
| Module callerModule = callerClass.getModule(); |
| Module declaringModule = declaringClass.getModule(); |
| |
| if (callerModule == declaringModule) return true; |
| if (callerModule == Object.class.getModule()) return true; |
| if (!declaringModule.isNamed()) return true; |
| |
| int modifiers = member.getModifiers(); |
| |
| return checkAccessible(callerClass, declaringClass, modifiers, true); |
| } |
| |
| @Override |
| public boolean trySetAccessible(AccessibleObject ao) { |
| return ao.trySetAccessible(); |
| } |
| |
| @Override |
| public MetaMethod transformMetaMethod(MetaClass metaClass, MetaMethod metaMethod, Class<?> caller) { |
| if (!(metaMethod instanceof CachedMethod)) { |
| return metaMethod; |
| } |
| |
| CachedMethod cachedMethod = (CachedMethod) metaMethod; |
| CachedClass methodDeclaringClass = cachedMethod.getDeclaringClass(); |
| |
| if (null == methodDeclaringClass) { |
| return metaMethod; |
| } |
| |
| if (null == caller) { |
| caller = ReflectionUtils.class; // "set accessible" are done via `org.codehaus.groovy.reflection.ReflectionUtils` as shown in warnings |
| } |
| |
| return getOrTransformMetaMethod(metaClass, caller, cachedMethod); |
| } |
| |
| private CachedMethod getOrTransformMetaMethod(MetaClass metaClass, Class<?> caller, CachedMethod cachedMethod) { |
| CachedMethod transformedMethod = cachedMethod.getTransformedMethod(); |
| if (null != transformedMethod) { |
| return transformedMethod; |
| } |
| |
| transformedMethod = doTransformMetaMethod(metaClass, cachedMethod, caller); |
| cachedMethod.setTransformedMethod(transformedMethod); |
| |
| return transformedMethod; |
| } |
| |
| private CachedMethod doTransformMetaMethod(MetaClass metaClass, CachedMethod metaMethod, Class<?> caller) { |
| CachedClass methodDeclaringClass = metaMethod.getDeclaringClass(); |
| Class<?> declaringClass = methodDeclaringClass.getTheClass(); |
| int methodModifiers = metaMethod.getModifiers(); |
| |
| // if caller can access the method, |
| // no need to transform the meta method |
| if (checkAccessible(caller, declaringClass, methodModifiers, false)) { |
| return metaMethod; |
| } |
| |
| Class<?>[] params = metaMethod.getPT(); |
| Class<?> theClass = metaClass.getTheClass(); |
| if (declaringClass == theClass) { |
| if (BigInteger.class == theClass) { |
| CachedMethod bigIntegerMetaMethod = transformBigIntegerMetaMethod(metaMethod, params); |
| if (bigIntegerMetaMethod != metaMethod) { |
| return bigIntegerMetaMethod; |
| } |
| } |
| |
| // GROOVY-9081 "3) Access public members of private class", e.g. Collections.unmodifiableMap([:]).toString() |
| // try to find the visible method from its superclasses |
| List<Class<?>> classList = findSuperclasses(theClass); |
| classList.add(0, theClass); |
| |
| for (Class<?> sc : classList) { |
| Optional<CachedMethod> optionalMetaMethod = getAccessibleMetaMethod(metaMethod, params, caller, sc, true); |
| if (optionalMetaMethod.isPresent()) { |
| return optionalMetaMethod.get(); |
| } |
| } |
| |
| return metaMethod; |
| } else if (declaringClass.isAssignableFrom(theClass)) { |
| // if caller can not access the method, |
| // try to find the corresponding method in its derived class |
| // GROOVY-9081 Sub-class derives the protected members from public class, "Invoke the members on the sub class instances" |
| // e.g. StringBuilder sb = new StringBuilder(); sb.setLength(0); |
| // `setLength` is the method of `AbstractStringBuilder`, which is `package-private` |
| Optional<CachedMethod> optionalMetaMethod = getAccessibleMetaMethod(metaMethod, params, caller, theClass, false); |
| if (optionalMetaMethod.isPresent()) { |
| return optionalMetaMethod.get(); |
| } |
| } |
| |
| return metaMethod; |
| } |
| |
| private static CachedMethod transformBigIntegerMetaMethod(CachedMethod metaMethod, Class<?>[] params) { |
| if (1 == params.length && MULTIPLY.equals(metaMethod.getName())) { |
| Class<?> param = params[0]; |
| if (Long.class == param || long.class == param |
| || Integer.class == param || int.class == param |
| || Short.class == param || short.class == param) { |
| return new CachedMethod(BigIntegerMultiplyMethodHolder.MULTIPLY_METHOD); |
| } |
| } |
| |
| return metaMethod; |
| } |
| |
| private Optional<CachedMethod> getAccessibleMetaMethod(CachedMethod metaMethod, Class<?>[] params, Class<?> caller, Class<?> sc, boolean declared) { |
| List<CachedMethod> metaMethodList = getMetaMethods(metaMethod, params, sc, declared); |
| for (CachedMethod mm : metaMethodList) { |
| if (checkAccessible(caller, mm.getDeclaringClass().getTheClass(), mm.getModifiers(), false)) { |
| return Optional.of(mm); |
| } |
| } |
| return Optional.empty(); |
| } |
| |
| private static List<CachedMethod> getMetaMethods(CachedMethod metaMethod, Class<?>[] params, Class<?> sc, boolean declared) { |
| String metaMethodName = metaMethod.getName(); |
| List<Method> optionalMethodList = declared |
| ? ReflectionUtils.getDeclaredMethods(sc, metaMethodName, params) |
| : ReflectionUtils.getMethods(sc, metaMethodName, params); |
| return optionalMethodList.stream().map(CachedMethod::new).collect(Collectors.toList()); |
| } |
| |
| @Override |
| public boolean checkAccessible(Class<?> callerClass, Class<?> declaringClass, int memberModifiers, boolean allowIllegalAccess) { |
| Module callerModule = callerClass.getModule(); |
| Module declaringModule = declaringClass.getModule(); |
| String pn = declaringClass.getPackageName(); |
| |
| boolean unnamedModuleAccessNamedModule = !callerModule.isNamed() && declaringModule.isNamed(); |
| boolean toCheckIllegalAccess = !allowIllegalAccess && unnamedModuleAccessNamedModule; |
| |
| // class is public and package is exported to callerClass |
| boolean isClassPublic = Modifier.isPublic(declaringClass.getModifiers()); |
| if (isClassPublic && declaringModule.isExported(pn, callerModule)) { |
| // member is public |
| if (Modifier.isPublic(memberModifiers)) { |
| return !(toCheckIllegalAccess && isExportedForIllegalAccess(declaringModule, pn)); |
| } |
| |
| // member is protected-static |
| if (Modifier.isProtected(memberModifiers) |
| && Modifier.isStatic(memberModifiers) |
| && isSubclassOf(callerClass, declaringClass)) { |
| return !(toCheckIllegalAccess && isExportedForIllegalAccess(declaringModule, pn)); |
| } |
| } |
| |
| // package is open to callerClass |
| if (declaringModule.isOpen(pn, callerModule)) { |
| return !(toCheckIllegalAccess && isOpenedForIllegalAccess(declaringModule, pn)); |
| } |
| |
| return false; |
| } |
| |
| private static boolean isExportedForIllegalAccess(Module declaringModule, String pn) { |
| return concealedPackageList(declaringModule).contains(pn); |
| } |
| |
| private static boolean isOpenedForIllegalAccess(Module declaringModule, String pn) { |
| if (isExportedForIllegalAccess(declaringModule, pn)) return true; |
| return exportedPackageList(declaringModule).contains(pn); |
| } |
| |
| private static boolean isSubclassOf(Class<?> queryClass, Class<?> ofClass) { |
| while (queryClass != null) { |
| if (queryClass == ofClass) { |
| return true; |
| } |
| queryClass = queryClass.getSuperclass(); |
| } |
| return false; |
| } |
| |
| private static List<Class<?>> findSuperclasses(Class<?> clazz) { |
| List<Class<?>> result = new LinkedList<>(); |
| |
| for (Class<?> c = clazz.getSuperclass(); null != c; c = c.getSuperclass()) { |
| result.add(c); |
| } |
| |
| return result; |
| } |
| |
| private static Set<String> concealedPackageList(Module module) { |
| return CONCEALED_PACKAGES_TO_OPEN.computeIfAbsent(module.getName(), m -> new HashSet<>()); |
| } |
| |
| private static Set<String> exportedPackageList(Module module) { |
| return EXPORTED_PACKAGES_TO_OPEN.computeIfAbsent(module.getName(), m -> new HashSet<>()); |
| } |
| |
| private static final Map<String, Set<String>> CONCEALED_PACKAGES_TO_OPEN; |
| private static final Map<String, Set<String>> EXPORTED_PACKAGES_TO_OPEN; |
| |
| static { |
| Tuple2<Map<String, Set<String>>, Map<String, Set<String>>> tuple2 = findConcealedAndExportedPackagesToOpen(); |
| CONCEALED_PACKAGES_TO_OPEN = tuple2.getV1(); |
| EXPORTED_PACKAGES_TO_OPEN = tuple2.getV2(); |
| } |
| |
| private static Tuple2<Map<String, Set<String>>, Map<String, Set<String>>> findConcealedAndExportedPackagesToOpen() { |
| ModuleFinder finder = ModuleFinder.ofSystem(); |
| |
| Map<String, ModuleDescriptor> map = new HashMap<>(); |
| finder.findAll().stream() |
| .map(ModuleReference::descriptor) |
| .forEach(md -> md.packages().forEach(pn -> map.putIfAbsent(pn, md))); |
| |
| final Map<String, Set<String>> concealedPackagesToOpen = new HashMap<>(); |
| final Map<String, Set<String>> exportedPackagesToOpen = new HashMap<>(); |
| |
| Arrays.stream(JAVA8_PACKAGES()) |
| .forEach(pn -> { |
| ModuleDescriptor descriptor = map.get(pn); |
| if (descriptor != null && !isOpen(descriptor, pn)) { |
| String name = descriptor.name(); |
| if (isExported(descriptor, pn)) { |
| exportedPackagesToOpen.computeIfAbsent(name, |
| k -> new HashSet<>()).add(pn); |
| } else { |
| concealedPackagesToOpen.computeIfAbsent(name, |
| k -> new HashSet<>()).add(pn); |
| } |
| } |
| }); |
| |
| return Tuple.tuple(concealedPackagesToOpen, exportedPackagesToOpen); |
| } |
| |
| private static boolean isExported(ModuleDescriptor descriptor, String pn) { |
| return descriptor.exports() |
| .stream() |
| .anyMatch(e -> e.source().equals(pn) && !e.isQualified()); |
| } |
| |
| private static boolean isOpen(ModuleDescriptor descriptor, String pn) { |
| return descriptor.opens() |
| .stream() |
| .anyMatch(e -> e.source().equals(pn) && !e.isQualified()); |
| } |
| |
| private static final String MULTIPLY = "multiply"; |
| private static class BigIntegerMultiplyMethodHolder { |
| private static final Method MULTIPLY_METHOD; |
| static { |
| try { |
| MULTIPLY_METHOD = BigInteger.class.getDeclaredMethod(MULTIPLY, BigInteger.class); |
| } catch (NoSuchMethodException | SecurityException e) { |
| throw new GroovyBugError("Failed to find " + MULTIPLY + " method of BigInteger", e); |
| } |
| } |
| } |
| |
| private static String[] JAVA8_PACKAGES() { |
| // The following package list should NOT be changed! |
| return new String[] { |
| "apple.applescript", |
| "apple.laf", |
| "apple.launcher", |
| "apple.security", |
| "com.apple.concurrent", |
| "com.apple.eawt", |
| "com.apple.eawt.event", |
| "com.apple.eio", |
| "com.apple.laf", |
| "com.apple.laf.resources", |
| "com.oracle.jrockit.jfr", |
| "com.oracle.jrockit.jfr.client", |
| "com.oracle.jrockit.jfr.management", |
| "com.oracle.security.ucrypto", |
| "com.oracle.util", |
| "com.oracle.webservices.internal.api", |
| "com.oracle.webservices.internal.api.databinding", |
| "com.oracle.webservices.internal.api.message", |
| "com.oracle.webservices.internal.impl.encoding", |
| "com.oracle.webservices.internal.impl.internalspi.encoding", |
| "com.oracle.xmlns.internal.webservices.jaxws_databinding", |
| "com.sun.accessibility.internal.resources", |
| "com.sun.activation.registries", |
| "com.sun.awt", |
| "com.sun.beans", |
| "com.sun.beans.decoder", |
| "com.sun.beans.editors", |
| "com.sun.beans.finder", |
| "com.sun.beans.infos", |
| "com.sun.beans.util", |
| "com.sun.codemodel.internal", |
| "com.sun.codemodel.internal.fmt", |
| "com.sun.codemodel.internal.util", |
| "com.sun.codemodel.internal.writer", |
| "com.sun.corba.se.impl.activation", |
| "com.sun.corba.se.impl.copyobject", |
| "com.sun.corba.se.impl.corba", |
| "com.sun.corba.se.impl.dynamicany", |
| "com.sun.corba.se.impl.encoding", |
| "com.sun.corba.se.impl.interceptors", |
| "com.sun.corba.se.impl.io", |
| "com.sun.corba.se.impl.ior", |
| "com.sun.corba.se.impl.ior.iiop", |
| "com.sun.corba.se.impl.javax.rmi", |
| "com.sun.corba.se.impl.javax.rmi.CORBA", |
| "com.sun.corba.se.impl.legacy.connection", |
| "com.sun.corba.se.impl.logging", |
| "com.sun.corba.se.impl.monitoring", |
| "com.sun.corba.se.impl.naming.cosnaming", |
| "com.sun.corba.se.impl.naming.namingutil", |
| "com.sun.corba.se.impl.naming.pcosnaming", |
| "com.sun.corba.se.impl.oa", |
| "com.sun.corba.se.impl.oa.poa", |
| "com.sun.corba.se.impl.oa.toa", |
| "com.sun.corba.se.impl.orb", |
| "com.sun.corba.se.impl.orbutil", |
| "com.sun.corba.se.impl.orbutil.closure", |
| "com.sun.corba.se.impl.orbutil.concurrent", |
| "com.sun.corba.se.impl.orbutil.fsm", |
| "com.sun.corba.se.impl.orbutil.graph", |
| "com.sun.corba.se.impl.orbutil.threadpool", |
| "com.sun.corba.se.impl.presentation.rmi", |
| "com.sun.corba.se.impl.protocol", |
| "com.sun.corba.se.impl.protocol.giopmsgheaders", |
| "com.sun.corba.se.impl.resolver", |
| "com.sun.corba.se.impl.transport", |
| "com.sun.corba.se.impl.util", |
| "com.sun.corba.se.internal.CosNaming", |
| "com.sun.corba.se.internal.Interceptors", |
| "com.sun.corba.se.internal.POA", |
| "com.sun.corba.se.internal.corba", |
| "com.sun.corba.se.internal.iiop", |
| "com.sun.corba.se.org.omg.CORBA", |
| "com.sun.corba.se.pept.broker", |
| "com.sun.corba.se.pept.encoding", |
| "com.sun.corba.se.pept.protocol", |
| "com.sun.corba.se.pept.transport", |
| "com.sun.corba.se.spi.activation", |
| "com.sun.corba.se.spi.activation.InitialNameServicePackage", |
| "com.sun.corba.se.spi.activation.LocatorPackage", |
| "com.sun.corba.se.spi.activation.RepositoryPackage", |
| "com.sun.corba.se.spi.copyobject", |
| "com.sun.corba.se.spi.encoding", |
| "com.sun.corba.se.spi.extension", |
| "com.sun.corba.se.spi.ior", |
| "com.sun.corba.se.spi.ior.iiop", |
| "com.sun.corba.se.spi.legacy.connection", |
| "com.sun.corba.se.spi.legacy.interceptor", |
| "com.sun.corba.se.spi.logging", |
| "com.sun.corba.se.spi.monitoring", |
| "com.sun.corba.se.spi.oa", |
| "com.sun.corba.se.spi.orb", |
| "com.sun.corba.se.spi.orbutil.closure", |
| "com.sun.corba.se.spi.orbutil.fsm", |
| "com.sun.corba.se.spi.orbutil.proxy", |
| "com.sun.corba.se.spi.orbutil.threadpool", |
| "com.sun.corba.se.spi.presentation.rmi", |
| "com.sun.corba.se.spi.protocol", |
| "com.sun.corba.se.spi.resolver", |
| "com.sun.corba.se.spi.servicecontext", |
| "com.sun.corba.se.spi.transport", |
| "com.sun.crypto.provider", |
| "com.sun.demo.jvmti.hprof", |
| "com.sun.deploy.uitoolkit.impl.fx", |
| "com.sun.deploy.uitoolkit.impl.fx.ui", |
| "com.sun.deploy.uitoolkit.impl.fx.ui.resources", |
| "com.sun.glass.events", |
| "com.sun.glass.events.mac", |
| "com.sun.glass.ui", |
| "com.sun.glass.ui.delegate", |
| "com.sun.glass.ui.gtk", |
| "com.sun.glass.ui.mac", |
| "com.sun.glass.ui.win", |
| "com.sun.glass.utils", |
| "com.sun.image.codec.jpeg", |
| "com.sun.imageio.plugins.bmp", |
| "com.sun.imageio.plugins.common", |
| "com.sun.imageio.plugins.gif", |
| "com.sun.imageio.plugins.jpeg", |
| "com.sun.imageio.plugins.png", |
| "com.sun.imageio.plugins.wbmp", |
| "com.sun.imageio.spi", |
| "com.sun.imageio.stream", |
| "com.sun.istack.internal", |
| "com.sun.istack.internal.localization", |
| "com.sun.istack.internal.logging", |
| "com.sun.istack.internal.tools", |
| "com.sun.jarsigner", |
| "com.sun.java.accessibility", |
| "com.sun.java.accessibility.util", |
| "com.sun.java.accessibility.util.java.awt", |
| "com.sun.java.browser.dom", |
| "com.sun.java.browser.net", |
| "com.sun.java.swing", |
| "com.sun.java.swing.plaf.gtk", |
| "com.sun.java.swing.plaf.gtk.resources", |
| "com.sun.java.swing.plaf.motif", |
| "com.sun.java.swing.plaf.motif.resources", |
| "com.sun.java.swing.plaf.nimbus", |
| "com.sun.java.swing.plaf.windows", |
| "com.sun.java.swing.plaf.windows.resources", |
| "com.sun.java.util.jar.pack", |
| "com.sun.java_cup.internal.runtime", |
| "com.sun.javadoc", |
| "com.sun.javafx", |
| "com.sun.javafx.animation", |
| "com.sun.javafx.applet", |
| "com.sun.javafx.application", |
| "com.sun.javafx.beans", |
| "com.sun.javafx.beans.event", |
| "com.sun.javafx.binding", |
| "com.sun.javafx.charts", |
| "com.sun.javafx.collections", |
| "com.sun.javafx.css", |
| "com.sun.javafx.css.converters", |
| "com.sun.javafx.css.parser", |
| "com.sun.javafx.cursor", |
| "com.sun.javafx.effect", |
| "com.sun.javafx.embed", |
| "com.sun.javafx.event", |
| "com.sun.javafx.font", |
| "com.sun.javafx.font.coretext", |
| "com.sun.javafx.font.directwrite", |
| "com.sun.javafx.font.freetype", |
| "com.sun.javafx.font.t2k", |
| "com.sun.javafx.fxml", |
| "com.sun.javafx.fxml.builder", |
| "com.sun.javafx.fxml.expression", |
| "com.sun.javafx.geom", |
| "com.sun.javafx.geom.transform", |
| "com.sun.javafx.geometry", |
| "com.sun.javafx.iio", |
| "com.sun.javafx.iio.bmp", |
| "com.sun.javafx.iio.common", |
| "com.sun.javafx.iio.gif", |
| "com.sun.javafx.iio.ios", |
| "com.sun.javafx.iio.jpeg", |
| "com.sun.javafx.iio.png", |
| "com.sun.javafx.image", |
| "com.sun.javafx.image.impl", |
| "com.sun.javafx.jmx", |
| "com.sun.javafx.logging", |
| "com.sun.javafx.media", |
| "com.sun.javafx.menu", |
| "com.sun.javafx.perf", |
| "com.sun.javafx.print", |
| "com.sun.javafx.property", |
| "com.sun.javafx.property.adapter", |
| "com.sun.javafx.robot", |
| "com.sun.javafx.robot.impl", |
| "com.sun.javafx.runtime", |
| "com.sun.javafx.runtime.async", |
| "com.sun.javafx.runtime.eula", |
| "com.sun.javafx.scene", |
| "com.sun.javafx.scene.control", |
| "com.sun.javafx.scene.control.behavior", |
| "com.sun.javafx.scene.control.skin", |
| "com.sun.javafx.scene.control.skin.resources", |
| "com.sun.javafx.scene.input", |
| "com.sun.javafx.scene.layout.region", |
| "com.sun.javafx.scene.paint", |
| "com.sun.javafx.scene.shape", |
| "com.sun.javafx.scene.text", |
| "com.sun.javafx.scene.transform", |
| "com.sun.javafx.scene.traversal", |
| "com.sun.javafx.scene.web", |
| "com.sun.javafx.scene.web.behavior", |
| "com.sun.javafx.scene.web.skin", |
| "com.sun.javafx.sg.prism", |
| "com.sun.javafx.sg.prism.web", |
| "com.sun.javafx.stage", |
| "com.sun.javafx.text", |
| "com.sun.javafx.tk", |
| "com.sun.javafx.tk.quantum", |
| "com.sun.javafx.util", |
| "com.sun.javafx.webkit", |
| "com.sun.javafx.webkit.drt", |
| "com.sun.javafx.webkit.prism", |
| "com.sun.javafx.webkit.prism.theme", |
| "com.sun.javafx.webkit.theme", |
| "com.sun.jdi", |
| "com.sun.jdi.connect", |
| "com.sun.jdi.connect.spi", |
| "com.sun.jdi.event", |
| "com.sun.jdi.request", |
| "com.sun.jmx.defaults", |
| "com.sun.jmx.interceptor", |
| "com.sun.jmx.mbeanserver", |
| "com.sun.jmx.remote.internal", |
| "com.sun.jmx.remote.protocol.iiop", |
| "com.sun.jmx.remote.protocol.rmi", |
| "com.sun.jmx.remote.security", |
| "com.sun.jmx.remote.util", |
| "com.sun.jmx.snmp", |
| "com.sun.jmx.snmp.IPAcl", |
| "com.sun.jmx.snmp.agent", |
| "com.sun.jmx.snmp.daemon", |
| "com.sun.jmx.snmp.defaults", |
| "com.sun.jmx.snmp.internal", |
| "com.sun.jmx.snmp.mpm", |
| "com.sun.jmx.snmp.tasks", |
| "com.sun.jndi.cosnaming", |
| "com.sun.jndi.dns", |
| "com.sun.jndi.ldap", |
| "com.sun.jndi.ldap.ext", |
| "com.sun.jndi.ldap.pool", |
| "com.sun.jndi.ldap.sasl", |
| "com.sun.jndi.rmi.registry", |
| "com.sun.jndi.toolkit.corba", |
| "com.sun.jndi.toolkit.ctx", |
| "com.sun.jndi.toolkit.dir", |
| "com.sun.jndi.toolkit.url", |
| "com.sun.jndi.url.corbaname", |
| "com.sun.jndi.url.dns", |
| "com.sun.jndi.url.iiop", |
| "com.sun.jndi.url.iiopname", |
| "com.sun.jndi.url.ldap", |
| "com.sun.jndi.url.ldaps", |
| "com.sun.jndi.url.rmi", |
| "com.sun.management", |
| "com.sun.management.jmx", |
| "com.sun.media.jfxmedia", |
| "com.sun.media.jfxmedia.control", |
| "com.sun.media.jfxmedia.effects", |
| "com.sun.media.jfxmedia.events", |
| "com.sun.media.jfxmedia.locator", |
| "com.sun.media.jfxmedia.logging", |
| "com.sun.media.jfxmedia.track", |
| "com.sun.media.jfxmediaimpl", |
| "com.sun.media.jfxmediaimpl.platform", |
| "com.sun.media.jfxmediaimpl.platform.gstreamer", |
| "com.sun.media.jfxmediaimpl.platform.ios", |
| "com.sun.media.jfxmediaimpl.platform.java", |
| "com.sun.media.jfxmediaimpl.platform.osx", |
| "com.sun.media.sound", |
| "com.sun.naming.internal", |
| "com.sun.net.httpserver", |
| "com.sun.net.httpserver.spi", |
| "com.sun.net.ssl", |
| "com.sun.net.ssl.internal.ssl", |
| "com.sun.net.ssl.internal.www.protocol.https", |
| "com.sun.nio.file", |
| "com.sun.nio.sctp", |
| "com.sun.nio.zipfs", |
| "com.sun.openpisces", |
| "com.sun.org.apache.bcel.internal", |
| "com.sun.org.apache.bcel.internal.classfile", |
| "com.sun.org.apache.bcel.internal.generic", |
| "com.sun.org.apache.bcel.internal.util", |
| "com.sun.org.apache.regexp.internal", |
| "com.sun.org.apache.xalan.internal", |
| "com.sun.org.apache.xalan.internal.extensions", |
| "com.sun.org.apache.xalan.internal.lib", |
| "com.sun.org.apache.xalan.internal.res", |
| "com.sun.org.apache.xalan.internal.templates", |
| "com.sun.org.apache.xalan.internal.utils", |
| "com.sun.org.apache.xalan.internal.xslt", |
| "com.sun.org.apache.xalan.internal.xsltc", |
| "com.sun.org.apache.xalan.internal.xsltc.cmdline", |
| "com.sun.org.apache.xalan.internal.xsltc.cmdline.getopt", |
| "com.sun.org.apache.xalan.internal.xsltc.compiler", |
| "com.sun.org.apache.xalan.internal.xsltc.compiler.util", |
| "com.sun.org.apache.xalan.internal.xsltc.dom", |
| "com.sun.org.apache.xalan.internal.xsltc.runtime", |
| "com.sun.org.apache.xalan.internal.xsltc.runtime.output", |
| "com.sun.org.apache.xalan.internal.xsltc.trax", |
| "com.sun.org.apache.xalan.internal.xsltc.util", |
| "com.sun.org.apache.xerces.internal.dom", |
| "com.sun.org.apache.xerces.internal.dom.events", |
| "com.sun.org.apache.xerces.internal.impl", |
| "com.sun.org.apache.xerces.internal.impl.dtd", |
| "com.sun.org.apache.xerces.internal.impl.dtd.models", |
| "com.sun.org.apache.xerces.internal.impl.dv", |
| "com.sun.org.apache.xerces.internal.impl.dv.dtd", |
| "com.sun.org.apache.xerces.internal.impl.dv.util", |
| "com.sun.org.apache.xerces.internal.impl.dv.xs", |
| "com.sun.org.apache.xerces.internal.impl.io", |
| "com.sun.org.apache.xerces.internal.impl.msg", |
| "com.sun.org.apache.xerces.internal.impl.validation", |
| "com.sun.org.apache.xerces.internal.impl.xpath", |
| "com.sun.org.apache.xerces.internal.impl.xpath.regex", |
| "com.sun.org.apache.xerces.internal.impl.xs", |
| "com.sun.org.apache.xerces.internal.impl.xs.identity", |
| "com.sun.org.apache.xerces.internal.impl.xs.models", |
| "com.sun.org.apache.xerces.internal.impl.xs.opti", |
| "com.sun.org.apache.xerces.internal.impl.xs.traversers", |
| "com.sun.org.apache.xerces.internal.impl.xs.util", |
| "com.sun.org.apache.xerces.internal.jaxp", |
| "com.sun.org.apache.xerces.internal.jaxp.datatype", |
| "com.sun.org.apache.xerces.internal.jaxp.validation", |
| "com.sun.org.apache.xerces.internal.parsers", |
| "com.sun.org.apache.xerces.internal.util", |
| "com.sun.org.apache.xerces.internal.utils", |
| "com.sun.org.apache.xerces.internal.xinclude", |
| "com.sun.org.apache.xerces.internal.xni", |
| "com.sun.org.apache.xerces.internal.xni.grammars", |
| "com.sun.org.apache.xerces.internal.xni.parser", |
| "com.sun.org.apache.xerces.internal.xpointer", |
| "com.sun.org.apache.xerces.internal.xs", |
| "com.sun.org.apache.xerces.internal.xs.datatypes", |
| "com.sun.org.apache.xml.internal.dtm", |
| "com.sun.org.apache.xml.internal.dtm.ref", |
| "com.sun.org.apache.xml.internal.dtm.ref.dom2dtm", |
| "com.sun.org.apache.xml.internal.dtm.ref.sax2dtm", |
| "com.sun.org.apache.xml.internal.res", |
| "com.sun.org.apache.xml.internal.resolver", |
| "com.sun.org.apache.xml.internal.resolver.helpers", |
| "com.sun.org.apache.xml.internal.resolver.readers", |
| "com.sun.org.apache.xml.internal.resolver.tools", |
| "com.sun.org.apache.xml.internal.security", |
| "com.sun.org.apache.xml.internal.security.algorithms", |
| "com.sun.org.apache.xml.internal.security.algorithms.implementations", |
| "com.sun.org.apache.xml.internal.security.c14n", |
| "com.sun.org.apache.xml.internal.security.c14n.helper", |
| "com.sun.org.apache.xml.internal.security.c14n.implementations", |
| "com.sun.org.apache.xml.internal.security.encryption", |
| "com.sun.org.apache.xml.internal.security.exceptions", |
| "com.sun.org.apache.xml.internal.security.keys", |
| "com.sun.org.apache.xml.internal.security.keys.content", |
| "com.sun.org.apache.xml.internal.security.keys.content.keyvalues", |
| "com.sun.org.apache.xml.internal.security.keys.content.x509", |
| "com.sun.org.apache.xml.internal.security.keys.keyresolver", |
| "com.sun.org.apache.xml.internal.security.keys.keyresolver.implementations", |
| "com.sun.org.apache.xml.internal.security.keys.storage", |
| "com.sun.org.apache.xml.internal.security.keys.storage.implementations", |
| "com.sun.org.apache.xml.internal.security.signature", |
| "com.sun.org.apache.xml.internal.security.signature.reference", |
| "com.sun.org.apache.xml.internal.security.transforms", |
| "com.sun.org.apache.xml.internal.security.transforms.implementations", |
| "com.sun.org.apache.xml.internal.security.transforms.params", |
| "com.sun.org.apache.xml.internal.security.utils", |
| "com.sun.org.apache.xml.internal.security.utils.resolver", |
| "com.sun.org.apache.xml.internal.security.utils.resolver.implementations", |
| "com.sun.org.apache.xml.internal.serialize", |
| "com.sun.org.apache.xml.internal.serializer", |
| "com.sun.org.apache.xml.internal.serializer.utils", |
| "com.sun.org.apache.xml.internal.utils", |
| "com.sun.org.apache.xml.internal.utils.res", |
| "com.sun.org.apache.xpath.internal", |
| "com.sun.org.apache.xpath.internal.axes", |
| "com.sun.org.apache.xpath.internal.compiler", |
| "com.sun.org.apache.xpath.internal.domapi", |
| "com.sun.org.apache.xpath.internal.functions", |
| "com.sun.org.apache.xpath.internal.jaxp", |
| "com.sun.org.apache.xpath.internal.objects", |
| "com.sun.org.apache.xpath.internal.operations", |
| "com.sun.org.apache.xpath.internal.patterns", |
| "com.sun.org.apache.xpath.internal.res", |
| "com.sun.org.glassfish.external.amx", |
| "com.sun.org.glassfish.external.arc", |
| "com.sun.org.glassfish.external.probe.provider", |
| "com.sun.org.glassfish.external.probe.provider.annotations", |
| "com.sun.org.glassfish.external.statistics", |
| "com.sun.org.glassfish.external.statistics.annotations", |
| "com.sun.org.glassfish.external.statistics.impl", |
| "com.sun.org.glassfish.gmbal", |
| "com.sun.org.glassfish.gmbal.util", |
| "com.sun.org.omg.CORBA", |
| "com.sun.org.omg.CORBA.ValueDefPackage", |
| "com.sun.org.omg.CORBA.portable", |
| "com.sun.org.omg.SendingContext", |
| "com.sun.org.omg.SendingContext.CodeBasePackage", |
| "com.sun.pisces", |
| "com.sun.prism", |
| "com.sun.prism.d3d", |
| "com.sun.prism.es2", |
| "com.sun.prism.image", |
| "com.sun.prism.impl", |
| "com.sun.prism.impl.packrect", |
| "com.sun.prism.impl.paint", |
| "com.sun.prism.impl.ps", |
| "com.sun.prism.impl.shape", |
| "com.sun.prism.j2d", |
| "com.sun.prism.j2d.paint", |
| "com.sun.prism.j2d.print", |
| "com.sun.prism.paint", |
| "com.sun.prism.ps", |
| "com.sun.prism.shader", |
| "com.sun.prism.shape", |
| "com.sun.prism.sw", |
| "com.sun.rmi.rmid", |
| "com.sun.rowset", |
| "com.sun.rowset.internal", |
| "com.sun.rowset.providers", |
| "com.sun.scenario", |
| "com.sun.scenario.animation", |
| "com.sun.scenario.animation.shared", |
| "com.sun.scenario.effect", |
| "com.sun.scenario.effect.impl", |
| "com.sun.scenario.effect.impl.es2", |
| "com.sun.scenario.effect.impl.hw", |
| "com.sun.scenario.effect.impl.hw.d3d", |
| "com.sun.scenario.effect.impl.prism", |
| "com.sun.scenario.effect.impl.prism.ps", |
| "com.sun.scenario.effect.impl.prism.sw", |
| "com.sun.scenario.effect.impl.state", |
| "com.sun.scenario.effect.impl.sw", |
| "com.sun.scenario.effect.impl.sw.java", |
| "com.sun.scenario.effect.impl.sw.sse", |
| "com.sun.scenario.effect.light", |
| "com.sun.security.auth", |
| "com.sun.security.auth.callback", |
| "com.sun.security.auth.login", |
| "com.sun.security.auth.module", |
| "com.sun.security.cert.internal.x509", |
| "com.sun.security.jgss", |
| "com.sun.security.ntlm", |
| "com.sun.security.sasl", |
| "com.sun.security.sasl.digest", |
| "com.sun.security.sasl.gsskerb", |
| "com.sun.security.sasl.ntlm", |
| "com.sun.security.sasl.util", |
| "com.sun.source.doctree", |
| "com.sun.source.tree", |
| "com.sun.source.util", |
| "com.sun.swing.internal.plaf.basic.resources", |
| "com.sun.swing.internal.plaf.metal.resources", |
| "com.sun.swing.internal.plaf.synth.resources", |
| "com.sun.tools.attach", |
| "com.sun.tools.attach.spi", |
| "com.sun.tools.classfile", |
| "com.sun.tools.corba.se.idl", |
| "com.sun.tools.corba.se.idl.constExpr", |
| "com.sun.tools.corba.se.idl.som.cff", |
| "com.sun.tools.corba.se.idl.som.idlemit", |
| "com.sun.tools.corba.se.idl.toJavaPortable", |
| "com.sun.tools.doclets", |
| "com.sun.tools.doclets.formats.html", |
| "com.sun.tools.doclets.formats.html.markup", |
| "com.sun.tools.doclets.formats.html.resources", |
| "com.sun.tools.doclets.internal.toolkit", |
| "com.sun.tools.doclets.internal.toolkit.builders", |
| "com.sun.tools.doclets.internal.toolkit.resources", |
| "com.sun.tools.doclets.internal.toolkit.taglets", |
| "com.sun.tools.doclets.internal.toolkit.util", |
| "com.sun.tools.doclets.internal.toolkit.util.links", |
| "com.sun.tools.doclets.standard", |
| "com.sun.tools.doclint", |
| "com.sun.tools.doclint.resources", |
| "com.sun.tools.example.debug.expr", |
| "com.sun.tools.example.debug.tty", |
| "com.sun.tools.extcheck", |
| "com.sun.tools.hat", |
| "com.sun.tools.hat.internal.model", |
| "com.sun.tools.hat.internal.oql", |
| "com.sun.tools.hat.internal.parser", |
| "com.sun.tools.hat.internal.server", |
| "com.sun.tools.hat.internal.util", |
| "com.sun.tools.internal.jxc", |
| "com.sun.tools.internal.jxc.ap", |
| "com.sun.tools.internal.jxc.api", |
| "com.sun.tools.internal.jxc.api.impl.j2s", |
| "com.sun.tools.internal.jxc.gen.config", |
| "com.sun.tools.internal.jxc.model.nav", |
| "com.sun.tools.internal.ws", |
| "com.sun.tools.internal.ws.api", |
| "com.sun.tools.internal.ws.api.wsdl", |
| "com.sun.tools.internal.ws.processor", |
| "com.sun.tools.internal.ws.processor.generator", |
| "com.sun.tools.internal.ws.processor.model", |
| "com.sun.tools.internal.ws.processor.model.exporter", |
| "com.sun.tools.internal.ws.processor.model.java", |
| "com.sun.tools.internal.ws.processor.model.jaxb", |
| "com.sun.tools.internal.ws.processor.modeler", |
| "com.sun.tools.internal.ws.processor.modeler.annotation", |
| "com.sun.tools.internal.ws.processor.modeler.wsdl", |
| "com.sun.tools.internal.ws.processor.util", |
| "com.sun.tools.internal.ws.resources", |
| "com.sun.tools.internal.ws.spi", |
| "com.sun.tools.internal.ws.util", |
| "com.sun.tools.internal.ws.util.xml", |
| "com.sun.tools.internal.ws.wscompile", |
| "com.sun.tools.internal.ws.wscompile.plugin.at_generated", |
| "com.sun.tools.internal.ws.wsdl.document", |
| "com.sun.tools.internal.ws.wsdl.document.http", |
| "com.sun.tools.internal.ws.wsdl.document.jaxws", |
| "com.sun.tools.internal.ws.wsdl.document.mime", |
| "com.sun.tools.internal.ws.wsdl.document.schema", |
| "com.sun.tools.internal.ws.wsdl.document.soap", |
| "com.sun.tools.internal.ws.wsdl.framework", |
| "com.sun.tools.internal.ws.wsdl.parser", |
| "com.sun.tools.internal.xjc", |
| "com.sun.tools.internal.xjc.addon.accessors", |
| "com.sun.tools.internal.xjc.addon.at_generated", |
| "com.sun.tools.internal.xjc.addon.code_injector", |
| "com.sun.tools.internal.xjc.addon.episode", |
| "com.sun.tools.internal.xjc.addon.locator", |
| "com.sun.tools.internal.xjc.addon.sync", |
| "com.sun.tools.internal.xjc.api", |
| "com.sun.tools.internal.xjc.api.impl.s2j", |
| "com.sun.tools.internal.xjc.api.util", |
| "com.sun.tools.internal.xjc.generator.annotation.spec", |
| "com.sun.tools.internal.xjc.generator.bean", |
| "com.sun.tools.internal.xjc.generator.bean.field", |
| "com.sun.tools.internal.xjc.generator.util", |
| "com.sun.tools.internal.xjc.model", |
| "com.sun.tools.internal.xjc.model.nav", |
| "com.sun.tools.internal.xjc.outline", |
| "com.sun.tools.internal.xjc.reader", |
| "com.sun.tools.internal.xjc.reader.dtd", |
| "com.sun.tools.internal.xjc.reader.dtd.bindinfo", |
| "com.sun.tools.internal.xjc.reader.gbind", |
| "com.sun.tools.internal.xjc.reader.internalizer", |
| "com.sun.tools.internal.xjc.reader.relaxng", |
| "com.sun.tools.internal.xjc.reader.xmlschema", |
| "com.sun.tools.internal.xjc.reader.xmlschema.bindinfo", |
| "com.sun.tools.internal.xjc.reader.xmlschema.ct", |
| "com.sun.tools.internal.xjc.reader.xmlschema.parser", |
| "com.sun.tools.internal.xjc.runtime", |
| "com.sun.tools.internal.xjc.util", |
| "com.sun.tools.internal.xjc.writer", |
| "com.sun.tools.javac", |
| "com.sun.tools.javac.api", |
| "com.sun.tools.javac.code", |
| "com.sun.tools.javac.comp", |
| "com.sun.tools.javac.file", |
| "com.sun.tools.javac.jvm", |
| "com.sun.tools.javac.main", |
| "com.sun.tools.javac.model", |
| "com.sun.tools.javac.nio", |
| "com.sun.tools.javac.parser", |
| "com.sun.tools.javac.processing", |
| "com.sun.tools.javac.resources", |
| "com.sun.tools.javac.sym", |
| "com.sun.tools.javac.tree", |
| "com.sun.tools.javac.util", |
| "com.sun.tools.javadoc", |
| "com.sun.tools.javadoc.api", |
| "com.sun.tools.javadoc.resources", |
| "com.sun.tools.javah", |
| "com.sun.tools.javah.resources", |
| "com.sun.tools.javap", |
| "com.sun.tools.javap.resources", |
| "com.sun.tools.jconsole", |
| "com.sun.tools.jdeps", |
| "com.sun.tools.jdeps.resources", |
| "com.sun.tools.jdi", |
| "com.sun.tools.jdi.resources", |
| "com.sun.tools.script.shell", |
| "com.sun.tracing", |
| "com.sun.tracing.dtrace", |
| "com.sun.webkit", |
| "com.sun.webkit.dom", |
| "com.sun.webkit.event", |
| "com.sun.webkit.graphics", |
| "com.sun.webkit.network", |
| "com.sun.webkit.network.about", |
| "com.sun.webkit.network.data", |
| "com.sun.webkit.perf", |
| "com.sun.webkit.plugin", |
| "com.sun.webkit.text", |
| "com.sun.xml.internal.bind", |
| "com.sun.xml.internal.bind.annotation", |
| "com.sun.xml.internal.bind.api", |
| "com.sun.xml.internal.bind.api.impl", |
| "com.sun.xml.internal.bind.marshaller", |
| "com.sun.xml.internal.bind.unmarshaller", |
| "com.sun.xml.internal.bind.util", |
| "com.sun.xml.internal.bind.v2", |
| "com.sun.xml.internal.bind.v2.bytecode", |
| "com.sun.xml.internal.bind.v2.model.annotation", |
| "com.sun.xml.internal.bind.v2.model.core", |
| "com.sun.xml.internal.bind.v2.model.impl", |
| "com.sun.xml.internal.bind.v2.model.nav", |
| "com.sun.xml.internal.bind.v2.model.runtime", |
| "com.sun.xml.internal.bind.v2.model.util", |
| "com.sun.xml.internal.bind.v2.runtime", |
| "com.sun.xml.internal.bind.v2.runtime.output", |
| "com.sun.xml.internal.bind.v2.runtime.property", |
| "com.sun.xml.internal.bind.v2.runtime.reflect", |
| "com.sun.xml.internal.bind.v2.runtime.reflect.opt", |
| "com.sun.xml.internal.bind.v2.runtime.unmarshaller", |
| "com.sun.xml.internal.bind.v2.schemagen", |
| "com.sun.xml.internal.bind.v2.schemagen.episode", |
| "com.sun.xml.internal.bind.v2.schemagen.xmlschema", |
| "com.sun.xml.internal.bind.v2.util", |
| "com.sun.xml.internal.dtdparser", |
| "com.sun.xml.internal.fastinfoset", |
| "com.sun.xml.internal.fastinfoset.algorithm", |
| "com.sun.xml.internal.fastinfoset.alphabet", |
| "com.sun.xml.internal.fastinfoset.dom", |
| "com.sun.xml.internal.fastinfoset.org.apache.xerces.util", |
| "com.sun.xml.internal.fastinfoset.sax", |
| "com.sun.xml.internal.fastinfoset.stax", |
| "com.sun.xml.internal.fastinfoset.stax.events", |
| "com.sun.xml.internal.fastinfoset.stax.factory", |
| "com.sun.xml.internal.fastinfoset.stax.util", |
| "com.sun.xml.internal.fastinfoset.tools", |
| "com.sun.xml.internal.fastinfoset.util", |
| "com.sun.xml.internal.fastinfoset.vocab", |
| "com.sun.xml.internal.messaging.saaj", |
| "com.sun.xml.internal.messaging.saaj.client.p2p", |
| "com.sun.xml.internal.messaging.saaj.packaging.mime", |
| "com.sun.xml.internal.messaging.saaj.packaging.mime.internet", |
| "com.sun.xml.internal.messaging.saaj.packaging.mime.util", |
| "com.sun.xml.internal.messaging.saaj.soap", |
| "com.sun.xml.internal.messaging.saaj.soap.dynamic", |
| "com.sun.xml.internal.messaging.saaj.soap.impl", |
| "com.sun.xml.internal.messaging.saaj.soap.name", |
| "com.sun.xml.internal.messaging.saaj.soap.ver1_1", |
| "com.sun.xml.internal.messaging.saaj.soap.ver1_2", |
| "com.sun.xml.internal.messaging.saaj.util", |
| "com.sun.xml.internal.messaging.saaj.util.transform", |
| "com.sun.xml.internal.org.jvnet.fastinfoset", |
| "com.sun.xml.internal.org.jvnet.fastinfoset.sax", |
| "com.sun.xml.internal.org.jvnet.fastinfoset.sax.helpers", |
| "com.sun.xml.internal.org.jvnet.fastinfoset.stax", |
| "com.sun.xml.internal.org.jvnet.mimepull", |
| "com.sun.xml.internal.org.jvnet.staxex", |
| "com.sun.xml.internal.rngom.ast.builder", |
| "com.sun.xml.internal.rngom.ast.om", |
| "com.sun.xml.internal.rngom.ast.util", |
| "com.sun.xml.internal.rngom.binary", |
| "com.sun.xml.internal.rngom.binary.visitor", |
| "com.sun.xml.internal.rngom.digested", |
| "com.sun.xml.internal.rngom.dt", |
| "com.sun.xml.internal.rngom.dt.builtin", |
| "com.sun.xml.internal.rngom.nc", |
| "com.sun.xml.internal.rngom.parse", |
| "com.sun.xml.internal.rngom.parse.compact", |
| "com.sun.xml.internal.rngom.parse.host", |
| "com.sun.xml.internal.rngom.parse.xml", |
| "com.sun.xml.internal.rngom.util", |
| "com.sun.xml.internal.rngom.xml.sax", |
| "com.sun.xml.internal.rngom.xml.util", |
| "com.sun.xml.internal.stream", |
| "com.sun.xml.internal.stream.buffer", |
| "com.sun.xml.internal.stream.buffer.sax", |
| "com.sun.xml.internal.stream.buffer.stax", |
| "com.sun.xml.internal.stream.dtd", |
| "com.sun.xml.internal.stream.dtd.nonvalidating", |
| "com.sun.xml.internal.stream.events", |
| "com.sun.xml.internal.stream.util", |
| "com.sun.xml.internal.stream.writers", |
| "com.sun.xml.internal.txw2", |
| "com.sun.xml.internal.txw2.annotation", |
| "com.sun.xml.internal.txw2.output", |
| "com.sun.xml.internal.ws", |
| "com.sun.xml.internal.ws.addressing", |
| "com.sun.xml.internal.ws.addressing.model", |
| "com.sun.xml.internal.ws.addressing.policy", |
| "com.sun.xml.internal.ws.addressing.v200408", |
| "com.sun.xml.internal.ws.api", |
| "com.sun.xml.internal.ws.api.addressing", |
| "com.sun.xml.internal.ws.api.client", |
| "com.sun.xml.internal.ws.api.config.management", |
| "com.sun.xml.internal.ws.api.config.management.policy", |
| "com.sun.xml.internal.ws.api.databinding", |
| "com.sun.xml.internal.ws.api.fastinfoset", |
| "com.sun.xml.internal.ws.api.ha", |
| "com.sun.xml.internal.ws.api.handler", |
| "com.sun.xml.internal.ws.api.message", |
| "com.sun.xml.internal.ws.api.message.saaj", |
| "com.sun.xml.internal.ws.api.message.stream", |
| "com.sun.xml.internal.ws.api.model", |
| "com.sun.xml.internal.ws.api.model.soap", |
| "com.sun.xml.internal.ws.api.model.wsdl", |
| "com.sun.xml.internal.ws.api.model.wsdl.editable", |
| "com.sun.xml.internal.ws.api.pipe", |
| "com.sun.xml.internal.ws.api.pipe.helper", |
| "com.sun.xml.internal.ws.api.policy", |
| "com.sun.xml.internal.ws.api.policy.subject", |
| "com.sun.xml.internal.ws.api.server", |
| "com.sun.xml.internal.ws.api.streaming", |
| "com.sun.xml.internal.ws.api.wsdl.parser", |
| "com.sun.xml.internal.ws.api.wsdl.writer", |
| "com.sun.xml.internal.ws.assembler", |
| "com.sun.xml.internal.ws.assembler.dev", |
| "com.sun.xml.internal.ws.assembler.jaxws", |
| "com.sun.xml.internal.ws.binding", |
| "com.sun.xml.internal.ws.client", |
| "com.sun.xml.internal.ws.client.dispatch", |
| "com.sun.xml.internal.ws.client.sei", |
| "com.sun.xml.internal.ws.commons.xmlutil", |
| "com.sun.xml.internal.ws.config.management.policy", |
| "com.sun.xml.internal.ws.config.metro.dev", |
| "com.sun.xml.internal.ws.config.metro.util", |
| "com.sun.xml.internal.ws.db", |
| "com.sun.xml.internal.ws.db.glassfish", |
| "com.sun.xml.internal.ws.developer", |
| "com.sun.xml.internal.ws.dump", |
| "com.sun.xml.internal.ws.encoding", |
| "com.sun.xml.internal.ws.encoding.fastinfoset", |
| "com.sun.xml.internal.ws.encoding.policy", |
| "com.sun.xml.internal.ws.encoding.soap", |
| "com.sun.xml.internal.ws.encoding.soap.streaming", |
| "com.sun.xml.internal.ws.encoding.xml", |
| "com.sun.xml.internal.ws.fault", |
| "com.sun.xml.internal.ws.handler", |
| "com.sun.xml.internal.ws.message", |
| "com.sun.xml.internal.ws.message.jaxb", |
| "com.sun.xml.internal.ws.message.saaj", |
| "com.sun.xml.internal.ws.message.source", |
| "com.sun.xml.internal.ws.message.stream", |
| "com.sun.xml.internal.ws.model", |
| "com.sun.xml.internal.ws.model.soap", |
| "com.sun.xml.internal.ws.model.wsdl", |
| "com.sun.xml.internal.ws.org.objectweb.asm", |
| "com.sun.xml.internal.ws.policy", |
| "com.sun.xml.internal.ws.policy.jaxws", |
| "com.sun.xml.internal.ws.policy.jaxws.spi", |
| "com.sun.xml.internal.ws.policy.privateutil", |
| "com.sun.xml.internal.ws.policy.sourcemodel", |
| "com.sun.xml.internal.ws.policy.sourcemodel.attach", |
| "com.sun.xml.internal.ws.policy.sourcemodel.wspolicy", |
| "com.sun.xml.internal.ws.policy.spi", |
| "com.sun.xml.internal.ws.policy.subject", |
| "com.sun.xml.internal.ws.protocol.soap", |
| "com.sun.xml.internal.ws.protocol.xml", |
| "com.sun.xml.internal.ws.resources", |
| "com.sun.xml.internal.ws.runtime.config", |
| "com.sun.xml.internal.ws.server", |
| "com.sun.xml.internal.ws.server.provider", |
| "com.sun.xml.internal.ws.server.sei", |
| "com.sun.xml.internal.ws.spi", |
| "com.sun.xml.internal.ws.spi.db", |
| "com.sun.xml.internal.ws.streaming", |
| "com.sun.xml.internal.ws.transport", |
| "com.sun.xml.internal.ws.transport.http", |
| "com.sun.xml.internal.ws.transport.http.client", |
| "com.sun.xml.internal.ws.transport.http.server", |
| "com.sun.xml.internal.ws.util", |
| "com.sun.xml.internal.ws.util.exception", |
| "com.sun.xml.internal.ws.util.pipe", |
| "com.sun.xml.internal.ws.util.xml", |
| "com.sun.xml.internal.ws.wsdl", |
| "com.sun.xml.internal.ws.wsdl.parser", |
| "com.sun.xml.internal.ws.wsdl.writer", |
| "com.sun.xml.internal.ws.wsdl.writer.document", |
| "com.sun.xml.internal.ws.wsdl.writer.document.http", |
| "com.sun.xml.internal.ws.wsdl.writer.document.soap", |
| "com.sun.xml.internal.ws.wsdl.writer.document.soap12", |
| "com.sun.xml.internal.ws.wsdl.writer.document.xsd", |
| "com.sun.xml.internal.xsom", |
| "com.sun.xml.internal.xsom.impl", |
| "com.sun.xml.internal.xsom.impl.parser", |
| "com.sun.xml.internal.xsom.impl.parser.state", |
| "com.sun.xml.internal.xsom.impl.scd", |
| "com.sun.xml.internal.xsom.impl.util", |
| "com.sun.xml.internal.xsom.parser", |
| "com.sun.xml.internal.xsom.util", |
| "com.sun.xml.internal.xsom.visitor", |
| "java.applet", |
| "java.awt", |
| "java.awt.color", |
| "java.awt.datatransfer", |
| "java.awt.dnd", |
| "java.awt.dnd.peer", |
| "java.awt.event", |
| "java.awt.font", |
| "java.awt.geom", |
| "java.awt.im", |
| "java.awt.im.spi", |
| "java.awt.image", |
| "java.awt.image.renderable", |
| "java.awt.peer", |
| "java.awt.print", |
| "java.beans", |
| "java.beans.beancontext", |
| "java.io", |
| "java.lang", |
| "java.lang.annotation", |
| "java.lang.instrument", |
| "java.lang.invoke", |
| "java.lang.management", |
| "java.lang.ref", |
| "java.lang.reflect", |
| "java.math", |
| "java.net", |
| "java.nio", |
| "java.nio.channels", |
| "java.nio.channels.spi", |
| "java.nio.charset", |
| "java.nio.charset.spi", |
| "java.nio.file", |
| "java.nio.file.attribute", |
| "java.nio.file.spi", |
| "java.rmi", |
| "java.rmi.activation", |
| "java.rmi.dgc", |
| "java.rmi.registry", |
| "java.rmi.server", |
| "java.security", |
| "java.security.acl", |
| "java.security.cert", |
| "java.security.interfaces", |
| "java.security.spec", |
| "java.sql", |
| "java.text", |
| "java.text.spi", |
| "java.time", |
| "java.time.chrono", |
| "java.time.format", |
| "java.time.temporal", |
| "java.time.zone", |
| "java.util", |
| "java.util.concurrent", |
| "java.util.concurrent.atomic", |
| "java.util.concurrent.locks", |
| "java.util.function", |
| "java.util.jar", |
| "java.util.logging", |
| "java.util.prefs", |
| "java.util.regex", |
| "java.util.spi", |
| "java.util.stream", |
| "java.util.zip", |
| "javafx.animation", |
| "javafx.application", |
| "javafx.beans", |
| "javafx.beans.binding", |
| "javafx.beans.property", |
| "javafx.beans.property.adapter", |
| "javafx.beans.value", |
| "javafx.collections", |
| "javafx.collections.transformation", |
| "javafx.concurrent", |
| "javafx.css", |
| "javafx.embed.swing", |
| "javafx.embed.swt", |
| "javafx.event", |
| "javafx.fxml", |
| "javafx.geometry", |
| "javafx.print", |
| "javafx.scene", |
| "javafx.scene.canvas", |
| "javafx.scene.chart", |
| "javafx.scene.control", |
| "javafx.scene.control.cell", |
| "javafx.scene.effect", |
| "javafx.scene.image", |
| "javafx.scene.input", |
| "javafx.scene.layout", |
| "javafx.scene.media", |
| "javafx.scene.paint", |
| "javafx.scene.shape", |
| "javafx.scene.text", |
| "javafx.scene.transform", |
| "javafx.scene.web", |
| "javafx.stage", |
| "javafx.util", |
| "javafx.util.converter", |
| "javax.accessibility", |
| "javax.activation", |
| "javax.activity", |
| "javax.annotation", |
| "javax.annotation.processing", |
| "javax.crypto", |
| "javax.crypto.interfaces", |
| "javax.crypto.spec", |
| "javax.imageio", |
| "javax.imageio.event", |
| "javax.imageio.metadata", |
| "javax.imageio.plugins.bmp", |
| "javax.imageio.plugins.jpeg", |
| "javax.imageio.spi", |
| "javax.imageio.stream", |
| "javax.jws", |
| "javax.jws.soap", |
| "javax.lang.model", |
| "javax.lang.model.element", |
| "javax.lang.model.type", |
| "javax.lang.model.util", |
| "javax.management", |
| "javax.management.loading", |
| "javax.management.modelmbean", |
| "javax.management.monitor", |
| "javax.management.openmbean", |
| "javax.management.relation", |
| "javax.management.remote", |
| "javax.management.remote.rmi", |
| "javax.management.timer", |
| "javax.naming", |
| "javax.naming.directory", |
| "javax.naming.event", |
| "javax.naming.ldap", |
| "javax.naming.spi", |
| "javax.net", |
| "javax.net.ssl", |
| "javax.print", |
| "javax.print.attribute", |
| "javax.print.attribute.standard", |
| "javax.print.event", |
| "javax.rmi", |
| "javax.rmi.CORBA", |
| "javax.rmi.ssl", |
| "javax.script", |
| "javax.security.auth", |
| "javax.security.auth.callback", |
| "javax.security.auth.kerberos", |
| "javax.security.auth.login", |
| "javax.security.auth.spi", |
| "javax.security.auth.x500", |
| "javax.security.cert", |
| "javax.security.sasl", |
| "javax.smartcardio", |
| "javax.sound.midi", |
| "javax.sound.midi.spi", |
| "javax.sound.sampled", |
| "javax.sound.sampled.spi", |
| "javax.sql", |
| "javax.sql.rowset", |
| "javax.sql.rowset.serial", |
| "javax.sql.rowset.spi", |
| "javax.swing", |
| "javax.swing.border", |
| "javax.swing.colorchooser", |
| "javax.swing.event", |
| "javax.swing.filechooser", |
| "javax.swing.plaf", |
| "javax.swing.plaf.basic", |
| "javax.swing.plaf.metal", |
| "javax.swing.plaf.multi", |
| "javax.swing.plaf.nimbus", |
| "javax.swing.plaf.synth", |
| "javax.swing.table", |
| "javax.swing.text", |
| "javax.swing.text.html", |
| "javax.swing.text.html.parser", |
| "javax.swing.text.rtf", |
| "javax.swing.tree", |
| "javax.swing.undo", |
| "javax.tools", |
| "javax.transaction", |
| "javax.transaction.xa", |
| "javax.xml", |
| "javax.xml.bind", |
| "javax.xml.bind.annotation", |
| "javax.xml.bind.annotation.adapters", |
| "javax.xml.bind.attachment", |
| "javax.xml.bind.helpers", |
| "javax.xml.bind.util", |
| "javax.xml.crypto", |
| "javax.xml.crypto.dom", |
| "javax.xml.crypto.dsig", |
| "javax.xml.crypto.dsig.dom", |
| "javax.xml.crypto.dsig.keyinfo", |
| "javax.xml.crypto.dsig.spec", |
| "javax.xml.datatype", |
| "javax.xml.namespace", |
| "javax.xml.parsers", |
| "javax.xml.soap", |
| "javax.xml.stream", |
| "javax.xml.stream.events", |
| "javax.xml.stream.util", |
| "javax.xml.transform", |
| "javax.xml.transform.dom", |
| "javax.xml.transform.sax", |
| "javax.xml.transform.stax", |
| "javax.xml.transform.stream", |
| "javax.xml.validation", |
| "javax.xml.ws", |
| "javax.xml.ws.handler", |
| "javax.xml.ws.handler.soap", |
| "javax.xml.ws.http", |
| "javax.xml.ws.soap", |
| "javax.xml.ws.spi", |
| "javax.xml.ws.spi.http", |
| "javax.xml.ws.wsaddressing", |
| "javax.xml.xpath", |
| "jdk", |
| "jdk.internal.cmm", |
| "jdk.internal.dynalink", |
| "jdk.internal.dynalink.beans", |
| "jdk.internal.dynalink.linker", |
| "jdk.internal.dynalink.support", |
| "jdk.internal.instrumentation", |
| "jdk.internal.org.objectweb.asm", |
| "jdk.internal.org.objectweb.asm.commons", |
| "jdk.internal.org.objectweb.asm.signature", |
| "jdk.internal.org.objectweb.asm.tree", |
| "jdk.internal.org.objectweb.asm.tree.analysis", |
| "jdk.internal.org.objectweb.asm.util", |
| "jdk.internal.org.xml.sax", |
| "jdk.internal.org.xml.sax.helpers", |
| "jdk.internal.util.xml", |
| "jdk.internal.util.xml.impl", |
| "jdk.jfr.events", |
| "jdk.management.cmm", |
| "jdk.management.resource", |
| "jdk.management.resource.internal", |
| "jdk.management.resource.internal.inst", |
| "jdk.nashorn.api.scripting", |
| "jdk.nashorn.internal", |
| "jdk.nashorn.internal.codegen", |
| "jdk.nashorn.internal.codegen.types", |
| "jdk.nashorn.internal.ir", |
| "jdk.nashorn.internal.ir.annotations", |
| "jdk.nashorn.internal.ir.debug", |
| "jdk.nashorn.internal.ir.visitor", |
| "jdk.nashorn.internal.lookup", |
| "jdk.nashorn.internal.objects", |
| "jdk.nashorn.internal.objects.annotations", |
| "jdk.nashorn.internal.parser", |
| "jdk.nashorn.internal.runtime", |
| "jdk.nashorn.internal.runtime.arrays", |
| "jdk.nashorn.internal.runtime.events", |
| "jdk.nashorn.internal.runtime.linker", |
| "jdk.nashorn.internal.runtime.logging", |
| "jdk.nashorn.internal.runtime.options", |
| "jdk.nashorn.internal.runtime.regexp", |
| "jdk.nashorn.internal.runtime.regexp.joni", |
| "jdk.nashorn.internal.runtime.regexp.joni.ast", |
| "jdk.nashorn.internal.runtime.regexp.joni.constants", |
| "jdk.nashorn.internal.runtime.regexp.joni.encoding", |
| "jdk.nashorn.internal.runtime.regexp.joni.exception", |
| "jdk.nashorn.internal.scripts", |
| "jdk.nashorn.tools", |
| "jdk.net", |
| "netscape.javascript", |
| "oracle.jrockit.jfr", |
| "oracle.jrockit.jfr.events", |
| "oracle.jrockit.jfr.jdkevents", |
| "oracle.jrockit.jfr.jdkevents.throwabletransform", |
| "oracle.jrockit.jfr.openmbean", |
| "oracle.jrockit.jfr.parser", |
| "oracle.jrockit.jfr.settings", |
| "oracle.jrockit.jfr.tools", |
| "org.ietf.jgss", |
| "org.jcp.xml.dsig.internal", |
| "org.jcp.xml.dsig.internal.dom", |
| "org.omg.CORBA", |
| "org.omg.CORBA.DynAnyPackage", |
| "org.omg.CORBA.ORBPackage", |
| "org.omg.CORBA.TypeCodePackage", |
| "org.omg.CORBA.portable", |
| "org.omg.CORBA_2_3", |
| "org.omg.CORBA_2_3.portable", |
| "org.omg.CosNaming", |
| "org.omg.CosNaming.NamingContextExtPackage", |
| "org.omg.CosNaming.NamingContextPackage", |
| "org.omg.Dynamic", |
| "org.omg.DynamicAny", |
| "org.omg.DynamicAny.DynAnyFactoryPackage", |
| "org.omg.DynamicAny.DynAnyPackage", |
| "org.omg.IOP", |
| "org.omg.IOP.CodecFactoryPackage", |
| "org.omg.IOP.CodecPackage", |
| "org.omg.Messaging", |
| "org.omg.PortableInterceptor", |
| "org.omg.PortableInterceptor.ORBInitInfoPackage", |
| "org.omg.PortableServer", |
| "org.omg.PortableServer.CurrentPackage", |
| "org.omg.PortableServer.POAManagerPackage", |
| "org.omg.PortableServer.POAPackage", |
| "org.omg.PortableServer.ServantLocatorPackage", |
| "org.omg.PortableServer.portable", |
| "org.omg.SendingContext", |
| "org.omg.stub.java.rmi", |
| "org.omg.stub.javax.management.remote.rmi", |
| "org.relaxng.datatype", |
| "org.relaxng.datatype.helpers", |
| "org.w3c.dom", |
| "org.w3c.dom.bootstrap", |
| "org.w3c.dom.css", |
| "org.w3c.dom.events", |
| "org.w3c.dom.html", |
| "org.w3c.dom.ls", |
| "org.w3c.dom.ranges", |
| "org.w3c.dom.stylesheets", |
| "org.w3c.dom.traversal", |
| "org.w3c.dom.views", |
| "org.w3c.dom.xpath", |
| "org.xml.sax", |
| "org.xml.sax.ext", |
| "org.xml.sax.helpers", |
| "sun.applet", |
| "sun.applet.resources", |
| "sun.audio", |
| "sun.awt", |
| "sun.awt.X11", |
| "sun.awt.datatransfer", |
| "sun.awt.dnd", |
| "sun.awt.event", |
| "sun.awt.geom", |
| "sun.awt.im", |
| "sun.awt.image", |
| "sun.awt.image.codec", |
| "sun.awt.motif", |
| "sun.awt.resources", |
| "sun.awt.shell", |
| "sun.awt.util", |
| "sun.awt.windows", |
| "sun.corba", |
| "sun.dc", |
| "sun.dc.path", |
| "sun.dc.pr", |
| "sun.font", |
| "sun.instrument", |
| "sun.invoke", |
| "sun.invoke.empty", |
| "sun.invoke.util", |
| "sun.io", |
| "sun.java2d", |
| "sun.java2d.cmm", |
| "sun.java2d.cmm.kcms", |
| "sun.java2d.cmm.lcms", |
| "sun.java2d.d3d", |
| "sun.java2d.jules", |
| "sun.java2d.loops", |
| "sun.java2d.opengl", |
| "sun.java2d.pipe", |
| "sun.java2d.pipe.hw", |
| "sun.java2d.pisces", |
| "sun.java2d.windows", |
| "sun.java2d.x11", |
| "sun.java2d.xr", |
| "sun.jvmstat.monitor", |
| "sun.jvmstat.monitor.event", |
| "sun.jvmstat.monitor.remote", |
| "sun.jvmstat.perfdata.monitor", |
| "sun.jvmstat.perfdata.monitor.protocol.file", |
| "sun.jvmstat.perfdata.monitor.protocol.local", |
| "sun.jvmstat.perfdata.monitor.protocol.rmi", |
| "sun.jvmstat.perfdata.monitor.v1_0", |
| "sun.jvmstat.perfdata.monitor.v2_0", |
| "sun.launcher", |
| "sun.launcher.resources", |
| "sun.lwawt", |
| "sun.lwawt.macosx", |
| "sun.management", |
| "sun.management.counter", |
| "sun.management.counter.perf", |
| "sun.management.jdp", |
| "sun.management.jmxremote", |
| "sun.management.resources", |
| "sun.management.snmp", |
| "sun.management.snmp.jvminstr", |
| "sun.management.snmp.jvmmib", |
| "sun.management.snmp.util", |
| "sun.misc", |
| "sun.misc.resources", |
| "sun.net", |
| "sun.net.dns", |
| "sun.net.ftp", |
| "sun.net.ftp.impl", |
| "sun.net.httpserver", |
| "sun.net.idn", |
| "sun.net.sdp", |
| "sun.net.smtp", |
| "sun.net.spi", |
| "sun.net.spi.nameservice", |
| "sun.net.spi.nameservice.dns", |
| "sun.net.util", |
| "sun.net.www", |
| "sun.net.www.content.audio", |
| "sun.net.www.content.image", |
| "sun.net.www.content.text", |
| "sun.net.www.http", |
| "sun.net.www.protocol.file", |
| "sun.net.www.protocol.ftp", |
| "sun.net.www.protocol.http", |
| "sun.net.www.protocol.http.logging", |
| "sun.net.www.protocol.http.ntlm", |
| "sun.net.www.protocol.http.spnego", |
| "sun.net.www.protocol.https", |
| "sun.net.www.protocol.jar", |
| "sun.net.www.protocol.mailto", |
| "sun.net.www.protocol.netdoc", |
| "sun.nio", |
| "sun.nio.ch", |
| "sun.nio.ch.sctp", |
| "sun.nio.cs", |
| "sun.nio.cs.ext", |
| "sun.nio.fs", |
| "sun.print", |
| "sun.print.resources", |
| "sun.reflect", |
| "sun.reflect.annotation", |
| "sun.reflect.generics.factory", |
| "sun.reflect.generics.parser", |
| "sun.reflect.generics.reflectiveObjects", |
| "sun.reflect.generics.repository", |
| "sun.reflect.generics.scope", |
| "sun.reflect.generics.tree", |
| "sun.reflect.generics.visitor", |
| "sun.reflect.misc", |
| "sun.rmi.log", |
| "sun.rmi.registry", |
| "sun.rmi.rmic", |
| "sun.rmi.rmic.iiop", |
| "sun.rmi.rmic.newrmic", |
| "sun.rmi.rmic.newrmic.jrmp", |
| "sun.rmi.runtime", |
| "sun.rmi.server", |
| "sun.rmi.transport", |
| "sun.rmi.transport.proxy", |
| "sun.rmi.transport.tcp", |
| "sun.security.acl", |
| "sun.security.action", |
| "sun.security.ec", |
| "sun.security.internal.interfaces", |
| "sun.security.internal.spec", |
| "sun.security.jca", |
| "sun.security.jgss", |
| "sun.security.jgss.krb5", |
| "sun.security.jgss.spi", |
| "sun.security.jgss.spnego", |
| "sun.security.jgss.wrapper", |
| "sun.security.krb5", |
| "sun.security.krb5.internal", |
| "sun.security.krb5.internal.ccache", |
| "sun.security.krb5.internal.crypto", |
| "sun.security.krb5.internal.crypto.dk", |
| "sun.security.krb5.internal.ktab", |
| "sun.security.krb5.internal.rcache", |
| "sun.security.krb5.internal.tools", |
| "sun.security.krb5.internal.util", |
| "sun.security.mscapi", |
| "sun.security.pkcs", |
| "sun.security.pkcs10", |
| "sun.security.pkcs11", |
| "sun.security.pkcs11.wrapper", |
| "sun.security.pkcs12", |
| "sun.security.provider", |
| "sun.security.provider.certpath", |
| "sun.security.provider.certpath.ldap", |
| "sun.security.provider.certpath.ssl", |
| "sun.security.rsa", |
| "sun.security.smartcardio", |
| "sun.security.ssl", |
| "sun.security.ssl.krb5", |
| "sun.security.timestamp", |
| "sun.security.tools", |
| "sun.security.tools.jarsigner", |
| "sun.security.tools.keytool", |
| "sun.security.tools.policytool", |
| "sun.security.util", |
| "sun.security.validator", |
| "sun.security.x509", |
| "sun.swing", |
| "sun.swing.icon", |
| "sun.swing.plaf", |
| "sun.swing.plaf.synth", |
| "sun.swing.plaf.windows", |
| "sun.swing.table", |
| "sun.swing.text", |
| "sun.swing.text.html", |
| "sun.text", |
| "sun.text.bidi", |
| "sun.text.normalizer", |
| "sun.text.resources", |
| "sun.text.resources.en", |
| "sun.tools.asm", |
| "sun.tools.attach", |
| "sun.tools.jar", |
| "sun.tools.jar.resources", |
| "sun.tools.java", |
| "sun.tools.javac", |
| "sun.tools.jcmd", |
| "sun.tools.jconsole", |
| "sun.tools.jconsole.inspector", |
| "sun.tools.jinfo", |
| "sun.tools.jmap", |
| "sun.tools.jps", |
| "sun.tools.jstack", |
| "sun.tools.jstat", |
| "sun.tools.jstatd", |
| "sun.tools.native2ascii", |
| "sun.tools.native2ascii.resources", |
| "sun.tools.serialver", |
| "sun.tools.tree", |
| "sun.tools.util", |
| "sun.tracing", |
| "sun.tracing.dtrace", |
| "sun.usagetracker", |
| "sun.util", |
| "sun.util.calendar", |
| "sun.util.cldr", |
| "sun.util.locale", |
| "sun.util.locale.provider", |
| "sun.util.logging", |
| "sun.util.logging.resources", |
| "sun.util.resources", |
| "sun.util.resources.en", |
| "sun.util.spi", |
| "sun.util.xml" |
| }; |
| } |
| } |