src/share/jaxws_classes/com/sun/xml/internal/ws/api/pipe/TubelineAssemblerFactory.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -28,12 +28,13 @@
 import com.sun.istack.internal.NotNull;
 import com.sun.istack.internal.Nullable;
 import com.sun.xml.internal.ws.api.BindingID;
 import com.sun.xml.internal.ws.api.pipe.helper.PipeAdapter;
 import com.sun.xml.internal.ws.api.server.Container;
+import com.sun.xml.internal.ws.assembler.MetroTubelineAssembler;
 import com.sun.xml.internal.ws.util.ServiceFinder;
-import com.sun.xml.internal.ws.util.pipe.StandaloneTubeAssembler;
+import java.util.logging.Level;
 
 import java.util.logging.Logger;
 
 /**
  * Creates {@link TubelineAssembler}.

@@ -83,51 +84,57 @@
         if(container!=null) {
             // first allow the container to control pipeline for individual endpoint.
             TubelineAssemblerFactory taf = container.getSPI(TubelineAssemblerFactory.class);
             if(taf!=null) {
                 TubelineAssembler a = taf.doCreate(bindingId);
-                if(a!=null)
+                if (a != null) {
                     return a;
             }
         }
+        }
 
         for (TubelineAssemblerFactory factory : ServiceFinder.find(TubelineAssemblerFactory.class, classLoader)) {
             TubelineAssembler assembler = factory.doCreate(bindingId);
             if (assembler != null) {
-                TubelineAssemblerFactory.logger.fine(factory.getClass() + " successfully created " + assembler);
+                TubelineAssemblerFactory.logger.log(Level.FINE, "{0} successfully created {1}", new Object[]{factory.getClass(), assembler});
                 return assembler;
             }
         }
 
         // See if there is a PipelineAssembler out there and use it for compatibility.
         for (PipelineAssemblerFactory factory : ServiceFinder.find(PipelineAssemblerFactory.class,classLoader)) {
             PipelineAssembler assembler = factory.doCreate(bindingId);
             if(assembler!=null) {
-                logger.fine(factory.getClass()+" successfully created "+assembler);
+                logger.log(Level.FINE, "{0} successfully created {1}", new Object[]{factory.getClass(), assembler});
                 return new TubelineAssemblerAdapter(assembler);
             }
         }
 
         // default binding IDs that are known
-        return new StandaloneTubeAssembler();
+        return new MetroTubelineAssembler(bindingId, MetroTubelineAssembler.JAXWS_TUBES_CONFIG_NAMES);
     }
 
     private static class TubelineAssemblerAdapter implements TubelineAssembler {
         private PipelineAssembler assembler;
 
         TubelineAssemblerAdapter(PipelineAssembler assembler) {
             this.assembler = assembler;
         }
 
+        @Override
         public @NotNull Tube createClient(@NotNull ClientTubeAssemblerContext context) {
             ClientPipeAssemblerContext ctxt = new ClientPipeAssemblerContext(
                     context.getAddress(), context.getWsdlModel(), context.getService(),
                     context.getBinding(), context.getContainer());
             return PipeAdapter.adapt(assembler.createClient(ctxt));
         }
 
+        @Override
         public @NotNull Tube createServer(@NotNull ServerTubeAssemblerContext context) {
+            if (!(context instanceof ServerPipeAssemblerContext)) {
+                throw new IllegalArgumentException("{0} is not instance of ServerPipeAssemblerContext");
+            }
             return PipeAdapter.adapt(assembler.createServer((ServerPipeAssemblerContext) context));
         }
     }
 
     private static final Logger logger = Logger.getLogger(TubelineAssemblerFactory.class.getName());