cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ff...@apache.org
Subject svn commit: r469379 - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/ common/common/src/main/java/org/apache/cxf/common/classloader/ distribution/ integration/jbi/src/main/java/org/apache/cxf/jbi/se/ integration/jbi/src/main/java/org/apache/...
Date Tue, 31 Oct 2006 05:44:12 GMT
Author: ffang
Date: Mon Oct 30 21:44:11 2006
New Revision: 469379

URL: http://svn.apache.org/viewvc?view=rev&rev=469379
Log:
[CXF-38] JBI Integration -- add firewall classloader for CXF ServiceEngine

Added:
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoaderHelper.java   (with props)
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/Handler.java   (with props)
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/JarLoader.java   (with props)
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/filters.properties   (with props)
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/negativefilters.properties   (with props)
    incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/
    incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/DISCLAIMER
    incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/LICENSE   (with props)
    incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/NOTICE   (with props)
    incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/bus-extensions.xml   (with props)
    incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/
    incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/cxf-extension.xml   (with props)
Modified:
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactoryHelper.java
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/classloader/FireWallClassLoader.java
    incubator/cxf/trunk/distribution/pom.xml
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceEngine.java
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceUnit.java
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoader.java
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/AbstractServiceEngineStateMachine.java
    incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/ServiceEngineShutdown.java
    incubator/cxf/trunk/integration/jbi/src/test/java/org/apache/cxf/jbi/se/CXFServiceUnitManagerTest.java

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactoryHelper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactoryHelper.java?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactoryHelper.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/BusFactoryHelper.java Mon Oct 30 21:44:11 2006
@@ -42,7 +42,6 @@
         BusFactory instance = null;
         ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
         String className = getBusFactoryClass(null, classLoader);
-            
         Class<? extends BusFactory> busFactoryClass;
         try {
             busFactoryClass = Class.forName(className, true, classLoader).asSubclass(BusFactory.class);

Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/classloader/FireWallClassLoader.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/classloader/FireWallClassLoader.java?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/classloader/FireWallClassLoader.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/common/classloader/FireWallClassLoader.java Mon Oct 30 21:44:11 2006
@@ -206,6 +206,28 @@
         throw new ClassNotFoundException(name);
     }
 
