// Path: src/com/jfinal/weixin/sdk/api/ApiConfigKit.java
// public class ApiConfigKit {
// 	
// 	private static final ThreadLocal<ApiConfig> tl = new ThreadLocal<ApiConfig>();
// 	
// 	// 开发模式将输出消息交互 xml 到控制台
// 	private static boolean devMode = false;
// 	
// 	public static void setDevMode(boolean devMode) {
// 		ApiConfigKit.devMode = devMode;
// 	}
// 	
// 	public static boolean isDevMode() {
// 		return devMode;
// 	}
// 	
// 	public static void setThreadLocalApiConfig(ApiConfig apiConfig) {
// 		tl.set(apiConfig);
// 	}
// 	
// 	public static void removeThreadLocalApiConfig() {
// 		tl.remove();
// 	}
// 	
// 	public static ApiConfig getApiConfig() {
// 		ApiConfig result = tl.get();
// 		if (result == null)
// 			throw new IllegalStateException("需要事先使用 ApiConfigKit.setThreadLocalApiConfig(apiConfig) 将 ApiConfig对象存入，才可以调用 ApiConfigKit.getApiConfig() 方法");
// 		return result;
// 	}
// 	
// 	static IAccessTokenCache accessTokenCache = new DefaultAccessTokenCache();
// 	
// 	public static void setAccessTokenCache(IAccessTokenCache accessTokenCache) {
// 		ApiConfigKit.accessTokenCache = accessTokenCache;
// 	}
// 	
// 	public static IAccessTokenCache getAccessTokenCache() {
// 		return ApiConfigKit.accessTokenCache;
// 	}
// }


import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.core.JFinal;
import com.jfinal.kit.PropKit;
import com.jfinal.weixin.sdk.api.ApiConfigKit;
/**
 * Copyright (c) 2011-2014, James Zhan 詹波 (jfinal@126.com).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */

package com.jfinal.weixin.demo;


public class WeixinConfig extends JFinalConfig {
	
	/**
	 * 如果生产环境配置文件存在，则优先加载该配置，否则加载开发环境配置文件
	 * @param pro 生产环境配置文件
	 * @param dev 开发环境配置文件
	 */
	public void loadProp(String pro, String dev) {
		try {
			PropKit.use(pro);
		}
		catch (Exception e) {
			PropKit.use(dev);
		}
	}
	
	public void configConstant(Constants me) {
		loadProp("a_little_config_pro.txt", "a_little_config.txt");
		me.setDevMode(PropKit.getBoolean("devMode", false));
		
		// ApiConfigKit 设为开发模式可以在开发阶段输出请求交互的 xml 与 json 数据
// Path: src/com/jfinal/weixin/sdk/api/ApiConfigKit.java
// public class ApiConfigKit {
// 	
// 	private static final ThreadLocal<ApiConfig> tl = new ThreadLocal<ApiConfig>();
// 	
// 	// 开发模式将输出消息交互 xml 到控制台
// 	private static boolean devMode = false;
// 	
// 	public static void setDevMode(boolean devMode) {
// 		ApiConfigKit.devMode = devMode;
// 	}
// 	
// 	public static boolean isDevMode() {
// 		return devMode;
// 	}
// 	
// 	public static void setThreadLocalApiConfig(ApiConfig apiConfig) {
// 		tl.set(apiConfig);
// 	}
// 	
// 	public static void removeThreadLocalApiConfig() {
// 		tl.remove();
// 	}
// 	
// 	public static ApiConfig getApiConfig() {
// 		ApiConfig result = tl.get();
// 		if (result == null)
// 			throw new IllegalStateException("需要事先使用 ApiConfigKit.setThreadLocalApiConfig(apiConfig) 将 ApiConfig对象存入，才可以调用 ApiConfigKit.getApiConfig() 方法");
// 		return result;
// 	}
// 	
// 	static IAccessTokenCache accessTokenCache = new DefaultAccessTokenCache();
// 	
// 	public static void setAccessTokenCache(IAccessTokenCache accessTokenCache) {
// 		ApiConfigKit.accessTokenCache = accessTokenCache;
// 	}
// 	
// 	public static IAccessTokenCache getAccessTokenCache() {
// 		return ApiConfigKit.accessTokenCache;
// 	}
// }


// Path: src/com/jfinal/weixin/demo/WeixinConfig.java
import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.core.JFinal;
import com.jfinal.kit.PropKit;
import com.jfinal.weixin.sdk.api.ApiConfigKit;

/**
 * Copyright (c) 2011-2014, James Zhan 詹波 (jfinal@126.com).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 */

package com.jfinal.weixin.demo;


public class WeixinConfig extends JFinalConfig {
	
	/**
	 * 如果生产环境配置文件存在，则优先加载该配置，否则加载开发环境配置文件
	 * @param pro 生产环境配置文件
	 * @param dev 开发环境配置文件
	 */
	public void loadProp(String pro, String dev) {
		try {
			PropKit.use(pro);
		}
		catch (Exception e) {
			PropKit.use(dev);
		}
	}
	
	public void configConstant(Constants me) {
		loadProp("a_little_config_pro.txt", "a_little_config.txt");
		me.setDevMode(PropKit.getBoolean("devMode", false));
		
		// ApiConfigKit 设为开发模式可以在开发阶段输出请求交互的 xml 与 json 数据
		ApiConfigKit.setDevMode(me.getDevMode());