beanconfig.java
来自「RESIN 3.2 最新源码」· Java 代码 · 共 251 行
JAVA
251 行
/* * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved * * This file is part of Resin(R) Open Source * * Each copy or derived work must preserve the copyright notice and this * notice unmodified. * * Resin Open Source is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Resin Open Source is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty * of NON-INFRINGEMENT. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with Resin Open Source; if not, write to the * * Free Software Foundation, Inc. * 59 Temple Place, Suite 330 * Boston, MA 02111-1307 USA * * @author Scott Ferguson */package com.caucho.config.types;import com.caucho.config.*;import com.caucho.config.type.*;import com.caucho.config.j2ee.*;import com.caucho.jca.program.*;import com.caucho.naming.*;import com.caucho.util.*;import com.caucho.webbeans.*;import com.caucho.webbeans.cfg.*;import com.caucho.webbeans.component.*;import com.caucho.webbeans.context.*;import java.util.*;import java.lang.reflect.*;import java.lang.annotation.*;import javax.annotation.*;import javax.resource.spi.*;import javax.webbeans.*;/** * Configuration for the xml web bean component. */public class BeanConfig extends WbComponentConfig { private static final L10N L = new L10N(BeanConfig.class); private String _filename; private int _line; private String _uri; private String _jndiName; private String _mbeanName; private Class _mbeanClass; private Class _beanConfigClass; public BeanConfig() { if (getDefaultScope() != null) setScope(getDefaultScope()); } protected String getDefaultScope() { return "singleton"; } public void setConfigLocation(String filename, int line) { _filename = filename; _line = line; } public String getFilename() { return _filename; } public int getLine() { return _line; } public void setJndiName(String jndiName) { _jndiName = jndiName; if (getName() == null) setName(jndiName); } public void setMbeanName(String mbeanName) { _mbeanName = mbeanName; } @Override public String getMBeanName() { return _mbeanName; } public void setMbeanClass(Class cl) { setMbeanInterface(cl); } public void setMbeanInterface(Class cl) { _mbeanClass = cl; } public Class getBeanConfigClass() { return _beanConfigClass; } public void setBeanConfigClass(Class cl) { _beanConfigClass = cl; } /** * backwards compat */ public void setType(Class cl) { setClass(cl); } /** * Check the class */ @Override public void setClass(Class cl) { super.setClass(cl); Class type = getBeanConfigClass(); if (type != null && ! type.isAssignableFrom(cl)) throw new ConfigException(L.l("'{0}' is not a valid instance of '{1}'", cl.getName(), type.getName())); } /** * uri-style configuration like the jms-queue url="memory:" */ public void setUri(String uri) { Class beanConfigClass = getBeanConfigClass(); if (beanConfigClass == null) { throw new ConfigException(L.l("'{0}' does not support the 'uri' attribute because its bean-config-class is undefined", getClass().getName())); } _uri = uri; String scheme; String properties = ""; int p = uri.indexOf(':'); if (p >= 0) { scheme = uri.substring(0, p); properties = uri.substring(p + 1); } else scheme = uri; TypeFactory factory = TypeFactory.create(); setClass(factory.getDriverClassByUrl(beanConfigClass, uri)); String []props = properties.split("[;]"); for (String prop : props) { if (prop.length() == 0) continue; String []values = prop.split("[=]"); if (values.length != 2) throw new ConfigException(L.l("'{0}' is an invalid URI. Bean URI syntax is 'scheme:prop1=value1;prop2=value2'", uri)); addStringProperty(values[0], values[1]); } } /** * Returns the uri */ public String getUri() { return _uri; } public void init() { super.init(); try { if (_comp == null) { } else if (_jndiName != null) { Jndi.bindDeepShort(_jndiName, _comp); } /* if (_mbeanName != null) { Object mbean = _object; if (_mbeanInterface != null) mbean = new IntrospectionMBean(mbean, _mbeanInterface); Jmx.register(mbean, mbeanName); _mbeanInfo = mbeanServer.getMBeanInfo(mbeanName); } */ } catch (RuntimeException e) { throw e; } catch (Exception e) { throw ConfigException.create(e); } } /** * Introspection after the init has been set and before the @PostConstruct * for additional interception */ @Override protected void introspectPostInit() { }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?