trying to remove jaxb since jvm has itin right version normally
diff --git a/pom.xml b/pom.xml
index 90b6766..bc10187 100644
--- a/pom.xml
+++ b/pom.xml
@@ -136,7 +136,6 @@
                   <excludes>
                     <exclude>META-INF/*.txt</exclude>
                     <exclude>META-INF/LICENSE</exclude>
-                    <exclude>javax/xml/bind/**/*.class</exclude>
                     <exclude>org/apache/geronimo/osgi/locator/ProviderLocator.class</exclude>
                     <exclude>org/apache/geronimo/osgi/locator/Activator.class</exclude>
                   </excludes>
@@ -198,8 +197,6 @@
                     <exclude>META-INF/*.txt</exclude>
                     <exclude>META-INF/LICENSE</exclude>
                     <exclude>META-INF/NOTICE</exclude>
-                    <exclude>javax/xml/bind/ContextFinder.class</exclude>
-                    <exclude>javax/xml/bind/DatatypeConverter.class</exclude>
                     <exclude>org/apache/geronimo/osgi/locator/ProviderLocator.class</exclude>
                     <exclude>org/apache/geronimo/osgi/locator/Activator.class</exclude>
                   </excludes>
@@ -425,19 +422,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-jaxb_2.2_spec</artifactId>
-      <version>${geronimo-jaxb_2.2_spec.version}</version>
-      <classifier>sources</classifier>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-jaxb_2.2_spec</artifactId>
-      <version>${geronimo-jaxb_2.2_spec.version}</version>
-      <optional>true</optional>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
       <artifactId>geronimo-jaxr_1.0_spec</artifactId>
       <version>${geronimo-jaxr_1.0_spec.version}</version>
       <classifier>sources</classifier>
@@ -689,7 +673,6 @@
     <geronimo-jcdi_1.0_spec.version>1.0</geronimo-jcdi_1.0_spec.version>
     <geronimo-jaxws_2.2_spec.version>1.1</geronimo-jaxws_2.2_spec.version>
     <geronimo-osgi.version>1.0</geronimo-osgi.version>
-    <geronimo-jaxb_2.2_spec.version>1.0.1</geronimo-jaxb_2.2_spec.version>
     <geronimo-json_1.0_spec.version>1.0-SNAPSHOT</geronimo-json_1.0_spec.version>
     <geronimo-concurrent_1.0_spec.version>1.0-SNAPSHOT</geronimo-concurrent_1.0_spec.version>
   </properties>
diff --git a/src/main/java/javax/xml/bind/ContextFinder.java b/src/main/java/javax/xml/bind/ContextFinder.java
deleted file mode 100644
index e4af29c..0000000
--- a/src/main/java/javax/xml/bind/ContextFinder.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/**
- * 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 javax.xml.bind;
-
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.util.*;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-
-/**
- * we use it to endorse tomee and we don't want to depend on OSGi as it is done in geronimo
- */
-@SuppressWarnings("UnusedDeclaration")
-class ContextFinder {
-
-    private static final String PLATFORM_DEFAULT_FACTORY_CLASS = "com.sun.xml.bind.v2.ContextFactory";
-    private static final String JAXB_CONTEXT_PROPERTY = JAXBContext.class.getName();
-    private static final String JAXB_CONTEXT_FACTORY = JAXBContext.JAXB_CONTEXT_FACTORY;
-
-    private static Class<?> osgiLocator;
-    private static Method getServiceClassMethod;
-    private static Method loadClassMethod;
-
-    static {
-        try {
-            osgiLocator = Thread.currentThread().getContextClassLoader().loadClass("org.apache.geronimo.osgi.locator.ProviderLocator");
-            getServiceClassMethod = osgiLocator.getMethod("getServiceClass", String.class, Class.class, ClassLoader.class);
-            loadClassMethod = osgiLocator.getMethod("loadClass", String.class, Class.class, ClassLoader.class);
-        } catch (final Exception e) {
-            osgiLocator = null;
-        } catch (final NoClassDefFoundError ncdfe) {
-            osgiLocator = null;
-        }
-    }
-
-    public static JAXBContext find(String contextPath, final ClassLoader classLoader, final Map properties) throws JAXBException {
-        contextPath = contextPath.trim();
-        if (contextPath.length() == 0 || contextPath.equals(":")) {
-            throw new JAXBException("Invalid contextPath");
-        }
-        String className = null;
-        final String[] packages = contextPath.split("[:]");
-        for (final String pkg : packages) {
-            final String url = pkg.replace('.', '/') + "/jaxb.properties";
-            className = loadClassNameFromProperties(url, classLoader);
-            if (className != null) {
-                break;
-            }
-        }
-        if (className == null) {
-            className = System.getProperty(JAXB_CONTEXT_PROPERTY);
-        }
-        Class spi = null;
-        // if no specifically specified name, check for META-INF/services, and
-        // fall back to the default factory class if that fails
-        if (className == null) {
-            spi = loadSPIClass(JAXBContext.class, classLoader);
-            if (spi == null) {
-                spi = loadSpi(PLATFORM_DEFAULT_FACTORY_CLASS, classLoader);
-            }
-        }
-        else {
-            spi = loadSpi(className, classLoader);
-        }
-        try {
-            final Method m = spi.getMethod("createContext", new Class[] { String.class, ClassLoader.class, Map.class });
-            return (JAXBContext) m.invoke(null, new Object[] { contextPath, classLoader, properties });
-        } catch (final NoSuchMethodException e) {
-            // will try JAXB 1.0 compatible createContext() method
-        } catch (final Throwable t) {
-            throw new JAXBException("Unable to create context", t);
-        }
-
-        // try old JAXB 1.0 compatible createContext() method
-        try {
-            final Method m = spi.getMethod("createContext", new Class[] { String.class, ClassLoader.class });
-            return (JAXBContext) m.invoke(null, new Object[] { contextPath, classLoader });
-        } catch (final Throwable t) {
-            throw new JAXBException("Unable to create context", t);
-        }
-    }
-
-
-    public static JAXBContext find(final Class[] classes, final Map properties) throws JAXBException {
-        String className = null;
-        for (final Class cl : classes) {
-            final Package pkg = cl.getPackage();
-            if (pkg != null) {
-                final String url = pkg.getName().replace('.', '/') + "/jaxb.properties";
-                className = loadClassNameFromProperties(url, cl.getClassLoader());
-                if (className != null) {
-                    break;
-                }
-            }
-        }
-        if (className == null) {
-            className = System.getProperty(JAXB_CONTEXT_PROPERTY);
-        }
-        final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-
-        Class spi = null;
-        // if no specifically specified name, check for META-INF/services, and
-        // fall back to the default factory class if that fails
-        if (className == null) {
-            spi = loadSPIClass(JAXBContext.class, classLoader);
-            if (spi == null) {
-                spi = loadSpi(PLATFORM_DEFAULT_FACTORY_CLASS, classLoader);
-            }
-        }
-        else {
-            spi = loadSpi(className, classLoader);
-        }
-        try {
-            final Method m = spi.getMethod("createContext", new Class[] { Class[].class, Map.class });
-            return (JAXBContext) m.invoke(null, new Object[] { classes, properties });
-        } catch (final Throwable t) {
-            throw new JAXBException("Unable to create context", t);
-        }
-    }
-
-    private static String loadClassNameFromProperties(final String url, final ClassLoader classLoader) throws JAXBException {
-        try {
-            final InputStream is;
-            if (classLoader != null) {
-                is = classLoader.getResourceAsStream(url);
-            } else {
-                is = ClassLoader.getSystemResourceAsStream(url);
-            }
-            if (is != null) {
-                try {
-                    final Properties props = new Properties();
-                    props.load(is);
-                    final String className = props.getProperty(JAXB_CONTEXT_FACTORY);
-                    if (className == null) {
-                        throw new JAXBException("jaxb.properties file " + url + " should contain a " + JAXB_CONTEXT_FACTORY + " property");
-                    }
-                    return className.trim();
-                } finally {
-                    is.close();
-                }
-            } else {
-                return null;
-            }
-        } catch (final IOException e) {
-            throw new JAXBException(e);
-        }
-    }
-
-    private static Class<?> loadSPIClass(final Class<?> iface, final ClassLoader classLoader) throws JAXBException {
-        if (osgiLocator != null) {
-            return loadSPIClassFromOSGi(iface, classLoader);
-        }
-
-        try {
-            return locateServiceClass(iface.getName(), ContextFinder.class, classLoader);
-        } catch (final ClassNotFoundException e) {
-            throw new JAXBException("Provider " + iface.getName() + " not found", e);
-        }
-    }
-
-    static private Class<?> locateServiceClass(final String iface, final Class<?> contextClass, final ClassLoader loader) throws ClassNotFoundException {
-        final String className = locateServiceClassName(iface, contextClass, loader);
-        if (className == null) {
-            return null;
-        }
-
-        // we found a name, try loading the class.  This will throw an exception if there is an error
-        return loadClass(className, contextClass, loader);
-    }
-
-    static private String locateServiceClassName(final String iface, final Class<?> contextClass, final ClassLoader loader) {
-        // search first with the loader class path
-        String name = locateServiceClassName(iface, loader);
-        if (name != null) {
-            return name;
-        }
-        // then with the context class, if there is one
-        if (contextClass != null) {
-            name = locateServiceClassName(iface, contextClass.getClassLoader());
-            if (name != null) {
-                return name;
-            }
-        }
-        // not found
-        return null;
-    }
-
-    static private String locateServiceClassName(final String iface, final ClassLoader loader) {
-        if (loader != null) {
-            try {
-                // we only look at resources that match the file name, using the specified loader
-                final String service = "META-INF/services/" + iface;
-                final Enumeration<URL> providers = loader.getResources(service);
-
-                while (providers.hasMoreElements()) {
-                    final List<String>providerNames = parseServiceDefinition(providers.nextElement());
-                    // if there is something defined here, return the first entry
-                    if (!providerNames.isEmpty()) {
-                        return providerNames.get(0);
-                    }
-                }
-            } catch (final IOException e) {
-            }
-        }
-        // not found
-        return null;
-    }
-
-    static public Class<?> loadClass(final String className, final Class<?> contextClass, ClassLoader loader) throws ClassNotFoundException {
-        if (loader != null) {
-            try {
-                return loader.loadClass(className);
-            } catch (final ClassNotFoundException x) {
-                //ignore
-            }
-        }
-        if (contextClass != null) {
-            loader = contextClass.getClassLoader();
-        }
-        // try again using the class context loader
-        return Class.forName(className, true, loader);
-    }
-
-    static private Collection<String> locateServiceClassNames(final String iface, final Class<?> contextClass, final ClassLoader loader) {
-        final Set<String> names = new LinkedHashSet<String>();
-
-        locateServiceClassNames(iface, loader, names);
-        if (contextClass != null) {
-            locateServiceClassNames(iface, contextClass.getClassLoader(), names);
-        }
-
-        return names;
-    }
-
-    static void locateServiceClassNames(final String iface, final ClassLoader loader, final Set names) {
-        if (loader != null) {
-
-            try {
-                // we only look at resources that match the file name, using the specified loader
-                final String service = "META-INF/services/" + iface;
-                final Enumeration<URL> providers = loader.getResources(service);
-
-                while (providers.hasMoreElements()) {
-                    final List<String>providerNames = parseServiceDefinition(providers.nextElement());
-                    // just add all of these to the list
-                    names.addAll(providerNames);
-                }
-            } catch (final IOException e) {
-                //Ignore
-            }
-        }
-    }
-
-    static private List<String> parseServiceDefinition(final URL u) {
-        final String url = u.toString();
-        final List<String> classes = new ArrayList<String>();
-        // ignore directories
-        if (url.endsWith("/")) {
-            return classes;
-        }
-        // the identifier used for the provider is the last item in the URL.
-        final String providerId = url.substring(url.lastIndexOf("/") + 1);
-        try {
-            final BufferedReader br = new BufferedReader(new InputStreamReader(u.openStream(), "UTF-8"));
-            // the file can be multiple lines long, with comments.  A single file can define multiple providers
-            // for a single key, so we might need to create multiple entries.  If the file does not contain any
-            // definition lines, then as a default, we use the providerId as an implementation class also.
-            String line = br.readLine();
-            while (line != null) {
-                // we allow comments on these lines, and a line can be all comment
-                final int comment = line.indexOf('#');
-                if (comment != -1) {
-                    line = line.substring(0, comment);
-                }
-                line = line.trim();
-                // if there is nothing left on the line after stripping white space and comments, skip this
-                if (line.length() > 0) {
-                    // add this to our list
-                    classes.add(line);
-                }
-                // keep reading until the end.
-                line = br.readLine();
-            }
-            br.close();
-        } catch (final IOException e) {
-            // ignore errors and handle as default
-        }
-        return classes;
-    }
-
-    private static Class loadSpi(final String className, final ClassLoader classLoader) throws JAXBException {
-        if (osgiLocator != null) {
-            return loadSpiFromOSGi(className, classLoader);
-        }
-
-        try {
-            return loadClass(className, ContextFinder.class, classLoader);
-        } catch (final ClassNotFoundException e) {
-            throw new JAXBException("Provider " + className + " not found", e);
-        }
-    }
-
-    private static Class<?> loadSPIClassFromOSGi(final Class<?> iface, final ClassLoader classLoader) throws JAXBException {
-        try {
-            return (Class<?>) getServiceClassMethod.invoke(null, iface.getName(), ContextFinder.class,classLoader);
-        } catch (final Exception e) {
-            return null;
-        }
-    }
-
-    private static Class loadSpiFromOSGi(final String className, final ClassLoader classLoader) throws JAXBException {
-        try {
-            return (Class<?>) loadClassMethod.invoke(null, className, ContextFinder.class, classLoader);
-        } catch (final Exception e) {
-            throw new JAXBException("Provider " + className + " not found", e);
-        }
-    }
-}
diff --git a/src/main/java/javax/xml/bind/DatatypeConverter.java b/src/main/java/javax/xml/bind/DatatypeConverter.java
deleted file mode 100644
index f567ac4..0000000
--- a/src/main/java/javax/xml/bind/DatatypeConverter.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * 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 javax.xml.bind;
-
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.namespace.QName;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Calendar;
-
-@SuppressWarnings("UnusedDeclaration")
-public final class DatatypeConverter {
-
-    private static DatatypeConverterInterface converter = new DatatypeConverterImpl();
-
-    private DatatypeConverter() {
-        // no-op
-    }
-
-    public static void setDatatypeConverter(final DatatypeConverterInterface converter) {
-        if (converter == null) {
-            throw new IllegalArgumentException("The DatatypeConverterInterface parameter must not be null");
-        }
-        if (DatatypeConverter.converter == null) {
-
-            final SecurityManager sm = System.getSecurityManager();
-            if (sm != null) {
-                sm.checkPermission(new JAXBPermission("setDatatypeConverter"));
-            }
-
-            DatatypeConverter.converter = new DatatypeConverterHelper(converter);
-        }
-    }
-
-    public static String parseString(final String lexicalXSDString) {
-        return converter.parseString(lexicalXSDString);
-    }
-
-    public static BigInteger parseInteger(final String lexicalXSDInteger) {
-        return converter.parseInteger(lexicalXSDInteger);
-    }
-
-    public static int parseInt(final String lexicalXSDInt) {
-        return converter.parseInt(lexicalXSDInt);
-    }
-
-    public static long parseLong(final String lexicalXSDLong) {
-        return converter.parseLong(lexicalXSDLong);
-    }
-
-    public static short parseShort(final String lexicalXSDShort) {
-        return converter.parseShort(lexicalXSDShort);
-    }
-
-    public static BigDecimal parseDecimal(final String lexicalXSDDecimal) {
-        return converter.parseDecimal(lexicalXSDDecimal);
-    }
-
-    public static float parseFloat(final String lexicalXSDFloat) {
-        return converter.parseFloat(lexicalXSDFloat);
-    }
-
-    public static double parseDouble(final String lexicalXSDDouble) {
-        return converter.parseDouble(lexicalXSDDouble);
-    }
-
-    public static boolean parseBoolean(final String lexicalXSDBoolean) {
-        return converter.parseBoolean(lexicalXSDBoolean);
-    }
-
-    public static byte parseByte(final String lexicalXSDByte) {
-        return converter.parseByte(lexicalXSDByte);
-    }
-
-    public static QName parseQName(final String lexicalXSDQName, final NamespaceContext nsc) {
-        return converter.parseQName(lexicalXSDQName, nsc);
-    }
-
-    public static Calendar parseDateTime(final String lexicalXSDDateTime) {
-        return converter.parseDateTime(lexicalXSDDateTime);
-    }
-
-    public static byte[] parseBase64Binary(final String lexicalXSDBase64Binary) {
-        return converter.parseBase64Binary(lexicalXSDBase64Binary);
-    }
-
-    public static byte[] parseHexBinary(final String lexicalXSDHexBinary) {
-        return converter.parseHexBinary(lexicalXSDHexBinary);
-    }
-
-    public static long parseUnsignedInt(final String lexicalXSDUnsignedInt) {
-        return converter.parseUnsignedInt(lexicalXSDUnsignedInt);
-    }
-
-    public static int parseUnsignedShort(final String lexicalXSDUnsignedShort) {
-        return converter.parseUnsignedShort(lexicalXSDUnsignedShort);
-    }
-
-    public static Calendar parseTime(final String lexicalXSDTime) {
-        return converter.parseTime(lexicalXSDTime);
-    }
-
-    public static Calendar parseDate(final String lexicalXSDDate) {
-        return converter.parseDate(lexicalXSDDate);
-    }
-
-    public static String parseAnySimpleType(final String lexicalXSDAnySimpleType) {
-        return converter.parseAnySimpleType(lexicalXSDAnySimpleType);
-    }
-
-    public static String printString(final String val) {
-        return converter.printString(val);
-    }
-
-    public static String printInteger(final BigInteger val) {
-        return converter.printInteger(val);
-    }
-
-    public static String printInt(final int val) {
-        return converter.printInt(val);
-    }
-
-    public static String printLong(final long val) {
-        return converter.printLong(val);
-    }
-
-    public static String printShort(final short val) {
-        return converter.printShort(val);
-    }
-
-    public static String printDecimal(final BigDecimal val) {
-        return converter.printDecimal(val);
-    }
-
-    public static String printFloat(final float val) {
-        return converter.printFloat(val);
-    }
-
-    public static String printDouble(final double val) {
-        return converter.printDouble(val);
-    }
-
-    public static String printBoolean(final boolean val) {
-        return converter.printBoolean(val);
-    }
-
-    public static String printByte(final byte val) {
-        return converter.printByte(val);
-    }
-
-    public static String printQName(final QName val, final NamespaceContext nsc) {
-        return converter.printQName(val, nsc);
-    }
-
-    public static String printDateTime(final Calendar val) {
-        return converter.printDateTime(val);
-    }
-
-    public static String printBase64Binary(final byte[] val) {
-        return converter.printBase64Binary(val);
-    }
-
-    public static String printHexBinary(final byte[] val) {
-        return converter.printHexBinary(val);
-    }
-
-    public static String printUnsignedInt(final long val) {
-        return converter.printUnsignedInt(val);
-    }
-
-    public static String printUnsignedShort(final int val) {
-        return converter.printUnsignedShort(val);
-    }
-
-    public static String printTime(final Calendar val) {
-        return converter.printTime(val);
-    }
-
-    public static String printDate(final Calendar val) {
-        return converter.printDate(val);
-    }
-
-    public static String printAnySimpleType(final String val) {
-        return converter.printAnySimpleType(val);
-    }
-
-}