Package com.baidu.disconf.client.common.model

Examples of com.baidu.disconf.client.common.model.DisconfCenterFile


     * @param fileName
     * @return
     */
    public String getFileZooPath(String fileName) {

        DisconfCenterFile disconfCenterFile = disconfCenterStore
                .getConfFileMap().get(fileName);

        // 校验是否存在
        if (disconfCenterFile == null) {
            LOGGER.error("canot find " + fileName + " in store....");
            return null;
        }

        return disconfCenterFile.getDisConfCommonModel().getZookeeperUrl();
    }
View Full Code Here


     * @return
     */
    private static DisconfCenterFile transformScanFile(
            Class<?> disconfFileClass, Set<Method> methods) {

        DisconfCenterFile disconfCenterFile = new DisconfCenterFile();

        //
        // class
        disconfCenterFile.setCls(disconfFileClass);

        DisconfFile disconfFileAnnotation = disconfFileClass
                .getAnnotation(DisconfFile.class);

        //
        // file name
        disconfCenterFile.setFileName(disconfFileAnnotation.filename());

        //
        // disConfCommonModel
        DisConfCommonModel disConfCommonModel = makeDisConfCommonModel(
                disconfFileAnnotation.env(), disconfFileAnnotation.version(),
                ZooPathMgr.joinPath(WatchMgr.getInstance()
                        .getClientDisconfFileZooPath(), disconfFileAnnotation
                        .filename()));
        disconfCenterFile.setDisConfCommonModel(disConfCommonModel);

        // Remote URL
        String url = DisconfWebPathMgr.getRemoteUrlParameter(
                DisClientSysConfig.getInstance().CONF_SERVER_STORE_ACTION,
                disConfCommonModel.getApp(), disConfCommonModel.getVersion(),
                disConfCommonModel.getEnv(), disconfCenterFile.getFileName(),
                DisConfigTypeEnum.FILE);
        disconfCenterFile.setRemoteServerUrl(url);

        // fields
        Field[] expectedFields = disconfFileClass.getDeclaredFields();

        //
        // KEY & VALUE
        //
        Map<String, FileItemValue> keyMaps = new HashMap<String, FileItemValue>();

        for (Method method : methods) {

            // 获取指定的域
            Field field = ScanVerify.getFieldFromMethod(method, expectedFields,
                    DisConfigTypeEnum.FILE);
            if (field == null) {
                continue;
            }

            //
            DisconfFileItem disconfFileItem = method
                    .getAnnotation(DisconfFileItem.class);
            String keyName = disconfFileItem.name();

            // access
            field.setAccessible(true);

            // static 则直接获取其值
            if (Modifier.isStatic(field.getModifiers())) {
                try {

                    FileItemValue fileItemValue = new FileItemValue(
                            field.get(null), field);
                    keyMaps.put(keyName, fileItemValue);

                } catch (Exception e) {
                    LOGGER.error(e.toString());
                }

            } else {

                // 非static则为Null, 这里我们没有必要获取其Bean的值
                FileItemValue fileItemValue = new FileItemValue(null, field);
                keyMaps.put(keyName, fileItemValue);
            }
        }

        // 设置
        disconfCenterFile.setKeyMaps(keyMaps);

        return disconfCenterFile;
    }
View Full Code Here

        for (Class<?> disconfFile : classSet) {

            Set<Method> methods = scanModel.getDisconfFileItemMap().get(
                    disconfFile);

            DisconfCenterFile disconfCenterFile = transformScanFile(
                    disconfFile, methods);

            disconfCenterFiles.add(disconfCenterFile);
        }
View Full Code Here

        for (String key : confFileMap.keySet()) {

            LOGGER.info("==============\tstart to inject value to disconf file item instance: "
                    + key + "\t=============================");

            DisconfCenterFile disconfCenterFile = confFileMap.get(key);

            Map<String, FileItemValue> fileItemValueMap = disconfCenterFile
                    .getKeyMaps();

            for (String itemKey : fileItemValueMap.keySet()) {

                try {

                    FileItemValue fileItemValue = fileItemValueMap.get(itemKey);

                    // 设置Object实体(只注入一次哦)
                    Object object = disconfCenterFile.getObject();
                    if (object == null) {
                        object = getSpringBean(fileItemValue.getField()
                                .getDeclaringClass());
                        disconfCenterFile.setObject(object);
                    }

                    // 注入实体中
                    if (object != null) {
                        DisconfStoreMgr.getInstance().injectFileItem2Instance(
View Full Code Here

TOP

Related Classes of com.baidu.disconf.client.common.model.DisconfCenterFile

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.