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());