001/**
002 *   GRANITE DATA SERVICES
003 *   Copyright (C) 2006-2013 GRANITE DATA SERVICES S.A.S.
004 *
005 *   This file is part of the Granite Data Services Platform.
006 *
007 *   Granite Data Services is free software; you can redistribute it and/or
008 *   modify it under the terms of the GNU Lesser General Public
009 *   License as published by the Free Software Foundation; either
010 *   version 2.1 of the License, or (at your option) any later version.
011 *
012 *   Granite Data Services is distributed in the hope that it will be useful,
013 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
014 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
015 *   General Public License for more details.
016 *
017 *   You should have received a copy of the GNU Lesser General Public
018 *   License along with this library; if not, write to the Free Software
019 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
020 *   USA, or see <http://www.gnu.org/licenses/>.
021 */
022package org.granite.config;
023
024import java.io.IOException;
025
026import org.granite.jmx.MBean;
027import org.granite.jmx.MBeanAttribute;
028import org.granite.jmx.MBeanOperation;
029import org.granite.jmx.MBeanOperation.Impact;
030
031/**
032 * @author Franck WOLFF
033 */
034@MBean(description="MBean used for GraniteConfig operations")
035public interface ServletGraniteConfigMBean {
036
037        ///////////////////////////////////////////////////////////////////////////
038        // Attributes.
039        
040    @MBeanAttribute(description="Does this config use auto scanning?")
041        public boolean getScan();
042        
043    @MBeanAttribute(description="The custom (webapp specific) granite-config.xml file location")
044    public String getCustomConfigPath();
045        
046    @MBeanAttribute(description="The AMF3Serializer class")
047    public String getAmf3SerializerClass();
048        
049    @MBeanAttribute(description="The AMF3Deserializer class")
050    public String getAmf3DeserializerClass();
051    
052    @MBeanAttribute(description="The AMF3MessageInterceptor class")
053    public String getAmf3MessageInterceptorClass();
054    
055    @MBeanAttribute(description="The MethodMatcher class")
056    public String getMethodMatcherClass();
057
058    @MBeanAttribute(description="The ServiceInvocationListener class")
059    public String getServiceInvocationListenerClass();
060    
061    @MBeanAttribute(description="The ClassGetter class")
062    public String getClassGetterClass();
063    
064    @MBeanAttribute(description="The SecurityService class")
065    public String getSecurityServiceClass();
066    
067    @MBeanAttribute(description="The MessageSelector class")
068    public String getMessageSelectorClass();
069    
070        ///////////////////////////////////////////////////////////////////////////
071        // Operations.
072    
073    @MBeanOperation(
074        description="Shows the custom (webapp specific) granite-config.xml file content",
075        impact=Impact.INFO
076    )
077        public String showCustomConfig() throws IOException;
078
079    @MBeanOperation(
080        description="Shows the standard (built-in) granite-config.xml file content",
081        impact=Impact.INFO
082    )
083        public String showStandardConfig() throws IOException;
084
085    @MBeanOperation(
086        description="Shows the list of all configured type converters",
087        impact=Impact.INFO
088    )
089        public String showConverters();
090
091    @MBeanOperation(
092        description="Shows the list of all configured instantiators",
093        impact=Impact.INFO
094    )
095        public String showInstantiators();
096    
097    @MBeanOperation(
098        description="Shows the list of all configured exception converters",
099        impact=Impact.INFO
100    )
101    public String showExceptionConverters();
102    
103    @MBeanOperation(
104        description="Shows scanned externalizers",
105        impact=Impact.INFO
106    )
107    public String showScannedExternalizers();
108
109    @MBeanOperation(
110        description="Shows which externalizer is used for a given serialized object (dynamic)",
111        impact=Impact.INFO
112    )
113    public String showExternalizersByType();
114
115    @MBeanOperation(
116        description="Shows which externalizer is used for a given serialized instance (configured)",
117        impact=Impact.INFO
118    )
119    public String showExternalizersByInstanceOf();
120
121    @MBeanOperation(
122        description="Shows which externalizer is used for a given serialized annotated object (configured)",
123        impact=Impact.INFO
124    )
125    public String showExternalizersByAnnotatedWith();
126
127    @MBeanOperation(
128        description="Shows which Java descriptor is used for a given serialized object (dynamic)",
129        impact=Impact.INFO
130    )
131    public String showJavaDescriptorsByType();
132
133    @MBeanOperation(
134        description="Shows which Java descriptor is used for a given serialized instance (configured)",
135        impact=Impact.INFO
136    )
137    public String showJavaDescriptorsByInstanceOf();
138
139    @MBeanOperation(
140        description="Shows which ActionScript3 descriptor is used for a given serialized object (dynamic)",
141        impact=Impact.INFO
142    )
143    public String showAs3DescriptorsByType();
144
145    @MBeanOperation(
146        description="Shows which ActionScript3 descriptor is used for a given serialized instance (configured)",
147        impact=Impact.INFO
148    )
149    public String showAs3DescriptorsByInstanceOf();
150
151    @MBeanOperation(
152        description="Shows enabled Tide components (configured)",
153        impact=Impact.INFO
154    )
155    public String showEnabledTideComponentsByName();
156
157    @MBeanOperation(
158        description="Shows disabled Tide components (configured)",
159        impact=Impact.INFO
160    )
161    public String showDisabledTideComponentsByName();
162
163    @MBeanOperation(
164        description="Shows Tide component matchers (configured)",
165        impact=Impact.INFO
166    )
167    public String showTideComponentMatchers();
168    
169        @MBeanOperation(
170        description="Reload the granite-config.xml file",
171        impact=Impact.ACTION
172    )
173    public void reload();
174}