001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *      http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.wicket.jmx.wrapper;
018
019import java.io.IOException;
020
021import org.apache.wicket.jmx.ApplicationMBean;
022
023/**
024 * Exposes Application related functionality for JMX.
025 * 
026 * @author eelcohillenius
027 */
028public class Application implements ApplicationMBean
029{
030        private final org.apache.wicket.Application application;
031
032        /**
033         * Create.
034         * 
035         * @param application
036         */
037        public Application(final org.apache.wicket.Application application)
038        {
039                this.application = application;
040        }
041
042        /**
043         * @see org.apache.wicket.jmx.ApplicationMBean#clearMarkupCache()
044         */
045        @Override
046        public void clearMarkupCache() throws IOException
047        {
048                application.getMarkupSettings().getMarkupFactory().getMarkupCache().clear();
049        }
050
051        /**
052         * @see org.apache.wicket.jmx.ApplicationMBean#getApplicationClass()
053         */
054        @Override
055        public String getApplicationClass() throws IOException
056        {
057                return application.getClass().getName();
058        }
059
060        /**
061         * @see org.apache.wicket.jmx.ApplicationMBean#getConfigurationType()
062         */
063        @Override
064        public String getConfigurationType()
065        {
066                return application.getConfigurationType().name();
067        }
068
069        /**
070         * @see org.apache.wicket.jmx.ApplicationMBean#getHomePageClass()
071         */
072        @Override
073        public String getHomePageClass() throws IOException
074        {
075                return application.getHomePage().getName();
076        }
077
078        /**
079         * @see org.apache.wicket.jmx.ApplicationMBean#getMarkupCacheSize()
080         */
081        @Override
082        public int getMarkupCacheSize() throws IOException
083        {
084                return application.getMarkupSettings().getMarkupFactory().getMarkupCache().size();
085        }
086
087        /**
088         * @see org.apache.wicket.jmx.ApplicationMBean#getWicketVersion()
089         */
090        @Override
091        public String getWicketVersion() throws IOException
092        {
093                return application.getFrameworkSettings().getVersion();
094        }
095
096        /**
097         * @see org.apache.wicket.jmx.ApplicationMBean#clearLocalizerCache()
098         */
099        @Override
100        public void clearLocalizerCache() throws IOException
101        {
102                application.getResourceSettings().getLocalizer().clearCache();
103        }
104}