![JAR search and dependency download from the Maven repository](/logo.png)
com.ibm.commons.runtime.impl.AbstractContext Maven / Gradle / Ivy
The newest version!
/*
* © Copyright IBM Corp. 2012
*
* 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 com.ibm.commons.runtime.impl;
import java.util.Map;
import java.util.Properties;
import com.ibm.commons.runtime.Application;
import com.ibm.commons.runtime.Context;
import com.ibm.commons.runtime.impl.ManagedBeanFactory.BeanFactory;
/**
* SBT Context abstract implementation for J2EE servers.
*
* @author Philippe Riand
*/
public abstract class AbstractContext extends Context {
private int references;
private Object request;
private Object response;
private Properties properties;
protected AbstractContext(Application application, Object request, Object response) {
super(application);
this.request = request;
this.response = response;
}
public int _references() {
return references;
}
public void _incReferences() {
references++;
}
public void _decReferences() {
references--;
}
@Override
public Object getRequest() {
return request;
}
@Override
public Object getResponse() {
return response;
}
@Override
public AbstractApplication getApplication() {
return (AbstractApplication)super.getApplication();
}
@Override
public AbstractApplication getApplicationUnchecked() {
return (AbstractApplication)super.getApplicationUnchecked();
}
@Override
public String getProperty(String propertyName) {
return getProperty(propertyName,null);
}
@Override
public String getProperty(String propertyName, String defaultValue) {
if(properties!=null) {
String v = properties.getProperty(propertyName);
if(v!=null) {
return v;
}
}
Application app = getApplicationUnchecked();
if(app!=null) {
String v = app.getProperty(propertyName);
if(v!=null) {
return v;
}
}
return defaultValue;
}
@Override
public void setProperty(String propertyName, String value) {
if(properties==null) {
properties = new Properties();
}
properties.setProperty(propertyName,value);
}
@Override
public Object getBean(String beanName) {
// Look for a bean in any of the available scope
Object bean = getRequestMap().get(beanName);
if(bean!=null) {
return bean;
}
bean = getSessionMap().get(beanName);
if(bean!=null) {
return bean;
}
bean = getApplicationMap().get(beanName);
if(bean!=null) {
return bean;
}
bean = getGlobalMap().get(beanName);
if(bean!=null) {
return bean;
}
// Ok, we need to create it if possible
AbstractApplication app = getApplicationUnchecked();
if(app!=null) {
ManagedBeanFactory[] factories = app.getManagedBeanFactories();
if(factories!=null && factories.length>0) {
for(int i=0; i map = getScope(factory.getScope());
synchronized(map) {
Object o = map.get(beanName);
if(o==null) {
o = factory.create(getClassLoader());
if(o!=null) {
map.put(beanName, o);
}
}
return o;
}
}
}
}
}
// Ok, there is no bean
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy