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