/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.catalina.mbeans;
import javax.management.MBeanException;
import javax.management.RuntimeOperationsException;
import org.apache.catalina.Context;
import org.apache.tomcat.util.descriptor.web.ApplicationParameter;
import org.apache.tomcat.util.descriptor.web.ErrorPage;
import org.apache.tomcat.util.descriptor.web.FilterDef;
import org.apache.tomcat.util.descriptor.web.FilterMap;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
public class ContextMBean extends BaseCatalinaMBean<Context> {
public ContextMBean() throws MBeanException, RuntimeOperationsException {
super();
}
/**
* Return the set of application parameters for this application.
* @return a string array with a representation of each parameter
* @throws MBeanException propagated from the managed resource access
*/
public String[] findApplicationParameters() throws MBeanException {
Context context = doGetManagedResource();
ApplicationParameter[] params = context.findApplicationParameters();
String[] stringParams = new String[params.length];
for (int counter = 0; counter < params.length; counter++) {
stringParams[counter] = params[counter].toString();
}
return stringParams;
}
/**
* Return the security constraints for this web application.
* If there are none, a zero-length array is returned.
* @return a string array with a representation of each
* security constraint
* @throws MBeanException propagated from the managed resource access
*/
public String[] findConstraints() throws MBeanException {
Context context = doGetManagedResource();
SecurityConstraint[] constraints = context.findConstraints();
String[] stringConstraints = new String[constraints.length];
for (int counter = 0; counter < constraints.length; counter++) {
stringConstraints[counter] = constraints[counter].toString();
}
return stringConstraints;
}
/**
* Return the error page entry for the specified HTTP error code,
* if any; otherwise return <code>null</code>.
*
* @param errorCode Error code to look up
* @return a string representation of the error page
* @throws MBeanException propagated from the managed resource access
*/
public String findErrorPage(int errorCode) throws MBeanException {
Context context = doGetManagedResource();
return context.findErrorPage(errorCode).toString();
}
/**
* Return the error page entry for the specified Java exception type,
* if any; otherwise return <code>null</code>.
*
* @param exceptionType Exception type to look up
* @return a string representation of the error page
* @throws MBeanException propagated from the managed resource access
*/
public String findErrorPage(String exceptionType) throws MBeanException {
Context context = doGetManagedResource();
return context.findErrorPage(exceptionType).toString();
}
/**
* Return the set of defined error pages for all specified error codes
* and exception types.
* @return a string array with a representation of each error page
* @throws MBeanException propagated from the managed resource access
*/
public String[] findErrorPages() throws MBeanException {
Context context = doGetManagedResource();
ErrorPage[] pages = context.findErrorPages();
String[] stringPages = new String[pages.length];
for (int counter = 0; counter < pages.length; counter++) {
stringPages[counter] = pages[counter].toString();
}
return stringPages;
}
/**
* Return the filter definition for the specified filter name, if any;
* otherwise return <code>null</code>.
*
* @param name Filter name to look up
* @return a string representation of the filter definition
* @throws MBeanException propagated from the managed resource access
*/
public String findFilterDef(String name) throws MBeanException {
Context context = doGetManagedResource();
FilterDef filterDef = context.findFilterDef(name);
return filterDef.toString();
}
/**
* Return the set of defined filters for this Context.
* @return a string array with a representation of all
* the filter definitions
* @throws MBeanException propagated from the managed resource access
*/
public String[] findFilterDefs() throws MBeanException {
Context context = doGetManagedResource();
FilterDef[] filterDefs = context.findFilterDefs();
String[] stringFilters = new String[filterDefs.length];
for (int counter = 0; counter < filterDefs.length; counter++) {
stringFilters[counter] = filterDefs[counter].toString();
}
return stringFilters;
}
/**
* Return the set of filter mappings for this Context.
* @return a string array with a representation of all the filter mappings
* @throws MBeanException propagated from the managed resource access
*/
public String[] findFilterMaps() throws MBeanException {
Context context = doGetManagedResource();
FilterMap[] maps = context.findFilterMaps();
String[] stringMaps = new String[maps.length];
for (int counter = 0; counter < maps.length; counter++) {
stringMaps[counter] = maps[counter].toString();
}
return stringMaps;
}
}