1 |
26600
|
sandro.lab
|
package eu.dnetlib.soap.cxf;
|
2 |
|
|
|
3 |
|
|
import java.util.Map;
|
4 |
|
|
|
5 |
|
|
import javax.xml.namespace.QName;
|
6 |
|
|
import javax.xml.ws.Endpoint;
|
7 |
|
|
import javax.xml.ws.wsaddressing.W3CEndpointReference;
|
8 |
|
|
|
9 |
|
|
import org.apache.cxf.jaxws.EndpointImpl;
|
10 |
|
|
import org.springframework.beans.factory.annotation.Required;
|
11 |
|
|
|
12 |
|
|
import eu.dnetlib.soap.AbstractEndpointReferenceBuilder;
|
13 |
|
|
|
14 |
|
|
/**
|
15 |
|
|
* This EndpointReferenceBuilder implementation takes a jaxws endpoint and extracts the cxf endpoint from it.
|
16 |
|
|
*
|
17 |
|
|
* jaxws endpoints are the most readily available endpoint objects since they constructed from jaxws:endpoint spring
|
18 |
|
|
* beans, as shown in the CXF documentation.
|
19 |
|
|
*
|
20 |
|
|
* Since this implementation forwards the job to CxfEndpointReferenceBuilder, the 'builder' property has to be set:
|
21 |
|
|
*
|
22 |
|
|
* <pre>
|
23 |
|
|
* <bean name="jaxwsEndpointReferenceBuilder" class="eu.dnetlib.soap.cxf.JaxwsEndpointReferenceBuilder"
|
24 |
|
|
* p:builder-ref="cxfEndpointReferenceBuilder" />
|
25 |
|
|
* </pre>
|
26 |
|
|
*
|
27 |
|
|
* @author marko
|
28 |
|
|
* @see CxfEndpointReferenceBuilder
|
29 |
|
|
*
|
30 |
|
|
*/
|
31 |
|
|
public class JaxwsEndpointReferenceBuilder extends AbstractEndpointReferenceBuilder<Endpoint> {
|
32 |
|
|
|
33 |
|
|
/**
|
34 |
|
|
* required reference to the cxf endpoint builder.
|
35 |
|
|
*/
|
36 |
|
|
private CxfEndpointReferenceBuilder builder = null;
|
37 |
|
|
|
38 |
|
|
/**
|
39 |
|
|
* simply unpacks the cxf endpoint from the jaxws endpoint and forwards it to CxfEndpointReferenceBuilder.
|
40 |
|
|
*
|
41 |
|
|
* {@inheritDoc}
|
42 |
|
|
*
|
43 |
|
|
* @see eu.dnetlib.soap.EndpointReferenceBuilder#getEndpointReference(java.lang.Object, java.util.Map)
|
44 |
|
|
*/
|
45 |
|
|
@Override
|
46 |
|
|
public W3CEndpointReference getEndpointReference(final Endpoint endpoint, final String referenceParam, final Map<QName, Object> attrs) {
|
47 |
|
|
return builder.getEndpointReference(((EndpointImpl) endpoint).getServer().getEndpoint(), referenceParam, attrs);
|
48 |
|
|
}
|
49 |
|
|
|
50 |
|
|
public CxfEndpointReferenceBuilder getBuilder() {
|
51 |
|
|
return builder;
|
52 |
|
|
}
|
53 |
|
|
|
54 |
|
|
@Required
|
55 |
|
|
public void setBuilder(final CxfEndpointReferenceBuilder builder) {
|
56 |
|
|
this.builder = builder;
|
57 |
|
|
}
|
58 |
|
|
|
59 |
|
|
@Override
|
60 |
|
|
public String getAddress(Endpoint endpoint) {
|
61 |
|
|
return builder.getAddress(((EndpointImpl) endpoint).getServer().getEndpoint());
|
62 |
|
|
}
|
63 |
|
|
|
64 |
|
|
}
|