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 */
022 package org.granite.config;
023
024 import java.io.IOException;
025
026 import org.granite.jmx.MBean;
027 import org.granite.jmx.MBeanAttribute;
028 import org.granite.jmx.MBeanOperation;
029 import org.granite.jmx.MBeanOperation.Impact;
030
031 /**
032 * @author Franck WOLFF
033 */
034 @MBean(description="MBean used for GraniteConfig operations")
035 public 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 }