package org.fastcatsearch.plugin; import java.io.StringReader; import java.io.StringWriter; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import org.junit.Test; public class PluginSettingTest { @Test public void testProperty() throws JAXBException { DefaultPluginSetting setting = new DefaultPluginSetting(); JAXBContext jc = JAXBContext.newInstance(DefaultPluginSetting.class); StringWriter writer = new StringWriter(); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(setting, writer); System.out.println(writer.toString()); } @Test public void testReadAndWrite() throws JAXBException { String xml = "<plugin id=\"Product\" namespace=\"Analysis\" class=\"com.fastcatsearch.ir.analysis.product.ProductAnalyzerPlugin\">\n" + " <properties>\n" + " <property key=\"synonym.dict.path\">dict/synonym.dict</property>\n" + " <property key=\"user.dict.path\">dict/user.dict</property>\n" + " <property key=\"stop.dict.path\">dict/stop.dict</property>\n" + " </properties>\n" + " \n" + " <web>\n" + " <user>\n" + " <menu ref=\"dictionary\" categoryLabel=\"상품명사전\"/>\n" + " <servlet path=\"/analyzer/dic/product\">com.fastcatsearch.ir.analysis.product.servlet.SynonymDictionaryServlet</servlet>\n" + " </user>\n" + " <admin>\n" + " <menu ref=\"analyzer\" categoryLabel=\"상품명분석기\"/>\n" + " <servlet></servlet>\n" + " </admin>\n" + " </web>\n" + " <analyzer-list>\n" + " <analyzer id=\"KoreanAnalyzer\" name=\"한국어분석기\">com.fastcatsearch.plugin.analysis.ko.standard.StandardKoreanAnalyzer</analyzer>\n" + " </analyzer-list>" + " \n" + " <db>\n" + " <dao-list>\n" + " <dao name=\"SynonymDictionary\">org.fastcatsearch.db.dao.SetDictionary</dao>\n" + " <dao name=\"UserDictionary\">org.fastcatsearch.db.dao.SetDictionary</dao>\n" + " <dao name=\"StopDictionary\">org.fastcatsearch.db.dao.SetDictionary</dao>\n" + " </dao-list>\n" + " </db>\n" + "</plugin>"; System.out.println(xml); JAXBContext jc = JAXBContext.newInstance(PluginSetting.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); PluginSetting setting = (PluginSetting) unmarshaller.unmarshal(new StringReader(xml)); System.out.println("getAnalyzerList >> "+setting.getActionList().size()); StringWriter writer = new StringWriter(); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(setting, writer); System.out.println(writer.toString()); } }