날짜별 글 목록: 2010년 3월 16일

이클립스에서 자바 소스 보기

이클립스에서 자바로 개발을 하다보면, 라이브러리나 API대상의 코드를 확인하기 위해서 F3 키를 눌려서 확인한다. 특히 자바 API 소스를 보기 위해서는 자바 소스를 간단하게 링크만 하면 된다. 아래의 이미지처럼, JRE System Library에서 rt.jar의 속성창에서 Java Source Attachment의 Location path에 src의 위치를 확인시켜 주면 소스가 잘 나온다.

Enterprise Integration Patterns

엔터프라이즈 환경에서 레거시 시스템들과의 통합이 이슈화 되는 시점에서 이것저것 찾아보니, 좋은 책이 있네요.

Enterprise Integration Patterns, Web Service, SOA, ESB등의 개념에 대한 비교도 http://www.enterpriseintegrationpatterns.com/eaipatterns.html 에 잘 설명이 되어 있네요.. 그리고, http://www.enterpriseintegrationpatterns.com/toc.html 에 각 패턴에 대한 간단한 기술이 되어 있어서 대충 감을 잡기에 좋네요..

이거 한번 읽어보니, 삽질의 세계로 다시 한번.. ^^

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>