Package org.apache.axis2.rmi.databind

Source Code of org.apache.axis2.rmi.databind.ConfigObjectTest

/*
* 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();
        }

    }

}
TOP

Related Classes of org.apache.axis2.rmi.databind.ConfigObjectTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.