use of jakarta.xml.ws.WebServiceFeature in project metro-jax-ws by eclipse-ee4j.
the class BindingImpl method create.
public static BindingImpl create(@NotNull BindingID bindingId, WebServiceFeature[] features) {
// Override the BindingID from the features
for (WebServiceFeature feature : features) {
if (feature instanceof BindingTypeFeature) {
BindingTypeFeature f = (BindingTypeFeature) feature;
bindingId = BindingID.parse(f.getBindingId());
}
}
if (bindingId.equals(BindingID.XML_HTTP))
return new HTTPBindingImpl(features);
else
return new SOAPBindingImpl(bindingId, features);
}
use of jakarta.xml.ws.WebServiceFeature in project metro-jax-ws by eclipse-ee4j.
the class BindingImpl method setFaultMessageFeatures.
public void setFaultMessageFeatures(@NotNull final QName operationName, @NotNull final QName messageName, WebServiceFeature... newFeatures) {
if (newFeatures != null) {
final MessageKey key = new MessageKey(operationName, messageName);
WebServiceFeatureList featureList = faultMessageFeatures.get(key);
if (featureList == null) {
featureList = new WebServiceFeatureList();
}
for (WebServiceFeature f : newFeatures) {
featureList.add(f);
}
faultMessageFeatures.put(key, featureList);
}
}
use of jakarta.xml.ws.WebServiceFeature in project metro-jax-ws by eclipse-ee4j.
the class WebServiceFeatureList method getWebServiceFeatureBean.
private static WebServiceFeature getWebServiceFeatureBean(Annotation a) {
WebServiceFeatureAnnotation wsfa = a.annotationType().getAnnotation(WebServiceFeatureAnnotation.class);
Class<? extends WebServiceFeature> beanClass = wsfa.bean();
WebServiceFeature bean;
Constructor ftrCtr = null;
String[] paramNames = null;
for (Constructor con : beanClass.getConstructors()) {
FeatureConstructor ftrCtrAnn = (FeatureConstructor) con.getAnnotation(FeatureConstructor.class);
if (ftrCtrAnn != null) {
if (ftrCtr == null) {
ftrCtr = con;
paramNames = ftrCtrAnn.value();
} else {
throw new WebServiceException(ModelerMessages.RUNTIME_MODELER_WSFEATURE_MORETHANONE_FTRCONSTRUCTOR(a, beanClass));
}
}
}
if (ftrCtr == null) {
bean = getWebServiceFeatureBeanViaBuilder(a, beanClass);
if (bean != null) {
return bean;
} else {
throw new WebServiceException(ModelerMessages.RUNTIME_MODELER_WSFEATURE_NO_FTRCONSTRUCTOR(a, beanClass));
}
}
if (ftrCtr.getParameterTypes().length != paramNames.length) {
throw new WebServiceException(ModelerMessages.RUNTIME_MODELER_WSFEATURE_ILLEGAL_FTRCONSTRUCTOR(a, beanClass));
}
try {
Object[] params = new Object[paramNames.length];
for (int i = 0; i < paramNames.length; i++) {
Method m = a.annotationType().getDeclaredMethod(paramNames[i]);
params[i] = m.invoke(a);
}
bean = (WebServiceFeature) ftrCtr.newInstance(params);
} catch (Exception e) {
throw new WebServiceException(e);
}
return bean;
}
use of jakarta.xml.ws.WebServiceFeature in project metro-jax-ws by eclipse-ee4j.
the class WebServiceFeatureList method parseAnnotations.
/**
* @param endpointClass web service impl class
*/
public void parseAnnotations(Class<?> endpointClass) {
for (Annotation a : endpointClass.getAnnotations()) {
WebServiceFeature ftr = getFeature(a);
if (ftr != null) {
if (ftr instanceof MTOMFeature) {
// check conflict with @BindingType
BindingID bindingID = BindingID.parse(endpointClass);
MTOMFeature bindingMtomSetting = bindingID.createBuiltinFeatureList().get(MTOMFeature.class);
if (bindingMtomSetting != null && bindingMtomSetting.isEnabled() ^ ftr.isEnabled()) {
throw new RuntimeModelerException(ModelerMessages.RUNTIME_MODELER_MTOM_CONFLICT(bindingID, ftr.isEnabled()));
}
}
add(ftr);
}
}
}
use of jakarta.xml.ws.WebServiceFeature in project metro-jax-ws by eclipse-ee4j.
the class BindingImpl method setOutputMessageFeatures.
public void setOutputMessageFeatures(@NotNull final QName operationName, WebServiceFeature... newFeatures) {
if (newFeatures != null) {
WebServiceFeatureList featureList = outputMessageFeatures.get(operationName);
if (featureList == null) {
featureList = new WebServiceFeatureList();
}
for (WebServiceFeature f : newFeatures) {
featureList.add(f);
}
outputMessageFeatures.put(operationName, featureList);
}
}
Aggregations