카테고리 보관물: My Project

sjava-config xml configuration 파일저장 코드

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

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>

sjava-config, sjava-logging 라이브러리를 1.4 버전으로 release 했습니다.

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

sjava-logging 프로젝트의 소스 및 문서 위치 변경합니다.

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

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

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

sjava-config 프로젝트의 소스 및 문서 위치 변경합니다.

구글 프로젝트 호스팅의 도움을 받아서 코드 및 문서를 이동합니다.
기본적인 문서는 아래의 위치를 참고하세요..
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

ConfigHandler 클래스의 생성자를 수정했습니다.
그리고, getValue에서 조건에 부합하는지에 대한 여부를 Specification Pattern을 사용했습니다. 사용법은 사용 가이드를 참고하세요.

바이너리 & 소스
cfile24.uf.177A531C4AE1696462D727.zipcfile5.uf.1859711C4AE169658DB286.zip