use of org.apache.cxf.javascript.types.SchemaJavascriptBuilder in project cxf by apache.
the class JavascriptTestUtilities method loadJavascriptForService.
public void loadJavascriptForService(ServiceInfo serviceInfo) {
Collection<SchemaInfo> schemata = serviceInfo.getSchemas();
BasicNameManager nameManager = BasicNameManager.newNameManager(serviceInfo);
NamespacePrefixAccumulator prefixManager = new NamespacePrefixAccumulator(serviceInfo.getXmlSchemaCollection());
for (SchemaInfo schema : schemata) {
SchemaJavascriptBuilder builder = new SchemaJavascriptBuilder(serviceInfo.getXmlSchemaCollection(), prefixManager, nameManager);
String allThatJavascript = builder.generateCodeForSchema(schema.getSchema());
readStringIntoRhino(allThatJavascript, schema.toString() + ".js");
}
ServiceJavascriptBuilder serviceBuilder = new ServiceJavascriptBuilder(serviceInfo, null, prefixManager, nameManager);
serviceBuilder.walk();
String serviceJavascript = serviceBuilder.getCode();
readStringIntoRhino(serviceJavascript, serviceInfo.getName() + ".js");
}
use of org.apache.cxf.javascript.types.SchemaJavascriptBuilder in project cxf by apache.
the class JavascriptGetInterceptor method writeResponse.
private void writeResponse(URI uri, Map<String, String> map, OutputStream os, Endpoint serverEndpoint) {
OutputStreamWriter writer = new OutputStreamWriter(os, UTF_8);
if (!map.containsKey(NO_UTILS_QUERY_KEY)) {
writeUtilsToResponseStream(JavascriptGetInterceptor.class, os);
}
if (map.containsKey(CODE_QUERY_KEY)) {
ServiceInfo serviceInfo = serverEndpoint.getService().getServiceInfos().get(0);
Collection<SchemaInfo> schemata = serviceInfo.getSchemas();
// we need to move this to the bus.
BasicNameManager nameManager = BasicNameManager.newNameManager(serviceInfo, serverEndpoint);
NamespacePrefixAccumulator prefixManager = new NamespacePrefixAccumulator(serviceInfo.getXmlSchemaCollection());
try {
for (SchemaInfo schema : schemata) {
SchemaJavascriptBuilder builder = new SchemaJavascriptBuilder(serviceInfo.getXmlSchemaCollection(), prefixManager, nameManager);
String allThatJavascript = builder.generateCodeForSchema(schema.getSchema());
writer.append(allThatJavascript);
}
ServiceJavascriptBuilder serviceBuilder = new ServiceJavascriptBuilder(serviceInfo, serverEndpoint.getEndpointInfo().getAddress(), prefixManager, nameManager);
serviceBuilder.walk();
String serviceJavascript = serviceBuilder.getCode();
writer.append(serviceJavascript);
writer.flush();
} catch (IOException e) {
throw new UncheckedException(e);
}
} else {
throw new RuntimeException("Invalid query " + uri.toString());
}
}
use of org.apache.cxf.javascript.types.SchemaJavascriptBuilder in project cxf by apache.
the class WSDLToJavaScriptProcessor method process.
public void process() throws ToolException {
super.process();
ServiceInfo serviceInfo = context.get(ServiceInfo.class);
File jsFile = getOutputFile(serviceInfo.getName().getLocalPart() + ".js");
BasicNameManager nameManager = BasicNameManager.newNameManager(serviceInfo, null);
NamespacePrefixAccumulator prefixManager = new NamespacePrefixAccumulator(serviceInfo.getXmlSchemaCollection());
Map<String, String> nsPrefixMap = CastUtils.cast(context.get(ToolConstants.CFG_JSPREFIXMAP, Map.class), String.class, String.class);
if (nsPrefixMap != null) {
for (Map.Entry<String, String> prefixEntry : nsPrefixMap.entrySet()) {
prefixManager.collect(prefixEntry.getValue(), prefixEntry.getKey());
}
}
try {
OutputStream outputStream = Files.newOutputStream(jsFile.toPath());
if (null != context.get(ToolConstants.CFG_JAVASCRIPT_UTILS)) {
JavascriptGetInterceptor.writeUtilsToResponseStream(WSDLToJavaScriptProcessor.class, outputStream);
}
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, UTF_8);
try (BufferedWriter writer = new BufferedWriter(outputStreamWriter)) {
XmlSchemaCollection collection = serviceInfo.getXmlSchemaCollection().getXmlSchemaCollection();
SchemaJavascriptBuilder jsBuilder = new SchemaJavascriptBuilder(serviceInfo.getXmlSchemaCollection(), prefixManager, nameManager);
String jsForSchemas = jsBuilder.generateCodeForSchemaCollection(collection);
writer.append(jsForSchemas);
ServiceJavascriptBuilder serviceBuilder = new ServiceJavascriptBuilder(serviceInfo, null, prefixManager, nameManager);
serviceBuilder.walk();
String serviceJavascript = serviceBuilder.getCode();
writer.append(serviceJavascript);
}
} catch (IOException e) {
throw new ToolException(e);
}
}
use of org.apache.cxf.javascript.types.SchemaJavascriptBuilder in project cxf by apache.
the class GenericAegisTest method testGenerateJavascript.
// the claim is that code generation makes this go boom.
@Test
public void testGenerateJavascript() throws Exception {
// Create our service implementation
GenericGenericClass<String> impl = new GenericGenericClass<>();
// Create our Server
ServerFactoryBean svrFactory = new ServerFactoryBean();
// we sure can't get a .class for the interface, can we?
svrFactory.setServiceClass(impl.getClass());
svrFactory.setAddress("http://localhost:" + PORT + "/aegisgeneric");
svrFactory.setServiceBean(impl);
Server server = svrFactory.create();
ServiceInfo serviceInfo = ((EndpointImpl) server.getEndpoint()).getEndpointInfo().getService();
Collection<SchemaInfo> schemata = serviceInfo.getSchemas();
BasicNameManager nameManager = BasicNameManager.newNameManager(serviceInfo);
NamespacePrefixAccumulator prefixManager = new NamespacePrefixAccumulator(serviceInfo.getXmlSchemaCollection());
for (SchemaInfo schema : schemata) {
SchemaJavascriptBuilder builder = new SchemaJavascriptBuilder(serviceInfo.getXmlSchemaCollection(), prefixManager, nameManager);
String allThatJavascript = builder.generateCodeForSchema(schema.getSchema());
assertNotNull(allThatJavascript);
}
ServiceJavascriptBuilder serviceBuilder = new ServiceJavascriptBuilder(serviceInfo, null, prefixManager, nameManager);
serviceBuilder.walk();
String serviceJavascript = serviceBuilder.getCode();
assertNotNull(serviceJavascript);
}
use of org.apache.cxf.javascript.types.SchemaJavascriptBuilder in project cxf by apache.
the class JavaToJSProcessor method process.
public void process() throws ToolException {
String oldClassPath = System.getProperty(JAVA_CLASS_PATH);
LOG.log(Level.INFO, "OLD_CP", oldClassPath);
if (context.get(ToolConstants.CFG_CLASSPATH) != null) {
String newCp = (String) context.get(ToolConstants.CFG_CLASSPATH);
System.setProperty(JAVA_CLASS_PATH, newCp + File.pathSeparator + oldClassPath);
LOG.log(Level.INFO, "NEW_CP", newCp);
}
// check for command line specification of data binding.
ServiceBuilder builder = getServiceBuilder();
ServiceInfo serviceInfo = builder.createService();
File jsFile = getOutputFile(builder.getOutputFile(), serviceInfo.getName().getLocalPart() + ".js");
BasicNameManager nameManager = BasicNameManager.newNameManager(serviceInfo, null);
NamespacePrefixAccumulator prefixManager = new NamespacePrefixAccumulator(serviceInfo.getXmlSchemaCollection());
Collection<SchemaInfo> schemata = serviceInfo.getSchemas();
try {
OutputStream outputStream = Files.newOutputStream(jsFile.toPath());
if (null != context.get(ToolConstants.CFG_JAVASCRIPT_UTILS)) {
JavascriptGetInterceptor.writeUtilsToResponseStream(JavaToJSProcessor.class, outputStream);
}
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, UTF_8);
try (BufferedWriter writer = new BufferedWriter(outputStreamWriter)) {
for (SchemaInfo schema : schemata) {
SchemaJavascriptBuilder jsBuilder = new SchemaJavascriptBuilder(serviceInfo.getXmlSchemaCollection(), prefixManager, nameManager);
String allThatJavascript = jsBuilder.generateCodeForSchema(schema.getSchema());
writer.append(allThatJavascript);
}
ServiceJavascriptBuilder serviceBuilder = new ServiceJavascriptBuilder(serviceInfo, null, prefixManager, nameManager);
serviceBuilder.walk();
String serviceJavascript = serviceBuilder.getCode();
writer.append(serviceJavascript);
}
} catch (IOException e) {
throw new ToolException(e);
}
System.setProperty(JAVA_CLASS_PATH, oldClassPath);
LOG.log(Level.INFO, "RESUME_CP", oldClassPath);
}
Aggregations