blob: 6b9370080265c56f46b76f7a6aef5e9eb8a1cb6f [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.axis2.rmi.databind;
import org.apache.axiom.om.util.StAXUtils;
import org.apache.axis2.rmi.deploy.config.ClassInfo;
import org.apache.axis2.rmi.deploy.config.Config;
import org.apache.axis2.rmi.deploy.config.CustomClassInfo;
import org.apache.axis2.rmi.deploy.config.ExtensionClasses;
import org.apache.axis2.rmi.deploy.config.FieldInfo;
import org.apache.axis2.rmi.deploy.config.PackageToNamespaceMap;
import org.apache.axis2.rmi.deploy.config.PackageToNamespaceMapings;
import org.apache.axis2.rmi.deploy.config.Service;
import org.apache.axis2.rmi.deploy.config.Services;
import org.apache.axis2.rmi.exception.MetaDataPopulateException;
import org.apache.axis2.rmi.exception.SchemaGenerationException;
import org.apache.axis2.rmi.exception.XmlParsingException;
import org.apache.axis2.rmi.exception.XmlSerializingException;
import org.apache.axis2.rmi.metadata.Parameter;
import org.apache.axis2.rmi.util.NamespacePrefix;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import java.io.ByteArrayInputStream;
import java.io.StringWriter;
public class ConfigObjectTest extends DataBindTest {
public void testConfigObject() {
Config config = new Config();
// adding ustom mappings
org.apache.axis2.rmi.config.ClassInfo classInfo = new org.apache.axis2.rmi.config.ClassInfo(FieldInfo.class);
classInfo.addFieldInfo(new org.apache.axis2.rmi.config.FieldInfo("javaName",null,false));
classInfo.addFieldInfo(new org.apache.axis2.rmi.config.FieldInfo("xmlName",null,false));
classInfo.addFieldInfo(new org.apache.axis2.rmi.config.FieldInfo("element","isElement",false));
configurator.addClassInfo(classInfo);
classInfo = new org.apache.axis2.rmi.config.ClassInfo(ClassInfo.class);
classInfo.addFieldInfo(new org.apache.axis2.rmi.config.FieldInfo("className",null,false));
configurator.addClassInfo(classInfo);
Service[] services = new Service[2];
services[0] = new Service();
services[0].setServiceClass("Service1");
services[1] = new Service();
services[1].setServiceClass("Service2");
Services testServices = new Services();
testServices.setService(services);
config.setServices(testServices);
ExtensionClasses extensionClasses = new ExtensionClasses();
extensionClasses.setExtensionClass(new String[]{"extension1", "extension2"});
config.setExtensionClasses(extensionClasses);
PackageToNamespaceMapings packageToNamespaceMapings = new PackageToNamespaceMapings();
PackageToNamespaceMap[] packageToNamespaceMaps = new PackageToNamespaceMap[2];
packageToNamespaceMaps[0] = new PackageToNamespaceMap();
packageToNamespaceMaps[0].setNamespace("ns1");
packageToNamespaceMaps[0].setPackageName("package1");
packageToNamespaceMaps[1] = new PackageToNamespaceMap();
packageToNamespaceMaps[1].setNamespace("ns2");
packageToNamespaceMaps[1].setPackageName("package2");
packageToNamespaceMapings.setPackageToNamespaceMap(packageToNamespaceMaps);
config.setPackageToNamespaceMapings(packageToNamespaceMapings);
config.setSimpleDataHandlerClass("test");
//adding customclass info
CustomClassInfo customClassInfo = new CustomClassInfo();
ClassInfo[] classInfos = new ClassInfo[1];
classInfos[0] = new ClassInfo();
FieldInfo[] filedInfos = new FieldInfo[1];
filedInfos[0] = new FieldInfo();
filedInfos[0].setElement(false);
filedInfos[0].setJavaName("param1");
filedInfos[0].setXmlName("xmlParam1");
classInfos[0].setFieldInfo(filedInfos);
classInfos[0].setClassName("test");
customClassInfo.setClassInfo(classInfos);
config.setCustomClassInfo(customClassInfo);
Parameter parameter = new Parameter(Config.class, "config");
parameter.setNamespace("http://ws.apache.org/axis2/rmi");
try {
this.configurator.addPackageToNamespaceMaping("org.apache.axis2.rmi.deploy.config",
"http://ws.apache.org/axis2/rmi");
parameter.populateMetaData(configurator, processedMap);
parameter.generateSchema(configurator, schemaMap);
StringWriter configXmlWriter = new StringWriter();
XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(configXmlWriter);
JavaObjectSerializer javaObjectSerializer = new JavaObjectSerializer(this.processedMap, this.configurator, this.schemaMap);
javaObjectSerializer.serializeParameter(config, parameter, writer, new NamespacePrefix());
writer.flush();
String configXmlString = configXmlWriter.toString();
System.out.println("config ==> " + configXmlString);
XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(configXmlString.getBytes()));
XmlStreamParser xmlStreamParser = new XmlStreamParser(this.processedMap, this.configurator, this.schemaMap);
Config result = (Config) xmlStreamParser.getObjectForParameter(xmlReader, parameter);
System.out.println("OK");
} catch (XMLStreamException e) {
fail();
} catch (SchemaGenerationException e) {
fail();
} catch (MetaDataPopulateException e) {
fail();
} catch (XmlSerializingException e) {
fail();
} catch (XmlParsingException e) {
fail();
}
}
}