use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.
the class AntGenerator method generate.
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
if (passthrough()) {
return;
}
Map<QName, JavaModel> map = CastUtils.cast((Map<?, ?>) penv.get(WSDLToJavaProcessor.MODEL_MAP));
for (JavaModel javaModel : map.values()) {
if (javaModel.getServiceClasses().isEmpty()) {
ServiceInfo serviceInfo = env.get(ServiceInfo.class);
String wsdl = serviceInfo.getDescription().getBaseURI();
Message msg = new Message("CAN_NOT_GEN_ANT", LOG, wsdl);
if (penv.isVerbose()) {
System.out.println(msg.toString());
}
return;
}
Map<String, String> clientClassNamesMap = new HashMap<>();
Map<String, String> serverClassNamesMap = new HashMap<>();
Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
int index = 1;
for (JavaServiceClass js : javaModel.getServiceClasses().values()) {
for (JavaPort jp : js.getPorts()) {
String interfaceName = jp.getInterfaceClass();
JavaInterface intf = interfaces.get(interfaceName);
if (intf == null) {
interfaceName = jp.getPortType();
intf = interfaces.get(interfaceName);
}
String clientClassName = intf.getPackageName() + "." + interfaceName + "_" + NameUtil.mangleNameToClassName(jp.getPortName()) + "_Client";
String serverClassName = intf.getPackageName() + "." + interfaceName + "_" + NameUtil.mangleNameToClassName(jp.getPortName()) + "_Server";
String clientTargetName = interfaceName + "Client";
boolean collison = false;
if (clientClassNamesMap.keySet().contains(clientTargetName)) {
clientTargetName = clientTargetName + index;
collison = true;
}
String serverTargetName = interfaceName + "Server";
if (serverClassNamesMap.keySet().contains(serverTargetName)) {
serverTargetName = serverTargetName + index;
collison = true;
}
if (collison) {
index++;
}
clientClassNamesMap.put(clientTargetName, clientClassName);
serverClassNamesMap.put(serverTargetName, serverClassName);
}
}
clearAttributes();
setAttributes("clientClassNamesMap", clientClassNamesMap);
setAttributes("serverClassNamesMap", serverClassNamesMap);
setAttributes("wsdlLocation", javaModel.getLocation());
setCommonAttributes();
doWrite(ANT_TEMPLATE, parseOutputName(null, "build", ".xml"));
}
}
use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.
the class ImplGenerator method generate.
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
if (passthrough()) {
return;
}
Map<QName, JavaModel> map = CastUtils.cast((Map<?, ?>) penv.get(WSDLToJavaProcessor.MODEL_MAP));
for (JavaModel javaModel : map.values()) {
Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
Map<String, JavaServiceClass> services = javaModel.getServiceClasses();
if (!services.values().isEmpty()) {
for (JavaServiceClass javaservice : services.values()) {
for (JavaPort jport : javaservice.getPorts()) {
JavaInterface intf = interfaces.get(jport.getInterfaceClass());
outputImpl(intf, javaservice, jport.getPortName(), penv);
}
}
} else {
for (Map.Entry<String, JavaInterface> entry : interfaces.entrySet()) {
outputImpl(entry.getValue(), null, "", penv);
}
}
}
}
use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.
the class ServerGenerator method generate.
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
if (passthrough()) {
return;
}
Map<QName, JavaModel> map = CastUtils.cast((Map<?, ?>) penv.get(WSDLToJavaProcessor.MODEL_MAP));
for (JavaModel javaModel : map.values()) {
String address = "CHANGE_ME";
Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
if (javaModel.getServiceClasses().isEmpty()) {
ServiceInfo serviceInfo = env.get(ServiceInfo.class);
String wsdl = serviceInfo.getDescription().getBaseURI();
Message msg = new Message("CAN_NOT_GEN_SRV", LOG, wsdl);
if (penv.isVerbose()) {
System.out.println(msg.toString());
}
return;
}
for (JavaServiceClass js : javaModel.getServiceClasses().values()) {
for (JavaPort jp : js.getPorts()) {
String interfaceName = jp.getInterfaceClass();
JavaInterface intf = interfaces.get(interfaceName);
if (intf == null) {
interfaceName = jp.getPortType();
intf = interfaces.get(interfaceName);
}
address = StringUtils.isEmpty(jp.getBindingAdress()) ? address : jp.getBindingAdress();
String serverClassName = interfaceName + "_" + NameUtil.mangleNameToClassName(jp.getPortName()) + "_Server";
serverClassName = mapClassName(intf.getPackageName(), serverClassName, penv);
clearAttributes();
setAttributes("serverClassName", serverClassName);
setAttributes("intf", intf);
String name = getImplName(jp.getPortName(), js.getServiceName(), intf, penv);
setAttributes("impl", name);
setAttributes("address", address);
setCommonAttributes();
doWrite(SRV_TEMPLATE, parseOutputName(intf.getPackageName(), serverClassName));
}
}
}
}
use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.
the class WSDLToJavaProcessor method wsdlDefinitionToJavaModel.
private JavaModel wsdlDefinitionToJavaModel(ServiceInfo serviceInfo) throws ToolException {
final JavaModel javaModel;
Map<QName, JavaModel> map = CastUtils.cast((Map<?, ?>) context.get(MODEL_MAP));
if (map == null) {
map = new LinkedHashMap<>();
context.put(MODEL_MAP, map);
}
if (map.containsKey(serviceInfo.getName())) {
javaModel = map.get(serviceInfo.getName());
} else {
javaModel = new JavaModel();
map.put(serviceInfo.getName(), javaModel);
}
context.put(JavaModel.class, javaModel);
List<JavaInterface> interfaces = new ArrayList<>();
interfaces.addAll(javaModel.getInterfaces().values());
PortTypeProcessor portTypeProcessor = new PortTypeProcessor(context);
portTypeProcessor.process(serviceInfo);
ServiceProcessor serviceProcessor = new ServiceProcessor(context);
serviceProcessor.process(serviceInfo);
for (JavaInterface intf : javaModel.getInterfaces().values()) {
if (!interfaces.contains(intf)) {
intf.annotate(new WebServiceAnnotator());
intf.annotate(new XmlSeeAlsoAnnotator(context.get(ClassCollector.class)));
intf.annotate(new BindingAnnotator());
}
}
return javaModel;
}
use of org.apache.cxf.tools.common.model.JavaInterface in project cxf by apache.
the class SimpleImplGenerator method generate.
public void generate(ToolContext penv) throws ToolException {
this.env = penv;
JavaModel javaModel = env.get(JavaModel.class);
if (passthrough()) {
return;
}
Map<String, JavaInterface> interfaces = javaModel.getInterfaces();
for (JavaInterface intf : interfaces.values()) {
clearAttributes();
setAttributes("intf", intf);
setAttributes("seiClass", env.get(ToolConstants.SEI_CLASS));
setCommonAttributes();
doWrite(IMPL_TEMPLATE, parseOutputName(intf.getPackageName(), intf.getName() + "Impl"));
env.put(ToolConstants.IMPL_CLASS, intf.getFullClassName() + "Impl");
}
}
Aggregations