+    /*protected Class<?> findClass(String name) throws ClassNotFoundException {
+        if (negativeFilters != null) {
+            for (int i = 0; i < negativeFilters.length; i++) {
+                if (name.startsWith(negativeFilters[i])) {
+                    throw new ClassNotFoundException(name);
+                }
+            }
+        }
+
+        if (filters != null) {
+            for (int i = 0; i < filters.length; i++) {
+                if (name.startsWith(filters[i])) {
+                    return super.findClass(name);
+                }
+            }
+        } else {
+            return super.loadClass(name);
+        }
+        throw new ClassNotFoundException(name);
+    }*/
+
+    
     public java.net.URL getResource(String name) {
         if (negativeFNFilters != null) {
             for (int i = 0; i < negativeFNFilters.length; i++) {

Modified: incubator/cxf/trunk/distribution/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/pom.xml?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/distribution/pom.xml (original)
+++ incubator/cxf/trunk/distribution/pom.xml Mon Oct 30 21:44:11 2006
@@ -98,6 +98,14 @@
             <version>${pom.version}</version>
         </dependency>
 
+	<dependency>
+            <groupId>${pom.groupId}</groupId>
+            <artifactId>cxf-int-jbi</artifactId>
+            <version>${pom.version}</version>
+        </dependency>
+
+
+
         <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-rt-core</artifactId>

Modified: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceEngine.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceEngine.java?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceEngine.java (original)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceEngine.java Mon Oct 30 21:44:11 2006
@@ -46,7 +46,7 @@
  */
 public class CXFServiceEngine implements ComponentLifeCycle, Component {
     
-    public static final String JBI_TRANSPORT_ID = "http://celtix.object.org/transport/jbi";
+    public static final String JBI_TRANSPORT_ID = "http://apache.org/transport/jbi";
     
     
     

Modified: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceUnit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceUnit.java?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceUnit.java (original)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/CXFServiceUnit.java Mon Oct 30 21:44:11 2006
@@ -78,7 +78,7 @@
         } 
         bus = b;
         rootPath = path;
-        parent.addResource(url);
+        parent.addResource(url.toString());
         parentLoader = parent;
         parseJbiDescriptor(); 
     }

Modified: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoader.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoader.java?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoader.java (original)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoader.java Mon Oct 30 21:44:11 2006
@@ -19,17 +19,150 @@
 
 package org.apache.cxf.jbi.se;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
 import java.net.URL;
-import java.net.URLClassLoader;
+import java.security.ProtectionDomain;
+import java.security.SecureClassLoader;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.logging.Logger;
 
-public class ComponentClassLoader extends URLClassLoader {
+import org.apache.cxf.common.classloader.FireWallClassLoader;
 
-    public ComponentClassLoader(URL[] urls, ClassLoader parent) {
-        super(urls, parent);
+
+public class ComponentClassLoader extends SecureClassLoader {
+
+    private static final Logger LOG =  Logger.getLogger(ComponentClassLoader.class.getName());
+    private static final String FILE_COLON = "file:";
+    private static final String ZIP_COLON = "zip:";
+    private static final String URL_SCHEME_COLON = "classloader:";
+    private static final String FILTERS_PROPS_FILE = "filters.properties";
+    private static final String NEFILTERS_PROPS_FILE = "negativefilters.properties";
+    private String jarUrls[] = new String[0];
+    private final ProtectionDomain protectionDomain;
+    
+    private ClassLoader ploader;
+
+    public ComponentClassLoader(String[] urls, ClassLoader p) throws IOException {        
+        super(new FireWallClassLoader(p, 
+                                      getFilterList(p, FILTERS_PROPS_FILE),
+                                      getFilterList(p, NEFILTERS_PROPS_FILE)));
+        ploader = p;
+        protectionDomain = getClass().getProtectionDomain();
+        jarUrls = urls;
+        processJarUrls(jarUrls);
+    }
+
+    private void processJarUrls(String urls[]) {
+        for (int i = 0; i < urls.length; i++) {
+            if (urls[i].startsWith(ZIP_COLON)) {
+                urls[i] = FILE_COLON + urls[i].substring(ZIP_COLON.length());                              
+            }
+        }
+    }
+
+    private static String[] getFilterList(ClassLoader parent, String propFile) throws IOException {
+        Properties filtersProps = getProperties(parent, propFile);
+        Iterator<Object> i = filtersProps.keySet().iterator();
+        while (i.hasNext()) {            
+            LOG.config("get Filter " + propFile + "::" + (String)i.next());            
+        }    
+        return (String[])filtersProps.keySet().toArray(new String[] {});
+    }
+
+    private static Properties getProperties(ClassLoader parent, String propsFileName) throws IOException {
+        InputStream in = parent.getResourceAsStream(propsFileName);
+
+        if (null == in) {
+            in = ComponentClassLoader.class.getResourceAsStream(propsFileName);
+
+            if (null == in) {
+                String msg = "Internal rar classloader failed to locate configuration resource: "
+                        + propsFileName;
+                IOException ioe = new IOException(msg);
+
+                LOG.warning(ioe.toString());
+                throw ioe;
+            }
+        }
+
+        Properties props = new Properties();
+
+        props.load(in);
+        LOG.fine("Contents: " + propsFileName + props);
+
+        return props;
     }
+
     
-    public void addResource(URL url) {
-        addURL(url);
+    protected Class<?> findClass(String name) throws ClassNotFoundException {
+        String path = name.replace('.', '/').concat(".class");
+        LOG.fine("findClass " + path);
+        byte bytes[] = null;
+
+        for (int i = 0; i < jarUrls.length; i++) {
+            String fullpath = jarUrls[i] + "!/" + path;           
+            try {
+                bytes = ComponentClassLoaderHelper.getResourceAsBytes(fullpath);
+
+                if (bytes != null) {
+                    break;
+                }
+            } catch (IOException ex) {
+                // we should find everything we look for but if we don't our
+                // parent can when we throw cnf below
+                LOG.fine("findClass: " + name + ": " + ex.toString());
+            }
+        }
+
+        if (bytes != null) {
+            return defineClass(name, bytes, 0, bytes.length, protectionDomain);
+        } else {
+            LOG.config("can't find name " + name + " , try to using the ploader");
+            Class<?> result = ploader.loadClass(name);
+            if (null == result) {
+                throw new ClassNotFoundException(name);
+            } else {
+                return result;
+            }                
+        }
     }
+    
    
+    protected URL findResource(String name) {
+        LOG.fine("findResource: " + name);
+        for (int i = 0; i < jarUrls.length; i++) {
+            String fullpath = jarUrls[i] + "!/" + name;         
+              
+            if (ComponentClassLoaderHelper.hasResource(fullpath)) {                
+                return genURL(fullpath);
+            }
+        }
+        
+        return null;
+    }
+
+    protected URL genURL(String path) {
+        URL url = null;
+        String urlString = URL_SCHEME_COLON + path;
+
+        try {
+            url = new URL(null, urlString, new Handler());
+        } catch (MalformedURLException mue) {
+            LOG.warning(mue.toString());
+        }
+
+        return url;
+    }
+    
+    public void addResource(String url) {
+        String[] tmp = new String[jarUrls.length + 1];
+        for (int i = 0; i < tmp.length - 1; i++) {
+            tmp[i] = jarUrls[i];
+        }
+        tmp[jarUrls.length] = url;
+        jarUrls = tmp;
+    }
 }

Added: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoaderHelper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoaderHelper.java?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoaderHelper.java (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoaderHelper.java Mon Oct 30 21:44:11 2006
@@ -0,0 +1,110 @@
+/**
+ * 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.apache.cxf.jbi.se;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Logger;
+
+
+
+public final class ComponentClassLoaderHelper {
+    private static final Logger LOG = 
+        Logger.getLogger(ComponentClassLoaderHelper.class.getName());
+    private static Map<String, byte[]> nonClassesMap = new HashMap<String, byte[]>();
+   
+
+    private ComponentClassLoaderHelper() {
+        // singleton
+    }
+
+    public static boolean hasResource(String name) {
+        try {
+            return getResourceAsBytes(name) != null;
+        } catch (IOException ex) {
+            LOG.fine("unexpected exception: " + ex);
+
+            return false;
+        }
+    }
+   
+    public static byte[] getResourceAsBytes(String name) throws IOException {
+        // check nonClassCache for properties etc..
+        if (!name.endsWith(".class") && nonClassesMap.containsKey(name)) {
+            return (byte[])(nonClassesMap.get(name));            
+        }
+
+        // first check file path directorys, then check jars
+        if (!isJarReference(name)) {
+            // try direct load of url
+            try {
+                return JarLoader.getBytesFromInputStream(new URL(name).openStream());
+            } catch (java.net.MalformedURLException mue) {
+                throw new IOException(mue.getMessage());
+            }
+        } else {
+            // something with !/
+            // check for a nested directory reference
+            if (isNestedDirectoryReference(name)) {
+                throw new IOException(
+                        "Accessing contents of directories within jars is currently not supported");
+            } else {
+                String enclosingJar = name.substring(0, name.lastIndexOf("!/") + 2);
+                String resourceName = name.substring(name.lastIndexOf("!/") + 2);
+                Map jarMap = JarLoader.getJarContents(enclosingJar);
+
+                if (null != jarMap && jarMap.containsKey(resourceName)) {
+                    byte bytes[] = (byte[])jarMap.get(resourceName);
+
+                    // this class will not be looked for again
+                    // once it is loaded so to save memory we
+                    // remove it form the map, if it is not a
+                    // class we add it to the nonClasses cache,
+                    // this is only true for in memory cache.
+                    // REVISIT - this needs to be more specific,
+                    // some classes Home|Remote interfaces are
+                    // loaded multiple times - see remote class
+                    // downloading for the moment disable this
+                    // jarMap.remove(resourceName);
+                    //
+                    if (!name.endsWith(".class")) {
+                        nonClassesMap.put(name, bytes);
+                    }
+                    return bytes;                    
+                }
+            }
+        }
+
+        // failed to locate the resource
+        return null;
+    }
+
+    private static boolean isJarReference(String name) {
+        return name.indexOf("!/") != -1;
+    }
+
+    private static boolean isNestedDirectoryReference(String path) {
+        String nestedDir = path.substring(path.lastIndexOf("!/") + 2);
+
+        return !"".equals(nestedDir) && nestedDir.endsWith("/");
+    }
+}

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoaderHelper.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/ComponentClassLoaderHelper.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/Handler.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/Handler.java?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/Handler.java (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/Handler.java Mon Oct 30 21:44:11 2006
@@ -0,0 +1,51 @@
+/**
+ * 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.apache.cxf.jbi.se;
+
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+
+
+public class Handler extends URLStreamHandler {
+    public URLConnection openConnection(URL someUrl) {
+        return new HandlerUrlConnection(someUrl);
+    }
+
+    class HandlerUrlConnection extends URLConnection {
+        public HandlerUrlConnection(URL someUrl) {
+            super(someUrl);
+        }
+
+        public void connect() {
+        }
+
+        public InputStream getInputStream() throws java.io.IOException {
+            byte bytes[] = ComponentClassLoaderHelper.getResourceAsBytes(url.getPath());
+
+            if (bytes != null) {
+                return new java.io.ByteArrayInputStream(bytes);
+            } else {
+                throw new java.io.IOException(url.getPath() + " not found");
+            }
+        }
+    }
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/Handler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/Handler.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/JarLoader.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/JarLoader.java?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/JarLoader.java (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/JarLoader.java Mon Oct 30 21:44:11 2006
@@ -0,0 +1,183 @@
+/**
+ * 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.apache.cxf.jbi.se;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+
+/**
+ * load jars to memory from an archive
+ */
+public final class JarLoader {
+    // map of all the archives we now about
+    // this keys to this map are full distinguished names of the fromat
+    // someOuterArchive!/someInnerArchive!/....
+    // the values of the archives map are maps of entry names to bytes
+    static Map<String, Object> archives = new HashMap<String, Object>();
+    static final int CHUNK_SIZE = 4096;
+    static final int MAX_CHUNK_SIZE = CHUNK_SIZE * 16;
+
+    private JarLoader() {
+    }
+
+    public static byte[] getBytesFromInputStream(InputStream is) throws IOException {
+        return getBytesFromInputStream(is, -1);
+    }
+
+    public static synchronized Map getJarContents(String path) throws MalformedURLException, IOException {
+        if (!archives.containsKey(path)) {
+            loadArchive(path);
+        }
+
+        return (Map)archives.get(path);
+    }
+
+    @SuppressWarnings("unchecked")
+    private static void loadArchive(String path) throws MalformedURLException, IOException {
+        List<String> nameComponents = tokenizePathComponents(path);
+
+        for (int i = 0; i < nameComponents.size(); i++) {
+            if (!archives.containsKey(buildPartialName(nameComponents, i + 1))) {
+                readArchive(buildPartialName(nameComponents, i + 1));
+
+                if (i != 0) {
+                    // not the root archive so there is a parentMap with a reference to the
+                    // entry as raw byte array.
+                    // This byte array has now been exploded into a Map so the raw bytes are
+                    // no longer needed, replace the entry with the exploded Map
+                    //
+                    Map parentMap = 
+                        (Map)archives.get(buildPartialName(nameComponents, i));
+                    Map archiveMap = 
+                        (Map)archives.get(buildPartialName(nameComponents, i + 1));
+
+                    parentMap.put(nameComponents.get(i), archiveMap);
+                }
+            }
+        }
+    }
+
+    private static List<String> tokenizePathComponents(String path) {
+        List<String> tokens = new LinkedList<String>();
+        String tmpPath = new String(path);
+
+        while (tmpPath.length() > 0) {
+            if (tmpPath.indexOf("!/") == -1) {
+                tokens.add(tmpPath);
+                tmpPath = "";
+            } else {
+                tokens.add(tmpPath.substring(0, tmpPath.indexOf("!/")));
+                tmpPath = tmpPath.substring(tmpPath.indexOf("!/") + 2);
+            }
+        }
+
+        return tokens;
+    }
+
+    private static String buildPartialName(List<String> nameComponents, int size) {
+        StringBuffer sb = new StringBuffer();
+
+        for (int i = 0; i < size; i++) {
+            sb.append(nameComponents.get(i));
+            sb.append("!/");
+        }
+
+        return sb.toString();
+    }
+
+    private static String getRootArchiveName(String name) {
+        int index = name.indexOf("file:");
+
+        if (index > -1) {
+            name = name.substring(index);
+        }
+
+        if (name.indexOf("!/") != -1) {
+            return name.substring(0, name.indexOf("!/"));
+        } else {
+            return name;
+        }
+    }
+
+    private static void readArchive(String name) throws MalformedURLException, IOException {
+        List<String> nameComponents = tokenizePathComponents(name);
+        Map<String, Object> map = null;
+
+        if (nameComponents.size() == 1) {            
+            map = readZipStream((new URL(getRootArchiveName(name))).openStream());
+        } else {
+            Map parentMap = (Map)archives.get(buildPartialName(nameComponents, nameComponents.size() - 1));
+            byte bytes[] = (byte[])(parentMap.get(nameComponents.get(nameComponents.size() - 1)));
+            
+            if (null == bytes) {
+                // unexpected, classpath entry in error, referenced jar is not in the archive
+                throw new IOException(
+                        "Enclosing archive " + buildPartialName(nameComponents, nameComponents.size() - 1)
+                        + " has no entry named:" + nameComponents.get(nameComponents.size() - 1)
+                        + ", error in archive classpath");
+            }
+
+            map = readZipStream(new ByteArrayInputStream(bytes));
+        }
+
+        archives.put(name, map);
+    }
+
+    private static Map<String, Object> readZipStream(InputStream is) throws IOException {
+        ZipInputStream zis = new ZipInputStream(is);
+        Map<String, Object> map = new HashMap<String, Object>();
+
+        for (ZipEntry ze = zis.getNextEntry(); ze != null; ze = zis.getNextEntry()) {
+            if (ze.isDirectory()) {
+                map.put(ze.getName(), ze.getName());               
+            } else {                
+                byte bytes[] = getBytesFromInputStream(zis, ze.getSize());
+                map.put(ze.getName(), bytes);
+            }
+        }
+
+        return map;
+    }
+
+    private static byte[] getBytesFromInputStream(InputStream is, long size) throws IOException {
+               
+        byte chunk[] = new byte[((size > CHUNK_SIZE) && (size < MAX_CHUNK_SIZE)) ? (int)size : CHUNK_SIZE];
+        
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        
+        for (int i = is.read(chunk, 0, chunk.length); i != -1; i = is.read(chunk, 0, chunk.length)) {
+            baos.write(chunk, 0, i);           
+        }
+         
+        return baos.toByteArray();
+    }
+}
+

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/JarLoader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/JarLoader.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/filters.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/filters.properties?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/filters.properties (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/filters.properties Mon Oct 30 21:44:11 2006
@@ -0,0 +1,25 @@
+#
+#
+#    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.
+#
+#
+java.*
+org.*
+com.sun.*
+org.omg.*
+org.apache.*

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/filters.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/filters.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/filters.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/negativefilters.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/negativefilters.properties?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/negativefilters.properties (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/negativefilters.properties Mon Oct 30 21:44:11 2006
@@ -0,0 +1,20 @@
+#
+#
+#    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.
+#
+

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/negativefilters.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/negativefilters.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/negativefilters.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/AbstractServiceEngineStateMachine.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/AbstractServiceEngineStateMachine.java?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/AbstractServiceEngineStateMachine.java (original)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/AbstractServiceEngineStateMachine.java Mon Oct 30 21:44:11 2006
@@ -21,8 +21,7 @@
 
 package org.apache.cxf.jbi.se.state;
 
-//import java.util.logging.Level;
-//import java.util.logging.Logger;
+import java.util.logging.Logger;
 
 import javax.jbi.JBIException;
 import javax.jbi.component.ComponentContext;
@@ -30,21 +29,23 @@
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
-//import org.apache.cxf.common.i18n.Message;
-//import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.jbi.se.CXFServiceUnitManager;
-//import org.apache.cxf.jbi.transport.JBITransportFactory;
+import org.apache.cxf.jbi.transport.JBITransportFactory;
+import org.apache.cxf.transport.DestinationFactory;
+import org.apache.cxf.transport.DestinationFactoryManager;
 
 public abstract class AbstractServiceEngineStateMachine implements ServiceEngineStateMachine {
 
-    static final String CELTIX_CONFIG_FILE = "celtix-config.xml";
+    static final String CXF_CONFIG_FILE = "cxf.xml";
     static final String PROVIDER_PROP = "javax.xml.ws.spi.Provider";
     static CXFServiceUnitManager suManager;
     static ComponentContext ctx;
     static Bus bus;
-    //private static final Logger LOG = LogUtils.getL7dLogger(AbstractServiceEngineStateMachine.class);
-    //private static final String JBI_TRANSPORT_ID = "http://celtix.object.org/transport/jbi";
+    private static final Logger LOG = LogUtils.getL7dLogger(AbstractServiceEngineStateMachine.class);
       
+    JBITransportFactory jbiTransportFactory;
    
 
     public void changeState(SEOperation operation, ComponentContext context) throws JBIException {
@@ -53,38 +54,70 @@
 
     void configureJBITransportFactory(DeliveryChannel chnl, CXFServiceUnitManager mgr)
         throws BusException { 
-        //getTransportFactory().setDeliveryChannel(chnl);
+        getTransportFactory().setDeliveryChannel(chnl);
     }
 
 
-    /*JBITransportFactory getTransportFactory() throws BusException { 
-        assert bus != null;
     
-        try { 
-            JBITransportFactory transportFactory = 
-                (JBITransportFactory)bus.getTransportFactoryManager()
-                    .getTransportFactory(JBI_TRANSPORT_ID);
-        
-            return transportFactory;
-        } catch (BusException ex) { 
-            LOG.log(Level.SEVERE, new Message("SE.FAILED.INIT.BUS", LOG).toString(), ex);
-            throw ex;
-        }
-    }
     
-    void registerJBITransport(Bus argBus, CeltixServiceUnitManager mgr) throws JBIException { 
+    void registerJBITransport(Bus argBus, CXFServiceUnitManager mgr) throws JBIException { 
         try { 
-           
-            getTransportFactory().init(argBus);
+            getTransportFactory().setBus(argBus);
             getTransportFactory().setServiceUnitManager(mgr);
+            replaceDestionFactory();
         } catch (Exception ex) {
+            LOG.severe(new Message("SE.FAILED.REGISTER.TRANSPORT.FACTORY", 
+                                               LOG).toString());
             throw new JBIException(new Message("SE.FAILED.REGISTER.TRANSPORT.FACTORY", 
                                                LOG).toString(), ex);
         }
-    }*/ 
+    }
     
     public static CXFServiceUnitManager getSUManager() {
         return suManager;
     }
+    
+    private void deregisterTransport(String transportId) {
+        bus.getExtension(DestinationFactoryManager.class).deregisterDestinationFactory(transportId);        
+    }
+
+    /**
+     * @return
+     */
+    protected JBITransportFactory getTransportFactory() {
+        assert bus != null;
+        if (jbiTransportFactory == null) {
+            jbiTransportFactory = new JBITransportFactory();
+            jbiTransportFactory.setBus(bus);
+            
+        }
+        return jbiTransportFactory;
+    }
+
+    private void registerTransport(DestinationFactory factory, String namespace) {
+        bus.getExtension(DestinationFactoryManager.class).registerDestinationFactory(
+                                                                  namespace,
+                                                                  factory);
+    }
+
+    private void replaceDestionFactory() {
+        DestinationFactory factory = getTransportFactory();
+        
+
+        deregisterTransport("http://schemas.xmlsoap.org/wsdl/soap/http");
+        deregisterTransport("http://schemas.xmlsoap.org/soap/http");
+        deregisterTransport("http://www.w3.org/2003/05/soap/bindings/HTTP/");
+        deregisterTransport("http://schemas.xmlsoap.org/wsdl/http/");
+        deregisterTransport("http://cxf.apache.org/transports/http/configuration");
+        deregisterTransport("http://cxf.apache.org/bindings/xformat");
+        
+        registerTransport(factory, "http://schemas.xmlsoap.org/wsdl/soap/http");
+        registerTransport(factory, "http://schemas.xmlsoap.org/soap/http");
+        registerTransport(factory, "http://www.w3.org/2003/05/soap/bindings/HTTP/");
+        registerTransport(factory, "http://schemas.xmlsoap.org/wsdl/http/");
+        registerTransport(factory, "http://cxf.apache.org/transports/http/configuration");
+        registerTransport(factory, "http://cxf.apache.org/bindings/xformat");
+    }
+
     
 }

Modified: incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/ServiceEngineShutdown.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/ServiceEngineShutdown.java?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/ServiceEngineShutdown.java (original)
+++ incubator/cxf/trunk/integration/jbi/src/main/java/org/apache/cxf/jbi/se/state/ServiceEngineShutdown.java Mon Oct 30 21:44:11 2006
@@ -23,20 +23,21 @@
 
 import java.io.File;
 import java.io.FilenameFilter;
+import java.io.IOException;
 import java.net.MalformedURLException;
-import java.net.URL;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.jbi.JBIException;
 import javax.jbi.component.ComponentContext;
 
-//import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactoryHelper;
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.configuration.Configurer;
 import org.apache.cxf.jbi.se.CXFServiceUnitManager;
 import org.apache.cxf.jbi.se.ComponentClassLoader;
-//import org.apache.cxf.jbi.se.state.ServiceEngineStateMachine.SEOperation;
+
 
 public class ServiceEngineShutdown extends AbstractServiceEngineStateMachine {
 
@@ -61,33 +62,33 @@
     private void initSE(ComponentContext context) throws JBIException {
         
         try {
-            Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
             
-            System.setProperty(PROVIDER_PROP, "org.objectweb.celtix.bus.jaxws.spi.ProviderImpl");
+            
+            System.setProperty(PROVIDER_PROP, "org.apache.cxf.jaxws.spi.ProviderImpl");
             ctx = context;
             if (ctx == null) {
                 return;
             }
             String installRoot = ctx.getInstallRoot();
             File metaInfDir = new File(installRoot, "META-INF");
-            File celtixConfig = new File(metaInfDir, CELTIX_CONFIG_FILE); 
+            File cxfConfig = new File(metaInfDir, CXF_CONFIG_FILE); 
             
-            if (celtixConfig.exists()) { 
-                System.setProperty("celtix.config.file", celtixConfig.toURL().toString());
-                LOG.info(new Message("SE.SET.CONFIGURATION", LOG) + System.getProperty("celtix.config.file"));
+            if (cxfConfig.exists()) { 
+                System.setProperty(Configurer.USER_CFG_FILE_PROPERTY_NAME, cxfConfig.toURL().toString());
+                LOG.info(new Message("SE.SET.CONFIGURATION", LOG) + Configurer.USER_CFG_FILE_PROPERTY_NAME);
             } else { 
                 LOG.severe(new Message("SE.NOT.FOUND.CONFIGURATION", LOG).toString() + metaInfDir);
-            } 
+            }
             
             ComponentClassLoader loader = createClassLoader();
-            
+            Thread.currentThread().setContextClassLoader(loader);
             initializeBus();
             suManager = new CXFServiceUnitManager(bus, ctx, loader);
-            //registerJBITransport(bus, suManager);
+            registerJBITransport(bus, suManager);
             
             LOG.info(new Message("SE.INSTALL.ROOT", LOG) + installRoot);
             LOG.info(new Message("SE.INIT.COMPLETE", LOG).toString());
-            
+                        
         } catch (Throwable e) {
             throw new JBIException(e);
         }
@@ -97,7 +98,9 @@
         
         try { 
             LOG.info(new Message("SE.INIT.BUS", LOG).toString());
-            //bus = Bus.init();
+            if (null == bus) {
+                bus = BusFactoryHelper.newInstance().createBus();
+            }
             LOG.info(new Message("SE.INIT.BUS.COMPLETE", LOG).toString());
         } catch (Exception ex) { 
             LOG.log(Level.SEVERE, new Message("SE.FAILED.INIT.BUS", LOG).toString(), ex);
@@ -106,7 +109,7 @@
     } 
     
 
-    private ComponentClassLoader createClassLoader() throws JBIException { 
+    private ComponentClassLoader createClassLoader() throws JBIException, IOException { 
         
         try { 
             
@@ -116,19 +119,20 @@
                     return name.endsWith(".jar");
                 }
             });
-            URL[] urls;
+            String[] urls;
             if (jars.length == 0) {
-                urls = new URL[0];
+                urls = new String[0];
             } else {
-                urls = new URL[jars.length];
+                urls = new String[jars.length];
                 int i = 0;
                 for (File jar : jars) { 
-                    urls[i] = jar.toURL();
+                    urls[i] = jar.toURL().toString();
                     i++;
                 }
             }
             
             return new ComponentClassLoader(urls, getClass().getClassLoader());
+            
         } catch (MalformedURLException ex) { 
             throw new JBIException(new Message("SE.FAILED.CLASSLOADER", LOG).toString(), ex);
         } 

Added: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/DISCLAIMER
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/DISCLAIMER?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/DISCLAIMER (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/DISCLAIMER Mon Oct 30 21:44:11 2006
@@ -0,0 +1,5 @@
+Apache CeltiXfire is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. 
+
+Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. 
+
+While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Added: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/LICENSE
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/LICENSE?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/LICENSE (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/LICENSE Mon Oct 30 21:44:11 2006
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/LICENSE
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/LICENSE
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/NOTICE
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/NOTICE?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/NOTICE (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/NOTICE Mon Oct 30 21:44:11 2006
@@ -0,0 +1,45 @@
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache CeltiXfire distribution.               ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   The product includes Web Services Description Language
+   for Java Toolkit (WSDL4J) software in binary form.
+   The source may be obtained at: http://sourceforge.net/projects/wsdl4j.
+
+   This product also includes software developed by:
+      - the W3C consortium (http://www.w3c.org) ,
+
+   This product also includes software developed by Spring Framework
+   Project (http://www.springframework.org)
+
+   This product also includes software developed by SUN MICROSYSTEMS, INC
+   (https://www.dev.java.net/servlets/ProjectList)
+
+   This product also includes specifications developed by Java Community
+   Process (http://jcp.org/en/home/index)
+
+   This product also includes software developed by Mort Bay Consulting
+   Pty (http://jetty.mortbay.org)
+
+   This product also includes software developed by Codehause
+   (http://woodstox.codehaus.org/)
+
+   This product also includes WS-* schemas developed by International
+   Business Machines Corporation, Microsoft Corporation, BEA Systems, 
+   TIBCO Software, SAP AG, Sonic Software, and VeriSign
+   (http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd)
+   (http://schemas.xmlsoap.org/ws/2004/08/addressing/)
+   (http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm.xsd)
+   (http://schemas.xmlsoap.org/ws/2004/09/policy/ws-policy.xsd)
+   
+   This Product also includes schemas developed by OASIS
+   (http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd)
+   (http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd) 
+
+   Additional copyright notices and license terms applicable are
+   present in the licenses directory of this distribution.

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/NOTICE
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/NOTICE
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/bus-extensions.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/bus-extensions.xml?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/bus-extensions.xml (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/bus-extensions.xml Mon Oct 30 21:44:11 2006
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<extensions xmlns="http://cxf.apache.org/bus/extension">
+
+    <extension class="org.apache.cxf.jbi.transport.JBITransportFactory" deferred="true">
+        <namespace>http://apache.org/transport/jbi</namespace>
+    </extension>
+</extensions>

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/bus-extensions.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/bus-extensions.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/bus-extensions.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/cxf-extension.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/cxf-extension.xml?view=auto&rev=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/cxf-extension.xml (added)
+++ incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/cxf-extension.xml Mon Oct 30 21:44:11 2006
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:foo="http://cxf.apache.org/configuration/foo"
+       xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    
+    <bean class="org.apache.cxf.jbi.transport.JBITransportFactory" lazy-init="true">
+        <property name="bus" ref="cxf"/>
+        <property name="transportIds">
+            <list>
+                <value>http://apache.org/transport/jbi</value>               
+            </list>
+        </property>
+    </bean>
+</beans>

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/cxf-extension.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/cxf-extension.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/integration/jbi/src/main/resources/META-INF/cxf/cxf-extension.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: incubator/cxf/trunk/integration/jbi/src/test/java/org/apache/cxf/jbi/se/CXFServiceUnitManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/integration/jbi/src/test/java/org/apache/cxf/jbi/se/CXFServiceUnitManagerTest.java?view=diff&rev=469379&r1=469378&r2=469379
==============================================================================
--- incubator/cxf/trunk/integration/jbi/src/test/java/org/apache/cxf/jbi/se/CXFServiceUnitManagerTest.java (original)
+++ incubator/cxf/trunk/integration/jbi/src/test/java/org/apache/cxf/jbi/se/CXFServiceUnitManagerTest.java Mon Oct 30 21:44:11 2006
@@ -18,7 +18,6 @@
  */
 package org.apache.cxf.jbi.se;
 
-import java.net.URL;
 import java.util.logging.Logger;
 
 import javax.jbi.component.ComponentContext;
@@ -48,7 +47,7 @@
         
         bus = new SpringBusFactory().createBus();
         ComponentClassLoader componentClassLoader = 
-            new ComponentClassLoader(new URL[0], getClass().getClassLoader());
+            new ComponentClassLoader(new String[0], getClass().getClassLoader());
         csuManager = new CXFServiceUnitManager(bus, ctx, componentClassLoader);
     }
     



Mime
View raw message