/* * Copyright 2008-2010 biaoping.yin * * Licensed 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.frameworkset.soa; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.frameworkset.spi.SOAApplicationContext; import org.frameworkset.spi.SOAFileApplicationContext; import org.junit.Test; import com.frameworkset.util.ValueObjectUtil; /** * <p>Title: SOAApplicationContext.java</p> * <p>Description: </p> * <p>bboss workgroup</p> * <p>Copyright (c) 2008</p> * @Date 2011-5-9 下午06:12:52 * @author biaoping.yin * @version 1.0 */ public class SOAApplicationContextTest { @Test public void testBeanWithException() throws Exception { BeanWithException b = new BeanWithException(); b.setV1("1"); b.setV2("2"); b.setV3("3"); String xml = ObjectSerializable.toXML(b); b = ObjectSerializable.toBean(xml, BeanWithException.class); System.out.print(b); } @Test public void testXMLToBean() throws Exception { String content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<esb>"+ "<call>"+ "<!-- 调度中心需要的数据开始 -->"+ "<property name=\"soamethodcall\" " + "class=\"org.frameworkset.soa.SOAMethodCall\" "+ "f:requestor=\"requestor\" "+ "f:requestid=\"1000000\" "+ "f:password=\"requestpassword\" "+ "f:encypt=\"encrypt\" "+ "f:encyptalgorithem=\"algorithm\" "+ "f:serviceid=\"hilaryserviceid\" "+ "f:issynchronized=\"true\" >"+ "<!-- 调度中心需要的数据结束 -->"+ "<!-- 调度中心提交给服务提供方的服务方法信息 -->"+ "<property name=\"soamethodinfo\" class=\"org.frameworkset.soa.SOAMethodInfo\" " + "f:methodName=\"methodname\">"+ "<property name=\"paramTypes\">"+ "<array componentType=\"Class\">"+ "<property >String</property>"+ "<property >String</property>"+ "<property >String[]</property>"+ "</array>"+ "</property>" + "<property name=\"params\">"+ "<array componentType=\"object\">"+ "<property name=\"condition\">1=1</property>"+ "<property name=\"orderby\">order by ${A}</property>"+ "<property>"+ " <array componentType=\"String\">"+ "<property>A</property>"+ "<property>B</property>"+ "</array>"+ "</property>"+ "</array>"+ "</property>" + "</property>" + "</property>"+ "</call>"+ "</esb>"; SOAApplicationContext context = new SOAApplicationContext(content); SOAMethodCall object = context.getTBeanObject("soamethodcall",SOAMethodCall.class); System.out.println(object); String xmlcontent = ObjectSerializable.toXML(object, ObjectSerializable.CHARSET_UTF_8); System.out.println(xmlcontent); context = new SOAApplicationContext(xmlcontent,false); context.setSerial(true); context.init(); object = context.getTBeanObject("_dflt_",SOAMethodCall.class); System.out.println(object); object = ObjectSerializable.toBean( xmlcontent,SOAMethodCall.class); System.out.println(object); } @Test public void commonToxml() { SOAFileApplicationContext context = new SOAFileApplicationContext("org/frameworkset/soa/datasource-sql.xml"); System.out.println(context); } @Test public void bytearraybeantoxml() throws Exception { ArrayBean bean = new ArrayBean(); Exception e = new Exception("异常发生。"); bean.setE(e); String content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<esb>"+ "<call>"+ "<!-- 调度中心需要的数据开始 -->"+ "<property name=\"soamethodcall\" " + "class=\"org.frameworkset.soa.SOAMethodCall\" "+ "f:requestor=\"requestor\" "+ "f:requestid=\"1000000\" "+ "f:password=\"requestpassword\" "+ "f:encypt=\"encrypt\" "+ "f:encyptalgorithem=\"algorithm\" "+ "f:serviceid=\"hilaryserviceid\" "+ "f:issynchronized=\"true\" >"+ "<!-- 调度中心需要的数据结束 -->"+ "<!-- 调度中心提交给服务提供方的服务方法信息 -->"+ "<property name=\"soamethodinfo\" class=\"org.frameworkset.soa.SOAMethodInfo\" " + "f:methodName=\"methodname\">"+ "<property name=\"paramTypes\">"+ "<array componentType=\"Class\">"+ "<property >String</property>"+ "<property >String</property>"+ "<property >String[]</property>"+ "</array>"+ "</property>" + "<property name=\"params\">"+ "<array componentType=\"object\">"+ "<property name=\"condition\">1=1</property>"+ "<property name=\"orderby\">order by ${A}</property>"+ "<property>"+ " <array componentType=\"String\">"+ "<property>A</property>"+ "<property>B</property>"+ "</array>"+ "</property>"+ "</array>"+ "</property>" + "</property>" + "</property>"+ "</call>"+ "</esb>"; bean.setArrays(content.getBytes() ); String xmlcontent = ObjectSerializable.toXML( bean ); System.out.println(xmlcontent); ArrayBean bean1 = ObjectSerializable.toBean( xmlcontent,ArrayBean.class); System.out.println(new String(bean1.getArrays())); bean1.getE().printStackTrace(); } @Test public void filebeantoxml() throws Exception { FileBean bean = new FileBean(); bean.setFile(ValueObjectUtil.getClassPathFile("org/frameworkset/soa/datasource-sql.xml")); String xmlcontent = ObjectSerializable.toXML(bean); System.out.println(xmlcontent); FileBean bean1 = ObjectSerializable.toBean( xmlcontent,FileBean.class); // System.out.println(ValueObjectUtil.getFileContent(bean1.getFile(),"UTF-8")); } @Test public void beanstoxml() throws Exception { FileBean fbean = new FileBean(); fbean.setFile(ValueObjectUtil.getClassPathFile("org/frameworkset/soa/datasource-sql.xml")); ArrayBean bean = new ArrayBean(); String content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<esb>"+ "<call>"+ "<!-- 调度中心需要的数据开始 -->"+ "<property name=\"soamethodcall\" " + "class=\"org.frameworkset.soa.SOAMethodCall\" "+ "f:requestor=\"requestor\" "+ "f:requestid=\"1000000\" "+ "f:password=\"requestpassword\" "+ "f:encypt=\"encrypt\" "+ "f:encyptalgorithem=\"algorithm\" "+ "f:serviceid=\"hilaryserviceid\" "+ "f:issynchronized=\"true\" >"+ "<!-- 调度中心需要的数据结束 -->"+ "<!-- 调度中心提交给服务提供方的服务方法信息 -->"+ "<property name=\"soamethodinfo\" class=\"org.frameworkset.soa.SOAMethodInfo\" " + "f:methodName=\"methodname\">"+ "<property name=\"paramTypes\">"+ "<array componentType=\"Class\">"+ "<property >String</property>"+ "<property >String</property>"+ "<property >String[]</property>"+ "</array>"+ "</property>" + "<property name=\"params\">"+ "<array componentType=\"object\">"+ "<property name=\"condition\">1=1</property>"+ "<property name=\"orderby\">order by ${A}</property>"+ "<property>"+ " <array componentType=\"String\">"+ "<property>A</property>"+ "<property>B</property>"+ "</array>"+ "</property>"+ "</array>"+ "</property>" + "</property>" + "</property>"+ "</call>"+ "</esb>"; bean.setArrays(content.getBytes() ); List beans = new ArrayList(); beans.add(fbean); beans.add(bean); String xmlcontent = ObjectSerializable.toXML(beans); System.out.println(xmlcontent); List copybeans = ObjectSerializable.toBean(xmlcontent, List.class); System.out.println(copybeans.size()); } @org.junit.Test public void testMap() throws Exception { Map mapdata = new HashMap(); mapdata.put("data", "datavalue"); String xmlcontent = ObjectSerializable.toXML(mapdata); System.out.println(xmlcontent); Map copybeans = ObjectSerializable.toBean( xmlcontent, Map.class); System.out.println(copybeans.size()); } public static void main(String[] args) { System.out.println("Test:"); double d = Double.parseDouble("2.2250738585072012e-308"); System.out.println("Value: " + d); } @org.junit.Test public void testSerialPlugin() { try { java.util.Locale locale = java.util.Locale.CHINESE; String xml = ObjectSerializable.toXML(locale); locale = ObjectSerializable.toBean(xml, java.util.Locale.class); System.out.println(locale); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @org.junit.Test public void testMagicNumber() { try { java.util.Locale locale = java.util.Locale.CHINESE; String xml = ObjectSerializable.toXML(locale); locale = ObjectSerializable.toBean(xml, java.util.Locale.class); System.out.println(locale); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Test public void date() throws Exception { DateBean d = new DateBean(); d.setDate(new java.sql.Date(System.currentTimeMillis())); String xml = ObjectSerializable.toXML(d); d = ObjectSerializable.toBean(xml, DateBean.class); System.out.println(d); } }