낭중에 아래의 형태로 추가를 해야겠습니다.

public boolean write(ArrayList<ConfigValue> list) throws Exception {
                
        for(int i=0; i < list.size(); i++) {
            System.out.println(list.get(i).getService() +" - "+ list.get(i).getKey()+" - "+ list.get(i).getValues().toString());
        }
       
        String fileName = "config-test.xml";
        String empty ="    ";        
       
        try {       
            XMLOutputFactory xmlFactory = XMLOutputFactory.newInstance();
            XMLStreamWriter writer = xmlFactory.createXMLStreamWriter(new java.io.FileWriter(fileName));
       
            writer.writeStartDocument("1.0");
            writer.writeCharacters(System.getProperty("line.separator"));
            writer.writeStartElement("sjava-config");
            writer.writeCharacters(System.getProperty("line.separator"));
           
           
            String serviceName = list.get(0).getService();
           
            ArrayList<String> serviceList = new ArrayList<String>();
            serviceList.add(serviceName);
           
            for(int i=0; i < list.size(); i++) {
                if(!serviceName.equals(list.get(i).getService()) ) {
                    serviceName = list.get(i).getService();
                    serviceList.add(serviceName);
                }
            }
           
            for(int i=0; i < serviceList.size(); i++) {
                writer.writeCharacters(empty);
                writer.writeStartElement("sjava-service");
                writer.writeAttribute("name", serviceList.get(i));
                writer.writeCharacters(System.getProperty("line.separator"));
               
               
                for(int j=0; j < list.size(); j++) {
                    if(serviceList.get(i).equals(list.get(j).getService()) ) {
                        serviceName = list.get(j).getService();
                       
                        writer.writeCharacters(empty + empty);
                        writer.writeStartElement("key");
                        writer.writeAttribute("name", list.get(j).getKey());
                       
                        String tmpValue = "";
                        for(int z =0; z < list.get(j).getValues().length; z++) {
                            tmpValue += list.get(j).getValues()[z];
                            if(z != list.get(j).getValues().length-1)
                                tmpValue +=",";
                        }
                           
                        writer.writeAttribute("value", tmpValue);
                        writer.writeEndElement();
                        writer.writeCharacters(System.getProperty("line.separator"));
                    }
                }
                writer.writeCharacters(empty);
                writer.writeEndElement();
                writer.writeCharacters(System.getProperty("line.separator"));
            }
           
            writer.writeEndElement();
            writer.flush();
            writer.close();
           
        } catch(Exception e) {
            e.printStackTrace();
        }
       
        return true;
    }

위 코드로 아래의 결과를 만들어 낼 수 있다.
<?xml version="1.0"?>
<sjava-config>
    <sjava-service name="sjava-config">
        <key name="watch" value="false"></key>
        <key name="period" value="60"></key>
    </sjava-service>
    <sjava-service name="sjava-logging-server">
        <key name="host" value="111.111.111.111,222.222.222.222"></key>
        <key name="port" value="20003"></key>
    </sjava-service>
</sjava-config>

Tag // java, sjava-config
sjava-config, sjava-logging 라이브러리가 1.4버전으로 업데이트 되었습니다.
sjava-config(1.4) : http://sjava-config.googlecode.com/files/sjava-config-1.4.zip
sjava-logging(1.4) : http://sjava-logging.googlecode.com/files/sjava-logging-1.4.zip


구글 프로젝트 호스팅의 도움을 받아서 코드 및 문서를 이동합니다.
기본적인 문서는 아래의 위치를 참고하세요..
http://code.google.com/p/sjava-config/wiki/
http://code.google.com/p/sjava-config/wiki/Introduce

그리고, 소스는 아래의 위치를 참고하세요.
http://code.google.com/p/sjava-config/source/checkout
http://code.google.com/p/sjava-config/source/browse/
http://code.google.com/p/sjava-config/source/list

다시한번, 구글이 좋아지네요.. ^^


sjava-config 1.3

from sjava project 2009/10/23 17:30
ConfigHandler의 생성자 부분에 대한 변경이 있었습니다.
그리고, getValue의 조건체크를 Specification Pattern을 통해서 적용하였습니다.
사용법은 http://www.sjava.net/121를 참고하시면 됩니다.

바이너리 & 소스



sjava-config 1.2

from sjava project 2009/07/08 17:10
테스트 코드의 변경이 있습니다.
기존코드에 영향이 없기 때문에 버전차이는 의미가 없을듯 합니다.
사용법은 http://www.sjava.net/121를 참고하시면 됩니다.

바이너리 & 소스


'sjava project' 카테고리의 다른 글

sjava-logging 1.0 Level  (0) 2009/07/13
sjava-logging 1.0  (0) 2009/07/09
sjava-config 1.2  (0) 2009/07/08
sjava-config 1.1  (0) 2009/07/03
sjava-config 1.0  (0) 2009/06/30

sjava-config 1.1

from sjava project 2009/07/03 14:17
config 파일을 모니터링하는 부분의 코드가 변경이 되었습니다.
기존의 net.sjava.config.util.Watcher 클래스를 Timer를 이용하는 TimerTask로 변경을 하였습니다.
사용법은 http://www.sjava.net/121를 참고하시면 됩니다.

바이너리

'sjava project' 카테고리의 다른 글

sjava-logging 1.0 Level  (0) 2009/07/13
sjava-logging 1.0  (0) 2009/07/09
sjava-config 1.2  (0) 2009/07/08
sjava-config 1.1  (0) 2009/07/03
sjava-config 1.0  (0) 2009/06/30