org.frameworkset.spi.BaseSPIManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bboss-core Show documentation
Show all versions of bboss-core Show documentation
bboss is a j2ee framework include aop/ioc,mvc,persistent,taglib,rpc,event ,bean-xml serializable and so on.http://www.bbossgroups.com
/*
* Copyright 2008 biaoping.yin
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.frameworkset.spi;
import org.frameworkset.spi.assemble.Pro;
import org.frameworkset.spi.assemble.ProList;
import org.frameworkset.spi.assemble.ProMap;
import org.frameworkset.spi.assemble.ProSet;
import org.frameworkset.spi.assemble.ServiceProviderManager;
/**
*
* Title:
*
*
*
* Description: 服务管理类,提供aop的最底层的包装,实现简单aop拦截功能,提供日志的管理,事务的管理功能
*
*
*
* Copyright: Copyright (c) 2006
*
*
*
* Company:
*
* @deprecated use BaseSPIManager2
* @author biaoping.yin
* @version 1.0
*/
public abstract class BaseSPIManager
{
public static ApplicationContext defaultContext;
static
{
// try {
// // use reflection and catch the Exception to allow PoolMan to work
// with 1.2 VM's
// Class r = Runtime.getRuntime().getClass();
// java.lang.reflect.Method m =
// r.getDeclaredMethod("addShutdownHook", new Class[]{Thread.class});
// m.invoke(Runtime.getRuntime(), new Object[]{new Thread(new
// BeanDestroyHook())});
// } catch (Exception e) {
// e.printStackTrace();
// }
// addShutdownHook(new BeanDestroyHook());
try
{
defaultContext = ApplicationContext.getApplicationContext(ServiceProviderManager.defaultConfigFile);
}
catch(Exception e)
{
// defaultContext = ApplicationContext.getApplicationContext(ServiceProviderManager.defaultConfigFile);
e.printStackTrace();
}
finally
{
}
}
public static ApplicationContext getDefaultApplicationContext()
{
return defaultContext;
}
/**
* 添加系统中停止时的回调程序
*
* @param destroyVMHook
*/
public static void addShutdownHook(Runnable destroyVMHook)
{
// try
// {
// // use reflection and catch the Exception to allow PoolMan to work
// // with 1.2 VM's
// Class r = Runtime.getRuntime().getClass();
// java.lang.reflect.Method m = r.getDeclaredMethod("addShutdownHook", new Class[] { Thread.class });
// m.invoke(Runtime.getRuntime(), new Object[] { new Thread(destroyVMHook) });
// }
// catch (Exception e)
// {
// e.printStackTrace();
// }
ApplicationContext.addShutdownHook(destroyVMHook);
}
/**
* 通用特定服务提供接口获取类
*
* @param providerManagerType
* String
* @return Object
* @throws SPIException
*/
public static Object getProvider(String providerManagerType) throws SPIException
{
return getProvider(providerManagerType, null);
}
/**
* 获取全局缺省的provider
*
* @return Object
* @throws SPIException
*/
public static Object getProvider() throws SPIException
{
return getProvider(null, null);
}
// /**
// * 通用特定服务类型中特定数据源实现的提供接口获取类
// * @param providerManagerType String
// * @param sourceType String
// * @return Provider
// * @throws SPIException
// */
// public static Provider getProvider(String providerManagerType,String
// sourceType) throws SPIException
// {
// ProviderManagerInfo providerManagerInfo = null;
// if(providerManagerType != null)
// providerManagerInfo = ConfigManager.getInstance().
// getProviderManagerInfo(providerManagerType);
// else
// {
// providerManagerInfo =
// ConfigManager.getInstance().getDefaultProviderManagerInfo();
// providerManagerType = providerManagerInfo.getId() ;
// }
// //各spi管理者的缓冲关键字为providerManagerType + ":" + sourceType;
// String cacheKey = sourceType != null?providerManagerType+":"+sourceType
// :providerManagerType+":"+DEFAULT_CACHE_KEY;
// String syncacheKey = providerManagerType+":"+SYNCHRO_CACHE_KEY;
//
// Provider provider = null;
// //判断是否允许为单实例模式,如果是获取单实例,否则重新创建provider实例
// if(providerManagerInfo.isSinglable())
// {
// provider = (Provider) providers.get(cacheKey);
// if (provider == null) {
// try {
// if (sourceType == null) {
// provider =
// (Provider) providerManagerInfo.
// getDefaulProviderInfo().
// getProvider();
// } else {
// provider =
// (Provider) providerManagerInfo.
// getSecurityProviderInfoByType(sourceType).
// getProvider();
//
// }
// providers.put(cacheKey, provider);
// } catch (Exception e) {
// throw new SPIException(
// "Failed to get UserManagement class instance..."
// + e.toString());
// }
// }
// }
// else
// {
// if (sourceType == null)
// provider = providerManagerInfo.
// getDefaulProviderInfo().getProvider();
// else
// provider = providerManagerInfo.
// getSecurityProviderInfoByType(sourceType)
// .getProvider();
// }
// //如果开启同步机制,获取同步代理接口,否则直接返回缺省的管理接口
// if (providerManagerInfo.isSynchronizedEnabled()) {
// Provider synProvider = null;
// //如果是单实例则获取代理单实例,否则重新生成代理实例
// if(providerManagerInfo.isSinglable())
// {
// synProvider = (Provider) providers.get(
// syncacheKey);
//
// if (synProvider == null) {
// Provider finalsynProvider = provider;
// synProvider = (Provider) createInf(providerManagerInfo,
// finalsynProvider);
// if (synProvider != null) {
// providers.put(
// syncacheKey, synProvider);
// }
// }
// }
// else
// {
// Provider finalsynProvider = provider;
// synProvider = (Provider) createInf(providerManagerInfo,
// finalsynProvider);
//
// }
// return synProvider;
// }
// else
// {
// return provider;
// }
// }
/**
* 获取管理服务的特定提供者实例对象
*/
public static Object getProvider(String providerManagerType, String sourceType) throws SPIException
{
return getProvider((CallContext) null, providerManagerType, sourceType,false);
}
// private static Map servicProviders = new HashMap();
//
// private static Map destroyServiceMethods = new HashMap();
//
// private static final List singleDestorys = new ArrayList();
/**
* 通用特定服务类型中特定数据源实现的提供接口获取类
*
* @param providerManagerType
* String
* @param sourceType
* String
* @return Object
* @throws SPIException
*/
// public static Object getProvider(Context parent,
// String providerManagerType,
// String sourceType) throws SPIException
// {
// ServiceID serviceID = new ServiceID(providerManagerType);
// ProviderManagerInfo providerManagerInfo = null;
// if(providerManagerType != null)
// {
// providerManagerInfo = defaultContext.
// getProviderManagerInfo(providerManagerType);
// }
// else
// {
// providerManagerInfo =
// defaultContext.getDefaultProviderManagerInfo();
// providerManagerType = providerManagerInfo.getId() ;
// }
// if(providerManagerInfo == null)
// {
// throw new SPIException("SPI[" + providerManagerType +"] in "
// + parent + " does not exist.");
// }
// //各spi管理者的缓冲关键字为providerManagerType + ":" + sourceType;
// if(sourceType == null || sourceType.equals(""))
// {
// sourceType = providerManagerInfo.getDefaulProviderInfo().getType();
// }
//
// String key = providerManagerType + ":" + sourceType;
// Object finalsynProvider = null;
// if(providerManagerInfo.isSinglable())
// {
// finalsynProvider = servicProviders.get(key);
// if(finalsynProvider != null)
// return finalsynProvider;
// }
//
// Object provider = null;
// //判断是否允许为单实例模式,如果是获取单实例,否则重新创建provider实例
// if(providerManagerInfo.isSinglable())
// {
//
// try {
// provider = providerManagerInfo.
// getSecurityProviderInfoByType(sourceType).
// getSingleProvider(parent);
// } catch (CurrentlyInCreationException e) {
// // TODO Auto-generated catch block
// // e.printStackTrace();
// throw new SPIException(e);
// }
//
//
// }
// else
// {
// try {
// provider = providerManagerInfo.
// getSecurityProviderInfoByType(sourceType)
// .getProvider(parent);
// } catch (CurrentlyInCreationException e) {
// // log.error(e);
// // e.printStackTrace();
// // return null;
// throw new SPIException(e);
// }
// }
// if(provider == null)
// throw new SPIException("管理服务["+key + "]为null,请检查相关配置是否正确。");
//
// finalsynProvider = provider;
//
// //生成管理服务的动态代理实例,如果不是以下的情况则不需要创建代理
// try
// {
// if(providerManagerInfo.enableTransaction() &&
// providerManagerInfo.isSynchronizedEnabled())
// {
// if(providerManagerInfo.getProviderInfoQueue().size() > 1)
// finalsynProvider =
// BaseSPIManager.createSynTXInf(parent,providerManagerInfo
// ,finalsynProvider);
// else
// {
// finalsynProvider =
// BaseSPIManager.createTXInf(parent,providerManagerInfo,finalsynProvider);
// }
//
// }
// else if(providerManagerInfo.enableTransaction())
// {
// finalsynProvider =
// BaseSPIManager.createTXInf(parent,providerManagerInfo,finalsynProvider);
// }
// else if(providerManagerInfo.isSynchronizedEnabled())
// {
// if(providerManagerInfo.getProviderInfoQueue().size() > 1)
// {
// finalsynProvider =
// BaseSPIManager.createSynInf(parent,providerManagerInfo,finalsynProvider);
// }
// else if(providerManagerInfo.usedCustomInterceptor())
// {
// finalsynProvider =
// BaseSPIManager.createInf(parent,providerManagerInfo,finalsynProvider);
// }
//
// }
// else if(providerManagerInfo.usedCustomInterceptor())
// {
// finalsynProvider =
// BaseSPIManager.createInf(parent,providerManagerInfo,finalsynProvider);
// }
//
//
// }
// catch(Exception e)
// {
// e.printStackTrace();
// throw new SPIException(e);
//
// }
// if(providerManagerInfo.isSinglable())
// {
// synchronized(servicProviders)
// {
// servicProviders.put(key, finalsynProvider);
// }
// }
// return finalsynProvider;
//
// }
public static Object getProvider(CallContext parent, String providerManagerType, String sourceType) throws SPIException
{
return getProvider(parent, providerManagerType, sourceType,false);
}
static Object getProvider(CallContext callContext, String providerManagerType, String sourceType,boolean frombeanobject) throws SPIException
{
return defaultContext.getProvider(callContext, providerManagerType, sourceType, frombeanobject);
// int idx = providerManagerType.indexOf("?");
//
// String _name = providerManagerType;
// if(callContext == null)
// callContext = new CallContext();
// if(idx > 0)
// {
// String params = providerManagerType.substring(idx + 1);
// callContext = buildCallContext(params,callContext);
// providerManagerType = providerManagerType.substring(0,idx);
// }
// ServiceID serviceID = buildServiceID(RPCHelper.serviceids,providerManagerType, ServiceID.PROVIDER_BEAN_SERVICE, sourceType);
//// if(callContext != null && callContext.getSecutiryContext() != null)
//// callContext.getSecutiryContext().setServiceid(serviceID.getService());
// // new ServiceID(providerManagerType,sourceType,GroupRequest.GET_ALL,0,
// // ServiceID.result_rsplist,ServiceID.PROVIDER_BEAN_SERVICE);
// // ServiceID(String serviceID,int resultMode,int waittime,int
// // resultType)
//
// ProviderManagerInfo providerManagerInfo = null;
// if (providerManagerType != null)
// {
// providerManagerInfo = defaultContext.getProviderManagerInfo(serviceID.getService());
// }
// else
// {
// providerManagerInfo = defaultContext.getDefaultProviderManagerInfo();
// providerManagerType = providerManagerInfo.getId();
// }
// if (providerManagerInfo == null)
// {
// if(frombeanobject)
// throw new SPIException("SPI[" + providerManagerType + "] in " + callContext.getLoopContext() + " does not exist.");
// else
// {
// return BaseSPIManager.getBeanObject(callContext,_name,null,true);
// }
// }
// // 各spi管理者的缓冲关键字为providerManagerType + ":" + sourceType;
// if (sourceType == null || sourceType.equals(""))
// {
// sourceType = providerManagerInfo.getDefaulProviderInfo().getType();
// }
//
// String key = providerManagerType + ":" + sourceType;
// Object finalsynProvider = null;
// if (providerManagerInfo.isSinglable())
// {
// finalsynProvider = servicProviders.get(key);
// if (finalsynProvider != null)
// return finalsynProvider;
// }
//
// Object provider = null;
//
// provider = providerManagerInfo.getSecurityProviderInfoByType(sourceType).getProvider(callContext);
// if (provider == null)
// throw new SPIException("管理服务[" + key + "]为null,请检查相关配置是否正确。");
//
// finalsynProvider = provider;
//
// // 生成管理服务的动态代理实例,如果不是以下的情况则不需要创建代理
// try
// {
// if (providerManagerInfo.enableTransaction() && providerManagerInfo.isSynchronizedEnabled())
// {
// if (providerManagerInfo.getProviderInfoQueue().size() > 1)
// finalsynProvider = BaseSPIManager.createSynTXInf(callContext, providerManagerInfo, finalsynProvider,
// serviceID);
// else
// {
// finalsynProvider = BaseSPIManager.createTXInf(callContext, providerManagerInfo, finalsynProvider,
// serviceID);
// }
//
// }
// else if (providerManagerInfo.enableTransaction())
// {
// finalsynProvider = BaseSPIManager.createTXInf(callContext, providerManagerInfo, finalsynProvider, serviceID);
// }
// else if (providerManagerInfo.isSynchronizedEnabled())
// {
// if (providerManagerInfo.getProviderInfoQueue().size() > 1)
// {
// finalsynProvider = BaseSPIManager.createSynInf(callContext, providerManagerInfo, finalsynProvider,
// serviceID);
// }
// else if (providerManagerInfo.usedCustomInterceptor())
// {
// finalsynProvider = BaseSPIManager.createInf(callContext, providerManagerInfo, finalsynProvider,
// serviceID);
// }
//
// }
// else if (providerManagerInfo.usedCustomInterceptor())
// {
// finalsynProvider = BaseSPIManager.createInf(callContext, providerManagerInfo, finalsynProvider, serviceID);
// }
// else if (serviceID.isRemote())
// {
// finalsynProvider = BaseSPIManager.createInf(callContext, providerManagerInfo, finalsynProvider, serviceID);
// }
//
// }
// catch (Exception e)
// {
// e.printStackTrace();
// throw new SPIException(e);
//
// }
// if (providerManagerInfo.isSinglable()
// && (providerManagerInfo.enableTransaction() || providerManagerInfo.isSynchronizedEnabled()
// || providerManagerInfo.usedCustomInterceptor() || serviceID.isRemote()))
// {
// if(callContext == null || (callContext != null && !callContext.containHeaders() && !serviceID.isRestStyle()))
// {
// synchronized (servicProviders)
// {
//
// Object temp = servicProviders.get(key);
// if (temp != null)
// return temp;
// servicProviders.put(key, finalsynProvider);
// }
// }
//
// }
// return finalsynProvider;
}
public BaseSPIManager()
{
}
// public static void main(String[] args)
// {
// Method[] methods = Test.class.getMethods();
// for(int i = 0; i < methods.length; i ++)
// {
// Method m = methods[i];
// Class[] cluss = m.getParameterTypes();
// for(int j = 0; j < cluss.length; j ++)
// {
//
// }
// }
//
// System.out.println(String.class);
// }
public static void main(String[] args)
{
long s = System.currentTimeMillis();
for (int i = 0; i < 600000; i++)
{
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println((end - s) + "s");
}
public static String getProperty(String name)
{
return defaultContext.getProperty(name);
}
public static int getIntProperty(String name)
{
return defaultContext.getIntProperty(name);
}
public static boolean getBooleanProperty(String name)
{
return defaultContext.getBooleanProperty(name);
}
public static String getProperty(String name, String defaultValue)
{
return defaultContext.getProperty(name, defaultValue);
}
public static Object getObjectProperty(String name)
{
return getObjectProperty(name, null);
}
public static Object getObjectProperty(String name, String defaultValue)
{
return defaultContext.getObjectProperty(name, defaultValue);
}
public static int getIntProperty(String name, int defaultValue)
{
return defaultContext.getIntProperty(name, defaultValue);
}
public static boolean getBooleanProperty(String name, boolean defaultValue)
{
return defaultContext.getBooleanProperty(name, defaultValue);
}
public static Object getBeanObject(String name)
{
return getBeanObject(name, null);
// return ServiceProviderManager.getInstance().getObjectProperty(name);
// if(value == null)
// throw new AssembleException("配置文件没有指定属性[" + name + "]!");
}
public static Object getBeanObject(String name, Object defaultValue)
{
return getBeanObject(null, name, defaultValue,false);
// return ServiceProviderManager.getInstance().getObjectProperty(name,
// defaultValue);
// if(value == null)
// throw new AssembleException("配置文件没有指定属性[" + name + "]!");
}
public static ProSet getSetProperty(String name)
{
return defaultContext.getSetProperty(name);
// if(value == null)
// throw new AssembleException("配置文件没有指定属性[" + name + "]!");
}
public static ProSet getSetProperty(String name, ProSet defaultValue)
{
return defaultContext.getSetProperty(name, defaultValue);
}
public static ProList getListProperty(String name)
{
return defaultContext.getListProperty(name);
}
public static ProList getListProperty(String name, ProList defaultValue)
{
return defaultContext.getListProperty(name, defaultValue);
}
public static ProMap getMapProperty(String name)
{
return defaultContext.getMapProperty(name);
// if(value == null)
// throw new AssembleException("配置文件没有指定属性[" + name + "]!");
}
public static ProMap getMapProperty(String name, ProMap defaultValue)
{
return defaultContext.getMapProperty(name, defaultValue);
}
// /**
// * 这个方法需要对服务事务进行相应的处理
// * @param context
// * @param name
// * @param defaultValue
// * @return
// */
// @SuppressWarnings("unchecked")
// public static Object getBeanObject(Context context, String name,Object
// defaultValue)
// {
// ServiceID serviceID = new
// ServiceID(name,GroupRequest.GET_ALL,0,ServiceID.
// result_rsplist,ServiceID.PROPERTY_BEAN_SERVICE);
// Pro providerManagerInfo =
// defaultContext.getPropertyBean
// (serviceID.getService());
// if(providerManagerInfo == null)
// {
// ProviderManagerInfo providerManagerInfo_ = null;
//
// providerManagerInfo_ = ServiceProviderManager.getInstance()
// .getProviderManagerInfo(serviceID.getService());
// if(providerManagerInfo_ == null)
// throw new SPIException("没有定义名称为[" + name + "]的bean对象。");
// return BaseSPIManager.getProvider(context, name, null);
// }
//
// String key = name;
// Object finalsynProvider = null;
// if (providerManagerInfo.isSinglable()) {
// finalsynProvider = servicProviders.get(key);
// if (finalsynProvider != null)
// return finalsynProvider;
// }
// finalsynProvider =
// defaultContext.getBeanObject(context
// ,serviceID.getService(),defaultValue);
// // ServiceID serviceID = new
// ServiceID(name,GroupRequest.GET_ALL,0,ServiceID
// .result_rsplist,ServiceID.PROPERTY_BEAN_SERVICE);
// if(providerManagerInfo.enableTransaction() || serviceID.isRemote())
// {
//
// finalsynProvider = createInf(context, providerManagerInfo,
// finalsynProvider,serviceID);
// if (providerManagerInfo.isSinglable()) {
// synchronized (servicProviders) {
// servicProviders.put(key, finalsynProvider);
// }
// }
// }
// return finalsynProvider;
// }
public static Object getBeanObject(CallContext context, String name, Object defaultValue)
{
return getBeanObject(context, name, defaultValue,false);
}
// public static CallContext buildCallContext(String params,CallContext context)
// {
// if(context == null)
// context = new CallContext();
// StringTokenizer tokenizer = new StringTokenizer(params,"&",false);
//
// /**
// * 协议中包含的属性参数,可以用来做路由条件
// */
// Headers headers = null;
// SecurityContext securityContext = null;
// String user = null;
// String password = null;
// while(tokenizer.hasMoreTokens())
// {
//
// String parameter = tokenizer.nextToken();
//
// int idex = parameter.indexOf("=");
// if(idex <= 0)
// {
// throw new SPIException("非法的服务参数串[" + params +"]");
// }
// StringTokenizer ptokenizer = new StringTokenizer(parameter,"=",false);
// String name = ptokenizer.nextToken();
// String value = ptokenizer.nextToken();
// Header header = new Header(name,value);
// if(name.equals(SecurityManager.USER_ACCOUNT_KEY))
// {
// user = value;
//
// }
// else if(name.equals(SecurityManager.USER_PASSWORD_KEY))
// {
// password = value;
//
// }
// else
// {
// if(headers == null)
// headers = new Headers();
// headers.put(header.getName(),header);
// }
// }
// if(securityContext == null)
// securityContext = new SecurityContext(user,password);
// context.setSecutiryContext(securityContext);
// context.setHeaders(headers);
// return context;
// }
/**
* bean工厂方法
*
* @param context
* @param name
* @param defaultValue
* @return
*/
@SuppressWarnings("unchecked")
static Object getBeanObject(CallContext context, String name, Object defaultValue,boolean fromprovider)
{
// //分析服务参数
// int idx = name.indexOf("?");
//
//
// String _name = name;
// if(context == null)
// context = new CallContext();
// if(idx > 0)
// {
// String params = name.substring(idx + 1);
// context = buildCallContext(params,context);
//// name = name.substring(0,idx);
// }
//
//
// ServiceID serviceID = buildServiceID(RPCHelper.serviceids,name, ServiceID.PROPERTY_BEAN_SERVICE);
// // new ServiceID(name,GroupRequest.GET_ALL,0,ServiceID.result_rsplist,
// // ServiceID.PROPERTY_BEAN_SERVICE);
// Pro providerManagerInfo = defaultContext.getPropertyBean(serviceID.getService());
//// if(context != null && context.getSecutiryContext() != null)
//// context.getSecutiryContext().setServiceid(serviceID.getService());
// if (providerManagerInfo == null)
// {
// if(!fromprovider)
// {
// ProviderManagerInfo providerManagerInfo_ = null;
//
// providerManagerInfo_ = defaultContext.getProviderManagerInfo(serviceID.getService());
// if (providerManagerInfo_ == null)
// throw new SPIException("没有定义名称为[" + name + "]的bean对象。");
// return BaseSPIManager.getProvider(context, _name, null,true);
// }
// else
// {
// throw new SPIException("没有定义名称为[" + name + "]的bean对象。");
// }
// }
// return getBeanObject(context, providerManagerInfo, defaultValue, serviceID);
return defaultContext.getBeanObject( context, name, defaultValue, fromprovider);
// String key = name;
// Object finalsynProvider = null;
// if (providerManagerInfo.isSinglable()) {
// finalsynProvider = servicProviders.get(key);
// if (finalsynProvider != null)
// return finalsynProvider;
// }
// finalsynProvider =
// defaultContext.getBeanObject(
// context,serviceID.getService(),defaultValue);
// // ServiceID serviceID = new
// ServiceID(name,GroupRequest.GET_ALL,0,ServiceID
// .result_rsplist,ServiceID.PROPERTY_BEAN_SERVICE);
// if(providerManagerInfo.enableTransaction() || serviceID.isRemote())
// {
//
// finalsynProvider = createInf(context, providerManagerInfo,
// finalsynProvider,serviceID);
// if (providerManagerInfo.isSinglable()) {
// synchronized (servicProviders) {
// servicProviders.put(key, finalsynProvider);
// }
// }
// }
// return finalsynProvider;
}
public static Object getBeanObject(CallContext context, String name)
{
return getBeanObject(context, name, null,false);
}
public static Pro getProBean(String name)
{
// TODO Auto-generated method stub
return defaultContext.getProBean(name);
}
public static Object getBeanObject(CallContext context, Pro providerManagerInfo)
{
return getBeanObject(context, providerManagerInfo, null);
}
/**
* bean组件工厂方法, 如果serviceID不为空,则serviceID是根据getBeanObject(Context context,
* String name,Object defaultValue)方法的name生成的
* 否则需要根据providerManagerInfo的name或者refid来生成serviceID
*
* @param context
* @param providerManagerInfo
* @param defaultValue
* @param serviceID
* @return
*/
public static Object getBeanObject(CallContext context, Pro providerManagerInfo, Object defaultValue)
{
return defaultContext.getBeanObject( context, providerManagerInfo, defaultValue);
// if (providerManagerInfo == null)
// throw new SPIException("bean对象为空。");
// String key = providerManagerInfo.getName();
// if(providerManagerInfo.isRefereced())
// {
// Object retvalue = providerManagerInfo.getTrueValue(context,defaultValue);
// return retvalue;
// }
//
// Object finalsynProvider = null;
// if (serviceID == null)
// serviceID = buildServiceID(RPCHelper.serviceids,key, ServiceID.PROPERTY_BEAN_SERVICE);
// // new ServiceID(key, GroupRequest.GET_ALL ,0,ServiceID.result_rsplist,ServiceID.PROPERTY_BEAN_SERVICE);
// key = serviceID.getOrigineServiceID();
// finalsynProvider = defaultContext.getBeanObject(context, providerManagerInfo,
// defaultValue);
// if (providerManagerInfo.enableTransaction() || providerManagerInfo.usedCustomInterceptor() || serviceID.isRemote())
// {
// if (providerManagerInfo.isSinglable() )
// {
//// String key = serviceID.getServiceID();
// if(context != null && !context.containHeaders() && !serviceID.isRestStyle() )//如果包含头信息时,代理类将不能被缓冲,原因是头信息的动态性会导致缓冲实例过多
// {
// Object provider = servicProviders.get(key);
// if (provider != null)
// return provider;
// synchronized (servicProviders)
// {
// provider = servicProviders.get(key);
// if (provider != null)
// return provider;
// provider = createInf(context, providerManagerInfo, finalsynProvider, serviceID);
// servicProviders.put(key, provider);
// }
// return provider;
// }
// else
// {
// finalsynProvider = createInf(context, providerManagerInfo, finalsynProvider, serviceID);
// return finalsynProvider;
// }
//
// }
// else
// {
// finalsynProvider = createInf(context, providerManagerInfo, finalsynProvider, serviceID);
// return finalsynProvider;
// }
// }
// else
// {
// return finalsynProvider;
// }
}
// private static Map serviceids = new java.util.WeakHashMap();
// public static ServiceID buildServiceID(Map serviceids,String serviceid, int serviceType, String providertype)
// {
// return RPCHelper.buildServiceID( serviceids,serviceid, serviceType, providertype);
//
// }
//
// public static ServiceID buildServiceID(String serviceid, int serviceType)
// {
//
////// SoftReference reference;
////
////
//// long timeout = getRPCRequestTimeout();
//// ServiceID serviceID = new ServiceID(serviceid, null, GroupRequest.GET_ALL, timeout, ServiceID.result_rsplist,
//// serviceType);
////
//
// return RPCHelper.buildServiceID(serviceid, serviceType);
//
// }
// public static ServiceID buildServiceID(Map serviceids,String serviceid, int serviceType)
// {
//
// return buildServiceID(serviceids,serviceid, serviceType, null);
//
// }
//
// public static ServiceID buildBeanServiceID(Map serviceids,String serviceid)
// {
//
// return buildServiceID(serviceids,serviceid, ServiceID.PROPERTY_BEAN_SERVICE, null);
//
// }
public static String getStringExtendAttribute(String name ,String extendName)
{
return defaultContext.getStringExtendAttribute(name,extendName);
}
public static Object getExtendAttribute(String name ,String extendName)
{
// Pro pro = getProBean(name);
// if(pro == null)
// return null;
// return pro.getExtendAttribute(extendName);
return defaultContext.getExtendAttribute(name ,extendName);
}
public static int getIntExtendAttribute(String name ,String extendName)
{
// Pro pro = getProBean(name);
// if(pro == null)
// return -1;
// return pro.getIntExtendAttribute(extendName);
return defaultContext.getIntExtendAttribute( name , extendName);
}
public static long getLongExtendAttribute(String name ,String extendName)
{
// TODO Auto-generated method stub
// Pro pro = getProBean(name);
// if(pro == null)
// return -1;
// return pro.getLongExtendAttribute(extendName);
return defaultContext.getLongExtendAttribute( name , extendName);
}
public static boolean getBooleanExtendAttribute(String name ,String extendName)
{
// // TODO Auto-generated method stub
// Pro pro = getProBean(name);
// if(pro == null)
// return false;
// return pro.getBooleanExtendAttribute(extendName);
return defaultContext.getBooleanExtendAttribute( name , extendName);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy