/*
* JBoss, Home of Professional Open Source
* Copyright 2012, Red Hat, Inc., and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* 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.jboss.weld.environment.servlet.portlet;
import javax.enterprise.inject.spi.BeanManager;
import org.jboss.weld.environment.servlet.WeldServletLifecycle;
/**
* Simple portlet support.
*
* @author Marko Strukelj
* @author Ales Justin
*/
public final class PortletSupport {
private static volatile Boolean enabled;
private PortletSupport() {
}
/**
* Is portlet env supported.
*
* @return true if portlet env is supported, false otherwise
*/
public static boolean isPortletEnvSupported() {
if (enabled == null) {
synchronized (PortletSupport.class) {
if (enabled == null) {
try {
PortletSupport.class.getClassLoader().loadClass("javax.portlet.PortletContext");
enabled = true;
} catch (Throwable ignored) {
enabled = false;
}
}
}
}
return enabled;
}
/**
* Is the ctx object instance of portlet context.
*
* @param ctx the current context
* @return true is portlet context, false otherwise
*/
public static boolean isPortletContext(Object ctx) {
return (ctx instanceof javax.portlet.PortletContext);
}
/**
* Get bean manager from portlet context.
*
* @param ctx the portlet context
* @return bean manager if found
*/
public static BeanManager getBeanManager(Object ctx) {
return (BeanManager) javax.portlet.PortletContext.class.cast(ctx).getAttribute(WeldServletLifecycle.BEAN_MANAGER_ATTRIBUTE_NAME);
}
}