如何使用 PAX-CDI 访问 KARAF/etc 中的 cfg 文件
How to access cfg file in KARAF/etc using PAX-CDI
如何使用 PAX-CDI
在 KARAF/etc 中访问 cfg 文件
例如:
KARAF_HOME\etc\import.cfg
使用方法
@OsgiServiceProvider
您可以使用 DOSGI 来加载 属性 并将其放置在 Util 中,然后您可以访问 Pax-CDI 代码
DOSGI:
@Component(immediate = true, configurationPolicy = ConfigurationPolicy.REQUIRE, configurationPid = "ca.esc.pbm.frontend.security")
public class SecurityConfig{
public static final String TOKEN_SIG_SECRET = "signatureSecret";
@Activate
private void activate(BundleContext bundleContext, Map<String, ?> properties) throws Exception {
logger.info("Security Config Activated");
Properties props = new Properties();
if (properties.isEmpty()) {
throw new ComponentException("Config Properties is Empty ");
}
logger.info("Property loaded " + properties.size());
props.putAll(properties);
PropertiesUtil.setProperty(props);
System.out.println(properties);
}
}
属性实用程序
/**
* Property Util to load the *.properties form class path
*
* @version 1.0
*/
public class PropertiesUtil {
private static Map<String, String> propertiesMap;
/**
* Get the property value for the given key from the loaded property
*
* @param name
* @return String
*/
public static String getProperty(String name) {
return (String) propertiesMap.get(name);
}
/**
* Set the property value for the given key from the loaded property
*
* @param props
*/
public static void setProperty(Properties props) {
Map<String, String> propertiesMapLocal = new HashMap<String, String>();
for (Object key : props.keySet()) {
String keyStr = key.toString();
propertiesMapLocal.put(keyStr, props.getProperty(keyStr));
}
propertiesMap = propertiesMapLocal;
}
}
pax-cdi
@ApplicationScoped
@Named
public class DefaultApiImpl implements DefaultApi {
@Override
public Response login(String userAgent, String username, String password, UriInfo uriInfo) {
PropertiesUtil.getProperty(SecurityConfig.TOKEN_SIG_SECRET);
}
cfg文件
你可以 karaf_home/etc/ca.esc.pbm.frontend.security.cfg
持有价值
signatureSecret=我的秘密
如何使用 PAX-CDI
在 KARAF/etc 中访问 cfg 文件例如:
KARAF_HOME\etc\import.cfg
使用方法 @OsgiServiceProvider
您可以使用 DOSGI 来加载 属性 并将其放置在 Util 中,然后您可以访问 Pax-CDI 代码
DOSGI:
@Component(immediate = true, configurationPolicy = ConfigurationPolicy.REQUIRE, configurationPid = "ca.esc.pbm.frontend.security")
public class SecurityConfig{
public static final String TOKEN_SIG_SECRET = "signatureSecret";
@Activate
private void activate(BundleContext bundleContext, Map<String, ?> properties) throws Exception {
logger.info("Security Config Activated");
Properties props = new Properties();
if (properties.isEmpty()) {
throw new ComponentException("Config Properties is Empty ");
}
logger.info("Property loaded " + properties.size());
props.putAll(properties);
PropertiesUtil.setProperty(props);
System.out.println(properties);
}
}
属性实用程序
/**
* Property Util to load the *.properties form class path
*
* @version 1.0
*/
public class PropertiesUtil {
private static Map<String, String> propertiesMap;
/**
* Get the property value for the given key from the loaded property
*
* @param name
* @return String
*/
public static String getProperty(String name) {
return (String) propertiesMap.get(name);
}
/**
* Set the property value for the given key from the loaded property
*
* @param props
*/
public static void setProperty(Properties props) {
Map<String, String> propertiesMapLocal = new HashMap<String, String>();
for (Object key : props.keySet()) {
String keyStr = key.toString();
propertiesMapLocal.put(keyStr, props.getProperty(keyStr));
}
propertiesMap = propertiesMapLocal;
}
}
pax-cdi
@ApplicationScoped
@Named
public class DefaultApiImpl implements DefaultApi {
@Override
public Response login(String userAgent, String username, String password, UriInfo uriInfo) {
PropertiesUtil.getProperty(SecurityConfig.TOKEN_SIG_SECRET);
}
cfg文件
你可以 karaf_home/etc/ca.esc.pbm.frontend.security.cfg 持有价值 signatureSecret=我的秘密