// Path: elastic-config-console/src/main/java/com/github/config/business/INodeBusiness.java
// public interface INodeBusiness {
// 
//     /**
//      * 查询配置项
//      * 
//      * @param rootNode 根结点
//      * @param version 版本
//      * @param group 组
//      * @return
//      */
//     List<PropertyItemVO> findPropertyItems(String rootNode, String version, String group);
// 
// }
// 
// Path: elastic-config-console/src/main/java/com/github/config/service/INodeService.java
// public interface INodeService {
// 
//     List<PropertyItem> findProperties(String node);
// 
//     List<String> listChildren(String node);
// 
//     boolean createProperty(String nodeName, String value);
// 
//     boolean updateProperty(String nodeName, String value);
// 
//     void deleteProperty(String nodeName);
// }
// 
// Path: elastic-config-console/src/main/java/com/github/config/service/entity/PropertyItemVO.java
// public class PropertyItemVO implements Serializable, Comparable<PropertyItemVO> {
// 
//     /**
// 	 * 
// 	 */
//     private static final long serialVersionUID = 1L;
// 
//     private String oriName;
// 
//     private String name;
// 
//     private String value;
// 
//     private String comment;
// 
//     public PropertyItemVO() {
//         super();
//     }
// 
//     public PropertyItemVO(PropertyItem propertyItem) {
//         super();
//         this.name = propertyItem.getName();
//         this.oriName = propertyItem.getName();
//         this.value = propertyItem.getValue();
//     }
// 
//     public PropertyItemVO(String name, String value) {
//         super();
//         this.name = name;
//         this.value = value;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getValue() {
//         return value;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public void setValue(String value) {
//         this.value = value;
//     }
// 
//     public String getOriName() {
//         return oriName;
//     }
// 
//     public void setOriName(String oriName) {
//         this.oriName = oriName;
//     }
// 
//     public String getComment() {
//         return comment;
//     }
// 
//     public void setComment(String comment) {
//         this.comment = comment;
//     }
// 
//     @Override
//     public String toString() {
//         return "PropertyItemVO [oriName=" + oriName + ", name=" + name + ", value=" + value + ", comment=" + comment
//             + "]";
//     }
// 
//     /*
//      * (non-Javadoc)
//      * @see java.lang.Comparable#compareTo(java.lang.Object)
//      */
//     @Override
//     public int compareTo(PropertyItemVO o) {
//         return this.name.compareTo(o.getName());
//     }
// 
// }


import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import org.apache.commons.io.IOUtils;
import org.apache.curator.utils.ZKPaths;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.config.business.INodeBusiness;
import com.github.config.service.INodeService;
import com.github.config.service.entity.PropertyItemVO;
import com.google.common.base.Charsets;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
package com.github.config.service.web.mb;





@ManagedBean(name = "propertyExportMB")
@RequestScoped
public class PropertyExportManagedBean {

    @ManagedProperty(value = "#{nodeService}")
    private INodeService nodeService;

    public void setNodeService(INodeService nodeService) {
        this.nodeService = nodeService;
    }

    @ManagedProperty(value = "#{nodeBusiness}")
// Path: elastic-config-console/src/main/java/com/github/config/business/INodeBusiness.java
// public interface INodeBusiness {
// 
//     /**
//      * 查询配置项
//      * 
//      * @param rootNode 根结点
//      * @param version 版本
//      * @param group 组
//      * @return
//      */
//     List<PropertyItemVO> findPropertyItems(String rootNode, String version, String group);
// 
// }
// 
// Path: elastic-config-console/src/main/java/com/github/config/service/INodeService.java
// public interface INodeService {
// 
//     List<PropertyItem> findProperties(String node);
// 
//     List<String> listChildren(String node);
// 
//     boolean createProperty(String nodeName, String value);
// 
//     boolean updateProperty(String nodeName, String value);
// 
//     void deleteProperty(String nodeName);
// }
// 
// Path: elastic-config-console/src/main/java/com/github/config/service/entity/PropertyItemVO.java
// public class PropertyItemVO implements Serializable, Comparable<PropertyItemVO> {
// 
//     /**
// 	 * 
// 	 */
//     private static final long serialVersionUID = 1L;
// 
//     private String oriName;
// 
//     private String name;
// 
//     private String value;
// 
//     private String comment;
// 
//     public PropertyItemVO() {
//         super();
//     }
// 
//     public PropertyItemVO(PropertyItem propertyItem) {
//         super();
//         this.name = propertyItem.getName();
//         this.oriName = propertyItem.getName();
//         this.value = propertyItem.getValue();
//     }
// 
//     public PropertyItemVO(String name, String value) {
//         super();
//         this.name = name;
//         this.value = value;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String getValue() {
//         return value;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public void setValue(String value) {
//         this.value = value;
//     }
// 
//     public String getOriName() {
//         return oriName;
//     }
// 
//     public void setOriName(String oriName) {
//         this.oriName = oriName;
//     }
// 
//     public String getComment() {
//         return comment;
//     }
// 
//     public void setComment(String comment) {
//         this.comment = comment;
//     }
// 
//     @Override
//     public String toString() {
//         return "PropertyItemVO [oriName=" + oriName + ", name=" + name + ", value=" + value + ", comment=" + comment
//             + "]";
//     }
// 
//     /*
//      * (non-Javadoc)
//      * @see java.lang.Comparable#compareTo(java.lang.Object)
//      */
//     @Override
//     public int compareTo(PropertyItemVO o) {
//         return this.name.compareTo(o.getName());
//     }
// 
// }


// Path: elastic-config-console/src/main/java/com/github/config/service/web/mb/PropertyExportManagedBean.java
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import org.apache.commons.io.IOUtils;
import org.apache.curator.utils.ZKPaths;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.config.business.INodeBusiness;
import com.github.config.service.INodeService;
import com.github.config.service.entity.PropertyItemVO;
import com.google.common.base.Charsets;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;

package com.github.config.service.web.mb;





@ManagedBean(name = "propertyExportMB")
@RequestScoped
public class PropertyExportManagedBean {

    @ManagedProperty(value = "#{nodeService}")
    private INodeService nodeService;

    public void setNodeService(INodeService nodeService) {
        this.nodeService = nodeService;
    }

    @ManagedProperty(value = "#{nodeBusiness}")
    private INodeBusiness nodeBusiness;