001 // jademx - JADE management using JMX
002 // Copyright 2005 Caboodle Networks, Inc.
003 //
004 // This library is free software; you can redistribute it and/or
005 // modify it under the terms of the GNU Lesser General Public
006 // License as published by the Free Software Foundation; either
007 // version 2.1 of the License, or (at your option) any later version.
008 //
009 // This library is distributed in the hope that it will be useful,
010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
012 // Lesser General Public License for more details.
013 //
014 // You should have received a copy of the GNU Lesser General Public
015 // License along with this library; if not, write to the Free Software
016 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
017
018 package jade.jademx.agent;
019
020 import javax.management.Attribute;
021 import javax.management.AttributeList;
022 import javax.management.MBeanException;
023 import javax.management.ReflectionException;
024
025 //import jade.util.Logger;
026
027
028 /**
029 * sample agent to demonstrate building agent using jademx.
030 * @author David Bernstein, <a href="http://www.caboodlenetworks.com"
031 * >Caboodle Networks, Inc.</a>
032 */
033 public class JademxNopAgent extends JademxAgent {
034
035 /**
036 * make a Jademx ping agent
037 */
038 public JademxNopAgent() {
039 }
040
041 ///** my logger */
042 //private final Logger logger =
043 // Logger.getMyLogger(JademxNopAgent.class.getName());
044
045 /* (non-Javadoc)
046 * @see jade.core.Agent#setup()
047 */
048 protected void setup() {
049 // make sure set up as a JademxAgent
050 super.setup();
051
052 //MBeanInfo mbi = getMBeanInfo();
053
054 boolean reachedUnreachable = false;
055 AttributeList aList = null;
056
057 try {
058 reachedUnreachable = false;
059 aList = getAttributes( new String[] { "FuBar "});
060 reachedUnreachable = true;
061 }
062 catch ( RuntimeException re ) {
063 // expected
064 }
065 if ( reachedUnreachable ) {
066 throw new RuntimeException(
067 "shouldn't have gotten past getAttributes() call");
068 }
069
070 aList = new AttributeList(1);
071 aList.add( new Attribute("foo","bar") );
072 try {
073 reachedUnreachable = false;
074 setAttributes( aList );
075 reachedUnreachable = true;
076 }
077 catch ( RuntimeException re ) {
078 // expected
079 }
080 if ( reachedUnreachable ) {
081 throw new RuntimeException(
082 "shouldn't have gotten past setAttributes() call");
083 }
084
085 try {
086 invoke( "foo", new Object[0], new String[0]);
087 }
088 catch ( MBeanException e ) {
089 throw new RuntimeException("unexpected MBeanException", e );
090 }
091 catch (ReflectionException e) {
092 // expected
093 }
094
095
096 }
097
098
099
100
101 }