summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2011-05-16 13:26:36 +0000
committerRobert Gemmell <robbie@apache.org>2011-05-16 13:26:36 +0000
commite3e488a02691d5a90dc1fec2da6bb8e3e8f4dcb0 (patch)
tree6db75e4f0cc14c2cc04d3fff9ebc5bc67613291b
parente6de9d8f188c84980d2c3bd872a1d069c637be60 (diff)
downloadqpid-python-e3e488a02691d5a90dc1fec2da6bb8e3e8f4dcb0.tar.gz
QPID-3260: remove defunct java/management/agent module
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1103725 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/build.deps2
-rw-r--r--qpid/java/management/agent/build.xml27
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java706
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/AgentException.java45
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/EventSeverity.java27
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedEJB.java138
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObject.java52
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObjectBase.java72
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedPOJO.java90
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFAgent.java34
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFEvent.java42
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFHide.java39
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFObject.java42
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFProperty.java39
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFSeeAlso.java40
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFType.java42
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingContext.java213
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingException.java50
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingUtils.java137
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java601
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/EnumBinding.java108
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ListBinding.java131
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java95
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MethodBinding.java91
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ParameterBinding.java121
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/PropertyBinding.java131
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/QMFTypeBinding.java465
-rw-r--r--qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/TypeBinding.java46
-rw-r--r--qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Crumpet.java70
-rw-r--r--qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Muppet.java113
-rw-r--r--qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Pikelet.java52
-rw-r--r--qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Puppet.java29
32 files changed, 0 insertions, 3890 deletions
diff --git a/qpid/java/build.deps b/qpid/java/build.deps
index 4700c92f74..3907b5a57a 100644
--- a/qpid/java/build.deps
+++ b/qpid/java/build.deps
@@ -68,7 +68,6 @@ broker.libs=${commons-cli} ${commons-logging} ${log4j} ${slf4j-log4j} \
broker-plugins.libs=${felix.libs} ${log4j} ${commons-configuration.libs}
-management-agent.libs=${commons-logging}
management-console.libs=${commons-logging}
junit-toolkit.libs=${log4j} ${junit} ${slf4j-api}
@@ -151,7 +150,6 @@ broker-plugins.test.libs=${test.libs}
broker-plugins-experimental-info.test.libs=${test.libs} ${servlet-api} ${jetty} ${jetty-util} ${jetty-servlet-tester}
management-console.test.libs=${junit4} ${slf4j-log4j} ${log4j}
-management-agent.test.libs=${junit}
management-eclipse-plugin.test.libs=${systests.libs}
management-tools-qpid-cli.test.libs=${junit4} ${slf4j-log4j} ${log4j}
management-common.test.libs=${test.libs}
diff --git a/qpid/java/management/agent/build.xml b/qpid/java/management/agent/build.xml
deleted file mode 100644
index a410c74c1f..0000000000
--- a/qpid/java/management/agent/build.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<project name="QMF Agent" default="build">
-
- <property name="module.depends" value="common client"/>
-
- <import file="../../module.xml"/>
-
-</project>
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java
deleted file mode 100644
index b1a4a8c93e..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/Agent.java
+++ /dev/null
@@ -1,706 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import javax.jms.BytesMessage;
-import javax.jms.Destination;
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageListener;
-import javax.jms.MessageProducer;
-import javax.jms.Queue;
-import javax.jms.Session;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.agent.binding.BindingContext;
-import org.apache.qpid.agent.binding.BindingUtils;
-import org.apache.qpid.agent.binding.ClassBinding;
-import org.apache.qpid.agent.binding.BindingException;
-import org.apache.qpid.agent.binding.MethodBinding;
-import org.apache.qpid.agent.binding.ParameterBinding;
-import org.apache.qpid.agent.binding.PropertyBinding;
-import org.apache.qpid.agent.binding.TypeBinding;
-import org.apache.qpid.client.AMQConnection;
-import org.apache.qpid.transport.codec.BBDecoder;
-import org.apache.qpid.transport.codec.BBEncoder;
-import org.apache.qpid.transport.codec.Decoder;
-
-/**
- * The main class for interacting with the QMF bus. Objects which are to be
- * managed can be registered with the agent, as can classes to be exposed via
- * the schema.
- */
-public class Agent implements MessageListener
-{
- // The following are settings to configure the Agent
- protected AMQConnection connection;
- protected boolean sessionTransacted = false;
- protected int acknowledgeMode = Session.AUTO_ACKNOWLEDGE;
- protected String label;
- protected UUID systemId;
- // this list holds the objects until the agent is started
- protected List managedObjects = new ArrayList();
- protected List registeredClasses = new ArrayList();
- // The following instance variables are not
- // able to be set by the end user.
- protected Session session;
- protected MessageProducer prod;
- protected MessageConsumer cons;
- protected Queue reply;
- protected BindingContext bctx = new BindingContext();
- protected Map<Long, ManagedObject> objects = new Hashtable<Long, ManagedObject>();
- protected long bbank;
- protected long abank;
- protected static final Log log = LogFactory.getLog(Agent.class);
- protected volatile boolean inside = false;
- protected ClassLoader classLoader = null;
-
- public Agent()
- {
- systemId = UUID.randomUUID();
- log.debug(String.format("Agent with uid %s created", systemId
- .toString()));
- }
-
- public Agent(String label, UUID systemId)
- {
- this.systemId = systemId;
- this.label = label;
- log.debug(String.format("Agent with name %s and uid %s created", label,
- systemId.toString()));
- }
-
- public void register(ManagedObject managedObject)
- {
- Class managedClass = managedObject.getObjectClass();
- long id = managedObject.getId();
- ClassBinding cb = bctx.register(managedClass);
- managedObject.setManagedClassName(cb.getName());
- managedObject.setManagedPackageName(cb.getPackage());
- log.debug(String.format(
- "Added managed object id '%d' for package '%s' class '%s'", id,
- managedObject.getManagedPackageName(), managedObject
- .getManagedClassName()));
- objects.put(id, managedObject);
- managedObjects.add(managedObject);
- }
-
- public void registerClass(Class cls)
- {
- bctx.register(cls);
- if (!registeredClasses.contains(cls))
- {
- registeredClasses.add(cls);
- }
- }
-
- /**
- * Stops the agents connection to the bus
- */
- public void stop()
- {
- try
- {
- cons.close();
- prod.close();
- connection.stop();
- connection.close();
- session.close();
- } catch (JMSException e)
- {
- log.error("Exception:", e);
- }
- }
-
- /**
- * Starts up the agent. Many bean containers may call this by default which
- * aids in deployment
- */
- public void start()
- {
- log.debug(String.format("Agent with uid %s and name %s starting",
- systemId.toString(), label));
- for (Object clsName : registeredClasses.toArray())
- {
- try
- {
- Class cls = null;
- if (String.class.isAssignableFrom(clsName.getClass()))
- {
- cls = getClass(clsName.toString());
- } else
- {
- cls = (Class) clsName;
- }
- this.registerClass(cls);
- } catch (Exception e)
- {
- log.error("Could not register class " + clsName);
- }
- }
- for (Object obj : managedObjects.toArray())
- {
- this.register((ManagedObject) obj);
- }
- try
- {
- session = connection.createSession(sessionTransacted,
- acknowledgeMode);
- reply = session
- .createQueue(String
- .format(
- "direct://amq.direct//%s-%s?exclusive='True'&autodelete='True'",
- label, systemId));
- cons = session.createConsumer(reply);
- cons.setMessageListener(this);
- prod = session.createProducer(null);
- } catch (JMSException e)
- {
- throw new AgentException(e);
- }
- attachRequest(label, systemId);
- try
- {
- connection.start();
- } catch (JMSException e)
- {
- throw new AgentException(e);
- }
- }
-
- /**
- * Send an event object to the bus
- */
- public void raiseEvent(Object value, EventSeverity sev)
- {
- log.debug(String.format("Sending event of class %s with Severity %s",
- value.getClass(), sev.ordinal()));
- BBEncoder enc = this.init('e');
- ClassBinding cb = bctx.getClassBinding(value.getClass());
- String pkg = cb.getPackage();
- String cls = cb.getName();
- enc.writeStr8(pkg);
- enc.writeStr8(cls);
- enc.writeBin128(cb.getSchemaHash());
- long now = System.currentTimeMillis() * 1000000;
- enc.writeInt64(now);
- enc.writeUint8((short) sev.ordinal());
- for (PropertyBinding p : cb.getProperties())
- {
- p.getType().encode(enc, BindingUtils.get(p, value));
- }
- send(
- String.format("console.event.%d.%d.%s.%s", bbank, abank, pkg,
- cls), enc);
- }
-
- public void onMessage(Message message)
- {
- if (inside)
- {
- new Throwable().printStackTrace();
- }
- inside = true;
- Decoder dec = readBody(message);
- Destination replyTo;
- try
- {
- replyTo = message.getJMSReplyTo();
- } catch (JMSException e)
- {
- throw new AgentException(e);
- }
- byte[] magic = dec.readBytes(3);
- if (magic[0] != 'A' || magic[1] != 'M' || magic[2] != '2')
- {
- throw new AgentException("bad magic: " + new String(magic));
- }
- short op = dec.readUint8();
- long seq = dec.readUint32();
- log.debug("Message recieved: " + (char) op);
- switch (op)
- {
- case 'a':
- this.handleAgentAttach(seq, replyTo, dec);
- break;
- case 'G':
- this.handleGetQuery(seq, replyTo, dec);
- break;
- case 'M':
- this.handleMethodRequest(seq, replyTo, dec);
- break;
- case 'S':
- this.handleSchemaRequest(seq, replyTo, dec);
- break;
- case 'x':
- // TODO
- break;
- default:
- throw new IllegalArgumentException("opcode: " + ((char) op));
- }
- inside = false;
- }
-
- protected ClassBinding getClassBinding(ManagedObject mobj)
- {
- return bctx.getClassBinding(mobj.getObjectClass());
- }
-
- private byte[] ensure(int capacity, byte[] body, int size)
- {
- if (capacity > body.length)
- {
- byte[] copy = new byte[capacity];
- System.arraycopy(body, 0, copy, 0, size);
- body = copy;
- }
- return body;
- }
-
- private Decoder readBody(Message message)
- {
- BytesMessage msg = (BytesMessage) message;
- BBDecoder dec = new BBDecoder();
- byte[] buf = new byte[1024];
- byte[] body = new byte[1024];
- int size = 0;
- int n;
- try
- {
- while ((n = msg.readBytes(buf)) > 0)
- {
- body = ensure(size + n, body, size);
- System.arraycopy(buf, 0, body, size, n);
- size += n;
- }
- } catch (JMSException e)
- {
- throw new AgentException(e);
- }
- dec.init(ByteBuffer.wrap(body, 0, size));
- return dec;
- }
-
- protected void handleAgentAttach(long seq, Destination replyTo, Decoder dec)
- {
- log.debug("Agent Attach Message");
- bbank = dec.readUint32();
- abank = dec.readUint32();
- try
- {
- MessageConsumer mc = session
- .createConsumer(session
- .createQueue(String
- .format(
- "management://qpid.management//%s-%s?routingkey='agent.%d.%d'&exclusive='True'&autodelete='True'",
- label, systemId, bbank, abank)));
- mc.setMessageListener(this);
- } catch (JMSException e)
- {
- throw new AgentException(e);
- }
- for (String packageName : bctx.getPackages())
- {
- packageIndication(packageName);
- }
- for (ClassBinding cb : bctx.getAllBindings())
- {
- classIndication(cb);
- }
- for (ManagedObject mo : objects.values())
- {
- content('i', seq, null, mo);
- }
- }
-
- protected void handleMethodRequest(long seq, Destination replyTo,
- Decoder dec)
- {
- dec.readUint64(); // first part of object-id
- long id = dec.readUint64();
- ManagedObject mo = objects.get(id);
- if (mo == null)
- {
- methodResponse(seq, replyTo, 1, String.format(
- "no such object: 0x%x", id));
- } else
- {
- dec.readStr8(); // pkg
- dec.readStr8(); // cls
- dec.readBin128(); // hash
- String mname = dec.readStr8();
- ClassBinding cls = getClassBinding(mo);
- MethodBinding method = cls.getMethod(mname);
- if (method == null)
- {
- methodResponse(seq, replyTo, 2, String.format(
- "no such method: %s", mname));
- } else
- {
- log.trace("Handle method: " + method.getName());
- List<ParameterBinding> params = method.getInParameters();
- Object[] args = new Object[params.size()];
- int idx = 0;
- for (ParameterBinding p : params)
- {
- TypeBinding typeBinding = p.getType();
- log
- .trace(String
- .format(
- "Decoding parameter with type %s ref package %s ref class %s ",
- typeBinding.getCode(), typeBinding
- .getRefPackage(),
- typeBinding.getRefClass()));
- args[idx++] = typeBinding.decode(dec);
- log.trace("Done");
- }
- try
- {
- Object[] result = mo.invoke(method, args);
- methodResponse(seq, replyTo, 0, null, method, result);
- } catch (BindingException ex)
- {
- log
- .error(
- String
- .format(
- "An exception occured invoking method %s. Stack trace sent to console.",
- method.getName()), ex);
- StringWriter str = new StringWriter();
- PrintWriter writer = new PrintWriter(str);
- ex.printStackTrace(writer);
- writer.flush();
- methodResponse(seq, replyTo, 7, str.toString());
- }
- log.trace("Done with method: " + method.getName());
- }
- }
- }
-
- protected void handleGetQuery(long seq, Destination replyTo, Decoder dec)
- {
- Map<String, Object> data = dec.readMap();
- if (data.containsKey("_objectid"))
- {
- long objId = (Long) data.get("_objectid");
- log.debug("Get Request message for object id " + objId);
- ManagedObject mo = objects.get(objId);
- if (mo == null)
- {
- methodResponse(seq, replyTo, 1, String.format(
- "no such object: 0x%x", objId));
- } else
- {
- content('g', seq, replyTo, mo);
- }
- } else if (data.containsKey("_class"))
- {
- String className = (String) data.get("_class");
- String packageName = (String) data.get("_package");
- log.debug(String.format(
- "Get Request message for package '%s' class '%s'",
- packageName, className));
- for (ManagedObject mo : objects.values())
- {
- if (mo.getManagedClassName().equals(className))
- {
- if ((packageName == null) || packageName.equals("")
- || packageName.equals(mo.getManagedPackageName()))
- {
- content('g', seq, replyTo, mo);
- }
- }
- }
- } else
- {
- for (ManagedObject mo : objects.values())
- {
- content('g', seq, replyTo, mo);
- }
- }
- complete(seq, replyTo);
- }
-
- protected void handleSchemaRequest(long seq, Destination replyTo,
- Decoder dec)
- {
- String pkg = dec.readStr8();
- String cls = dec.readStr8();
- log.debug(String.format(
- "SchemaRequest message for package '%s' class '%s'", pkg, cls));
- ClassBinding cb = bctx.getClassBinding(pkg, cls);
- if (cb == null)
- {
- throw new AgentException("no such class: " + pkg + ", " + cls);
- }
- schemaResponse(seq, cb);
- }
-
- protected BBEncoder init(char opcode)
- {
- return init(opcode, 0);
- }
-
- protected BBEncoder init(char opcode, long sequence)
- {
- BBEncoder enc = new BBEncoder(1024);
- enc.init();
- enc.writeUint8((short) 'A');
- enc.writeUint8((short) 'M');
- enc.writeUint8((short) '2');
- enc.writeUint8((short) opcode);
- enc.writeUint32(sequence);
- return enc;
- }
-
- protected void send(BBEncoder enc)
- {
- send("broker", enc);
- }
-
- protected void send(Destination dest, BBEncoder enc)
- {
- try
- {
- byte[] buf = new byte[1024];
- BytesMessage msg = session.createBytesMessage();
- ByteBuffer slice = enc.segment();
- while (slice.hasRemaining())
- {
- int n = Math.min(buf.length, slice.remaining());
- slice.get(buf, 0, n);
- msg.writeBytes(buf, 0, n);
- }
- msg.setJMSReplyTo(reply);
- // ???: I assume this is thread safe.
- prod.send(dest, msg);
- } catch (JMSException e)
- {
- throw new AgentException(e);
- }
- }
-
- protected void send(String routingKey, BBEncoder enc)
- {
- try
- {
- send(session
- .createQueue("management://qpid.management//?routingkey='"
- + routingKey + "'"), enc);
- } catch (JMSException e)
- {
- throw new AgentException(e);
- }
- }
-
- protected void attachRequest(String label, UUID systemId)
- {
- BBEncoder enc = init('A');
- enc.writeStr8(label);
- enc.writeUuid(systemId);
- enc.writeUint32(0);
- enc.writeUint32(0);
- send(enc);
- }
-
- protected void packageIndication(String pkg)
- {
- BBEncoder enc = init('p');
- enc.writeStr8(pkg);
- send(enc);
- }
-
- protected void classIndication(ClassBinding cb)
- {
- BBEncoder enc = init('q');
- enc.writeUint8(cb.getKind());
- enc.writeStr8(cb.getPackage());
- enc.writeStr8(cb.getName());
- enc.writeBin128(cb.getSchemaHash()); // schema hash?
- send(enc);
- }
-
- protected void schemaResponse(long seq, ClassBinding cb)
- {
- BBEncoder enc = init('s', seq);
- cb.encode(enc);
- send(enc);
- }
-
- protected void content(char c, long seq, Destination dest, ManagedObject mo)
- {
- BBEncoder enc = init(c, seq);
- ClassBinding cb = getClassBinding(mo);
- String pkg = cb.getPackage();
- String cls = cb.getName();
- enc.writeStr8(pkg);
- enc.writeStr8(cls);
- enc.writeBin128(cb.getSchemaHash());
- long now = System.currentTimeMillis() * 1000000;
- enc.writeUint64(now);
- enc.writeUint64(now);
- enc.writeUint64(0);
- enc.writeUint64(0x0000FFFFFFFFFFFFL & ((bbank << 28) | abank));
- enc.writeUint64(mo.getId());
- for (PropertyBinding p : cb.getProperties())
- {
- p.getType().encode(enc, mo.get(p));
- }
- if (dest == null)
- {
- send(String.format("console.obj.%d.%d.%s.%s", bbank, abank, pkg,
- cls), enc);
- } else
- {
- send(dest, enc);
- }
- }
-
- protected void complete(long seq, Destination dest)
- {
- BBEncoder enc = init('z', seq);
- enc.writeUint32(0);
- enc.writeStr8("");
- send(dest, enc);
- }
-
- protected void methodResponse(long seq, Destination dest, int status,
- String text)
- {
- methodResponse(seq, dest, status, text, null, null);
- }
-
- protected void methodResponse(long seq, Destination dest, int status,
- String text, MethodBinding method, Object[] result)
- {
- BBEncoder enc = init('m', seq);
- enc.writeUint32(status);
- enc.writeStr16(text == null ? "" : text);
- if (method != null)
- {
- int idx = 0;
- for (ParameterBinding p : method.getOutParameters())
- {
- p.getType().encode(enc, result[idx++]);
- }
- }
- send(dest, enc);
- }
-
- protected Class getClass(String className)
- {
- try
- {
- if (classLoader != null)
- {
- return classLoader.loadClass(className);
- } else
- {
- return Class.forName(className);
- }
- } catch (ClassNotFoundException e)
- {
- throw new AgentException(String.format(
- "No class named %s was found", className), e);
- }
- }
-
- public String getLabel()
- {
- return label;
- }
-
- public void setLabel(String label)
- {
- this.label = label;
- }
-
- public AMQConnection getConnection()
- {
- return connection;
- }
-
- public void setConnection(AMQConnection connection)
- {
- this.connection = connection;
- }
-
- public boolean isSessionTransacted()
- {
- return sessionTransacted;
- }
-
- public void setSessionTransacted(boolean sessionTransacted)
- {
- this.sessionTransacted = sessionTransacted;
- }
-
- public void setManagedObjects(List objectList)
- {
- this.managedObjects = objectList;
- }
-
- public List getManagedObjects()
- {
- return managedObjects;
- }
-
- public void setRegisteredClasses(List objectList)
- {
- this.registeredClasses = objectList;
- }
-
- public List getRegisteredClasses()
- {
- return this.registeredClasses;
- }
-
- public static void main(String[] args) throws Exception
- {
- String broker = args[0];
- String name = args[1];
- String url = String.format(
- "amqp://guest:guest@/?brokerlist='tcp://%s'", broker);
- AMQConnection conn = new AMQConnection(url);
- Agent agent = new Agent(name, UUID.randomUUID());
- agent.setConnection(conn);
- for (int i = 2; i < args.length; i++)
- {
- Class<?> cls = Class.forName(args[i]);
- agent.register(new ManagedPOJO(cls.newInstance()));
- }
- agent.start();
- while (true)
- {
- Thread.sleep(1000);
- }
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/AgentException.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/AgentException.java
deleted file mode 100644
index 410cad2d8c..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/AgentException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-/**
- * AgentException
- *
- */
-public class AgentException extends RuntimeException
-{
- private static final long serialVersionUID = 1L;
-
- public AgentException(String msg)
- {
- super(msg);
- }
-
- public AgentException(Throwable t)
- {
- super(t);
- }
-
- public AgentException(String msg, Throwable t)
- {
- super(msg, t);
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/EventSeverity.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/EventSeverity.java
deleted file mode 100644
index 28735286c4..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/EventSeverity.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.apache.qpid.agent;
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-
-public enum EventSeverity
-{
- EMERGENCY, ALERT, CRIT, ERROR, WARN, NOTICE, INFO, DEBUG
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedEJB.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedEJB.java
deleted file mode 100644
index 60efb1e284..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedEJB.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.agent.binding.BindingUtils;
-import org.apache.qpid.agent.binding.MethodBinding;
-import org.apache.qpid.agent.binding.PropertyBinding;
-
-/**
- * Wrapper classe for adding EJBS which are to be managed by the QMF Agent. The
- * jndi location and the public interface to exposed are used to generate the
- * schema.
- */
-public class ManagedEJB extends ManagedObjectBase
-{
- private Log log = LogFactory.getLog(ManagedEJB.class);
- protected String className;
- protected String jndiLocation;
- protected ClassLoader classLoader;
-
- protected Object getEJB()
- {
- ClassLoader previousCL = Thread.currentThread().getContextClassLoader();
- try
- {
- if (classLoader != null)
- {
- Thread.currentThread().setContextClassLoader(classLoader);
- }
- InitialContext ctx = new InitialContext();
- return ctx.lookup(jndiLocation);
- } catch (NamingException e)
- {
- throw new AgentException("Error looking up EJB at " + jndiLocation,
- e);
- } finally
- {
- Thread.currentThread().setContextClassLoader(previousCL);
- }
- }
-
- @Override
- public Object get(PropertyBinding property)
- {
- return BindingUtils.get(property, this.getEJB());
- }
-
- @Override
- public long getId()
- {
- return System.identityHashCode(this);
- }
-
- @Override
- public Class getObjectClass()
- {
- try
- {
- if (classLoader != null)
- {
- log.debug("Using the classloader");
- return classLoader.loadClass(className);
- } else
- {
- return Class.forName(className);
- }
- } catch (ClassNotFoundException e)
- {
- throw new AgentException(String.format(
- "No class named %s was found", className), e);
- }
- }
-
- @Override
- public Object[] invoke(MethodBinding method, Object... args)
- {
- return BindingUtils.invoke(method, this.getEJB(), args);
- }
-
- @Override
- public void set(PropertyBinding property, Object value)
- {
- BindingUtils.set(property, value, this.getEJB());
- }
-
- public String getClassName()
- {
- return className;
- }
-
- public void setClassName(String className)
- {
- this.className = className;
- }
-
- public String getJndiLocation()
- {
- return jndiLocation;
- }
-
- public void setJndiLocation(String jndiLocation)
- {
- this.jndiLocation = jndiLocation;
- }
-
- public ClassLoader getClassLoader()
- {
- return classLoader;
- }
-
- public void setClassLoader(ClassLoader cloader)
- {
- this.classLoader = cloader;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObject.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObject.java
deleted file mode 100644
index aa3bbf3894..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObject.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-import org.apache.qpid.agent.binding.MethodBinding;
-import org.apache.qpid.agent.binding.PropertyBinding;
-
-/**
- * Objects which are to be managed and controlled by the QMF Agent.
- */
-public interface ManagedObject
-{
- public abstract long getId();
-
- public abstract Class getObjectClass();
-
- public abstract Object get(PropertyBinding property);
-
- public abstract void set(PropertyBinding property, Object value);
-
- public abstract Object[] invoke(MethodBinding method, Object... args);
-
- public abstract String getName();
-
- public abstract void setName(String name);
-
- public String getManagedClassName();
-
- public String getManagedPackageName();
-
- public void setManagedClassName(String aName);
-
- public void setManagedPackageName(String aName);
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObjectBase.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObjectBase.java
deleted file mode 100644
index 51789ae11f..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedObjectBase.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.agent.binding.MethodBinding;
-import org.apache.qpid.agent.binding.PropertyBinding;
-
-public abstract class ManagedObjectBase implements ManagedObject
-{
- private static Log log = LogFactory.getLog(ManagedObjectBase.class);
- protected String name;
- protected String managedClassName;
- protected String managedPackageName;
-
- public abstract long getId();
-
- public abstract Object get(PropertyBinding property);
-
- public abstract void set(PropertyBinding property, Object value);
-
- public abstract Object[] invoke(MethodBinding method, Object... args);
-
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name = name;
- }
-
- public String getManagedClassName()
- {
- return managedClassName;
- }
-
- public void setManagedClassName(String managedClassName)
- {
- this.managedClassName = managedClassName;
- }
-
- public String getManagedPackageName()
- {
- return managedPackageName;
- }
-
- public void setManagedPackageName(String managedPackageName)
- {
- this.managedPackageName = managedPackageName;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedPOJO.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedPOJO.java
deleted file mode 100644
index 94d9b9d0a8..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/ManagedPOJO.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.agent.binding.BindingUtils;
-import org.apache.qpid.agent.binding.MethodBinding;
-import org.apache.qpid.agent.binding.PropertyBinding;
-
-/**
- * Wrapper classe for adding POJOS which are to be managed by the QMF Agent.
- */
-public class ManagedPOJO extends ManagedObjectBase implements ManagedObject
-{
- private Log log = LogFactory.getLog(ManagedPOJO.class);
- private Object managed;
-
- public ManagedPOJO()
- {
- super();
- }
-
- public ManagedPOJO(Object managed)
- {
- super();
- this.setManaged(managed);
- }
-
- @Override
- public long getId()
- {
- if (managed == null)
- {
- throw new AgentException("The managed object is null");
- }
- return System.identityHashCode(managed);
- }
-
- public Class getObjectClass()
- {
- return managed.getClass();
- }
-
- public Object getManaged()
- {
- return managed;
- }
-
- public void setManaged(Object managed)
- {
- this.managed = managed;
- }
-
- @Override
- public Object get(PropertyBinding property)
- {
- return BindingUtils.get(property, managed);
- }
-
- @Override
- public Object[] invoke(MethodBinding method, Object... args)
- {
- return BindingUtils.invoke(method, managed, args);
- }
-
- @Override
- public void set(PropertyBinding property, Object value)
- {
- BindingUtils.set(property, value, managed);
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFAgent.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFAgent.java
deleted file mode 100644
index b9fcf40fc1..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFAgent.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.annotations;
-
-import java.lang.annotation.Target;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-@Target(ElementType.FIELD)
-@Retention(RUNTIME)
-@Documented
-public @interface QMFAgent
-{
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFEvent.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFEvent.java
deleted file mode 100644
index 314f2a7e68..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFEvent.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.annotations;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Tells the QMF Agent that this object will be passed as a QMF event. This will
- * cause only properties to be sent across the wire.
- */
-@Target(TYPE)
-@Retention(RUNTIME)
-@Documented
-public @interface QMFEvent
-{
- String eventName();
-
- String packageName();
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFHide.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFHide.java
deleted file mode 100644
index db6cb0412f..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFHide.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.annotations;
-
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Causes the property which is annotated to not be added to the QMF schema when
- * it is built.
- */
-@Target(ElementType.METHOD)
-@Retention(RUNTIME)
-@Documented
-public @interface QMFHide
-{
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFObject.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFObject.java
deleted file mode 100644
index 7d1713cdbe..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFObject.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.annotations;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Tells the QMF Agent that this object will be a managed object. This will
- * allow users to query for it, as well as invoke methods on it.
- */
-@Target(TYPE)
-@Retention(RUNTIME)
-@Documented
-public @interface QMFObject
-{
- String className();
-
- String packageName();
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFProperty.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFProperty.java
deleted file mode 100644
index f309fa95b5..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFProperty.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.annotations;
-
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Controls the QMF schema which is generated for this property.
- */
-@Target(ElementType.FIELD)
-@Retention(RUNTIME)
-@Documented
-public @interface QMFProperty
-{
- boolean optional() default false;
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFSeeAlso.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFSeeAlso.java
deleted file mode 100644
index bb9b87805d..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFSeeAlso.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.annotations;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Augements the schema generation process to look for known subclasses of a
- * type. Modeled after the JAXB @XMLSeeAlso.
- */
-@Target(TYPE)
-@Retention(RUNTIME)
-@Documented
-public @interface QMFSeeAlso
-{
- Class[] value();
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFType.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFType.java
deleted file mode 100644
index 8da1e15124..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/annotations/QMFType.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.annotations;
-
-import static java.lang.annotation.ElementType.TYPE;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-/**
- * Tells the QMF Agent that this object will be a type only This will cause only
- * properties to be sent across the wire.
- */
-@Target(TYPE)
-@Retention(RUNTIME)
-@Documented
-public @interface QMFType
-{
- String className();
-
- String packageName();
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingContext.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingContext.java
deleted file mode 100644
index a60178e8b9..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingContext.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.agent.annotations.QMFEvent;
-import org.apache.qpid.agent.annotations.QMFObject;
-import org.apache.qpid.agent.annotations.QMFSeeAlso;
-import org.apache.qpid.agent.annotations.QMFType;
-
-/**
- * Contains the mappings from java classes to QMF schema and back. There is one
- * context per agent, and it contains all the metadata.
- */
-public class BindingContext
-{
- private static Log log = LogFactory.getLog(BindingContext.class);
- private Map<Key, ClassBinding> classes = new Hashtable<Key, ClassBinding>();
- private ArrayList<String> packages = new ArrayList<String>();
-
- static class Key
- {
- String packageName = "";
- String className = "";
- boolean object = false;
-
- @Override
- public int hashCode()
- {
- return (packageName + "." + className).hashCode();
- }
-
- @Override
- public boolean equals(Object obj)
- {
- return (obj instanceof Key
- && (((Key) obj).packageName.equals(packageName)) && (((Key) obj).className
- .equals(className)));
- }
- }
-
- public BindingContext()
- {
- Key key = new Key();
- key.className = "Object";
- key.packageName = "org.apache.qmf";
- key.object = false;
- ClassBinding cb = new ClassBinding("org.apache.qmf", "Object",
- Object.class, false, this);
- classes.put(key, cb);
- packages.add("org.apache.qmf");
- }
-
- public ClassBinding getClassBinding(Class clazz)
- {
- return classes.get(getClassKey(clazz));
- }
-
- public ClassBinding getClassBinding(String packageName, String className)
- {
- Key key = new Key();
- key.packageName = packageName;
- key.className = className;
- return classes.get(key);
- }
-
- public ClassBinding register(Class cls)
- {
- String name = cls.getName();
- ClassBinding cb = getClassBinding(cls);
- if (cb == null)
- {
- Key key = getClassKey(cls);
- // Create and store the internal representations
- if (cls.isEnum())
- {
- cb = new EnumBinding(key.packageName, key.className, cls,
- key.object, this);
- } else
- {
- cb = new ClassBinding(key.packageName, key.className, cls,
- key.object, this);
- }
- log.debug(String.format(
- "Added class binding '%s' in package %s for class %s'",
- key.className, key.packageName, cls.getCanonicalName()));
- classes.put(key, cb);
- if (!packages.contains(key.packageName))
- {
- packages.add(key.packageName);
- }
- // Parse the methods after adding the class to avoid recursion
- cb.parse();
- // See if there are other classes which should be looked at
- QMFSeeAlso seeAlso = (QMFSeeAlso) cls
- .getAnnotation(QMFSeeAlso.class);
- if (seeAlso != null)
- {
- for (Class seeAlsoCls : seeAlso.value())
- {
- this.register(seeAlsoCls);
- }
- }
- }
- return cb;
- }
-
- public TypeBinding getTypeBinding(Class cls)
- {
- // Look for a built in type
- TypeBinding type = QMFTypeBinding.forClass(cls);
- // Have we seen it before?
- if (type == null)
- {
- type = this.getClassBinding(cls);
- }
- if ((type == null) && List.class.isAssignableFrom(cls))
- {
- type = new ListBinding(this, cls);
- }
- if ((type == null) && Map.class.isAssignableFrom(cls))
- {
- type = new MapBinding(this, cls);
- }
- // Add it, but since we have not seen it before do not expose methods
- if (type == null)
- {
- type = this.register(cls);
- }
- return type;
- }
-
- // FIXME: Need to store these keys off so we dont create alot of objects
- protected Key getClassKey(Class cls)
- {
- Key key = new Key();
- QMFObject objAnnotation = (QMFObject) cls
- .getAnnotation(QMFObject.class);
- if (objAnnotation != null)
- {
- key.className = objAnnotation.className();
- key.packageName = objAnnotation.packageName();
- key.object = true;
- } else
- {
- QMFType typeAnnotation = (QMFType) cls.getAnnotation(QMFType.class);
- if (typeAnnotation != null)
- {
- key.className = typeAnnotation.className();
- key.packageName = typeAnnotation.packageName();
- } else
- {
- QMFEvent eventAnnotation = (QMFEvent) cls
- .getAnnotation(QMFEvent.class);
- if (eventAnnotation != null)
- {
- key.className = eventAnnotation.eventName();
- key.packageName = eventAnnotation.packageName();
- } else
- {
- // If this is Object, we return the fake
- // object value
- if (cls == Object.class)
- {
- key.className = "Object";
- key.packageName = "org.apache.qmf";
- } else
- {
- String name = cls.getName();
- int lastDot = name.lastIndexOf('.');
- key.className = name.substring(lastDot + 1);
- key.packageName = name.substring(0, lastDot);
- }
- }
- }
- }
- return key;
- }
-
- public ArrayList<String> getPackages()
- {
- return packages;
- }
-
- public Collection<ClassBinding> getAllBindings()
- {
- return classes.values();
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingException.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingException.java
deleted file mode 100644
index f8e436290c..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-/**
- * ManagedException
- *
- */
-public class BindingException extends RuntimeException
-{
- private static final long serialVersionUID = -7350845525748113340L;
-
- public BindingException(Throwable t)
- {
- super(t);
- }
-
- public BindingException()
- {
- super();
- }
-
- public BindingException(String message, Throwable cause)
- {
- super(message, cause);
- }
-
- public BindingException(String message)
- {
- super(message);
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingUtils.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingUtils.java
deleted file mode 100644
index 14f3fda0f1..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/BindingUtils.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.beans.BeanInfo;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-public class BindingUtils
-{
- private static Log log = LogFactory.getLog(BindingUtils.class);
-
- public static Object get(PropertyBinding property, Object managed)
- {
- String name = property.getName();
- return get(name, managed);
- }
-
- public static void set(PropertyBinding property, Object value,
- Object managed)
- {
- String name = property.getName();
- TypeBinding type = property.getType();
- try
- {
- Method meth = managed.getClass().getMethod(accessor("set", name),
- type.getJavaClass());
- meth.invoke(managed, value);
- } catch (NoSuchMethodException e)
- {
- throw new BindingException(e);
- } catch (IllegalAccessException e)
- {
- throw new BindingException(e);
- } catch (InvocationTargetException e)
- {
- throw new BindingException(e.getTargetException());
- }
- }
-
- public static Object[] invoke(MethodBinding method, Object managed,
- Object... args)
- {
- log.debug(String.format("Invoking %s on %s", method.getName(), managed
- .getClass()));
- List<ParameterBinding> in = method.getInParameters();
- List<ParameterBinding> out = method.getOutParameters();
- Class<?>[] classes = new Class<?>[in.size()];
- int idx = 0;
- for (ParameterBinding p : in)
- {
- classes[idx++] = p.getType().getJavaClass();
- }
- Object result;
- try
- {
- Method meth = managed.getClass().getMethod(method.getName(),
- classes);
- result = meth.invoke(managed, args);
- } catch (NoSuchMethodException e)
- {
- throw new BindingException(e);
- } catch (IllegalAccessException e)
- {
- throw new BindingException(e);
- } catch (InvocationTargetException e)
- {
- throw new BindingException(e.getTargetException());
- }
- Object[] results = new Object[out.size()];
- // XXX: need better way to distinguish this case
- if (out.size() == 1 && out.get(0).getName().equals("result"))
- {
- results[0] = result;
- } else
- {
- for (int i = 0; i < results.length; i++)
- {
- results[i] = get(out.get(i).getName(), result);
- }
- }
- return results;
- }
-
- public static String accessor(String pfx, String property)
- {
- return pfx + Character.toUpperCase(property.charAt(0))
- + property.substring(1);
- }
-
- public static Object get(String name, Object obj)
- {
- Object returnValue = null;
- try
- {
- BeanInfo info = Introspector.getBeanInfo(obj.getClass());
- PropertyDescriptor[] pds = info.getPropertyDescriptors();
- for (PropertyDescriptor pd : pds)
- {
- if (pd.getName().equals(name))
- {
- Method getMethod = pd.getReadMethod();
- returnValue = getMethod.invoke(obj);
- break;
- }
- }
- } catch (Exception e)
- {
- throw new BindingException(e);
- }
- return returnValue;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java
deleted file mode 100644
index 469939a52f..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ClassBinding.java
+++ /dev/null
@@ -1,601 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.agent.annotations.QMFEvent;
-import org.apache.qpid.agent.annotations.QMFObject;
-import org.apache.qpid.agent.annotations.QMFProperty;
-import org.apache.qpid.agent.annotations.QMFSeeAlso;
-import org.apache.qpid.agent.annotations.QMFType;
-import org.apache.qpid.agent.annotations.QMFHide;
-import org.apache.qpid.transport.codec.Decoder;
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Binding information from a custom java class to a QMF schema
- */
-public class ClassBinding implements TypeBinding
-{
- private static final Log log = LogFactory.getLog(ClassBinding.class);
-
- private static enum MethodType
- {
- READ_ONLY, READ_WRITE, METHOD, IGNORE
- }
-
- protected boolean exposeBehaviour = true;
- protected String pkg;
- protected BindingContext bctx;
- protected String name;
- protected ArrayList<PropertyBinding> properties = new ArrayList<PropertyBinding>();
- protected ArrayList<MethodBinding> methods = new ArrayList<MethodBinding>();
- protected Map<String, MethodBinding> methodsByName = new HashMap<String, MethodBinding>();
- protected Class javaClass;
- protected short kind = 1;
- protected byte hash[] = null;
- protected ClassBinding superType = null;
-
- public ClassBinding(String pkg, String name, Class cls,
- boolean exposeBehaviour, BindingContext bctx)
- {
- this.pkg = pkg;
- this.name = name;
- this.bctx = bctx;
- this.javaClass = cls;
- this.exposeBehaviour = exposeBehaviour;
- }
-
- protected MethodType classify(Class<?> cls, Method m)
- {
- String name = m.getName();
- MethodType returnValue = MethodType.METHOD;
- String propPrefixes[] =
- { "get", "is" };
- for (String prefix : propPrefixes)
- {
- if (name.startsWith(prefix) && m.getParameterTypes().length == 0)
- {
- try
- {
- Class<?> type = m.getReturnType();
- Method setter = cls.getMethod("set"
- + name.substring(prefix.length()), type);
- returnValue = MethodType.READ_WRITE;
- } catch (NoSuchMethodException e)
- {
- returnValue = MethodType.READ_ONLY;
- }
- break;
- }
- }
- return returnValue;
- }
-
- protected String property(Method m)
- {
- String name = m.getName();
- String propPrefixes[] =
- { "get", "is" };
- for (String prefix : propPrefixes)
- {
- if (name.startsWith(prefix) && m.getParameterTypes().length == 0)
- {
- String sfx = name.substring(prefix.length());
- return Character.toLowerCase(sfx.charAt(0)) + sfx.substring(1);
- }
- }
- // If we got here, it is n invalid property
- throw new IllegalArgumentException("" + m);
- }
-
- protected ArrayList<Method> getMethods(Class cls)
- {
- ArrayList returnValue = new ArrayList();
- ArrayList nameList = new ArrayList();
- if ((cls != null) && (!cls.equals(Object.class)))
- {
- for (Method m : cls.getDeclaredMethods())
- {
- if (m.getAnnotation(QMFHide.class) == null)
- // && (!Modifier.isAbstract(m.getModifiers())))
- {
- returnValue.add(m);
- nameList.add(m.getName());
- }
- }
- // Look at the superclass, if it is also a
- // QMF object then stop.
- if (!this.hasQMFSupertype(cls))
- {
- for (Method m : this.getMethods(cls.getSuperclass()))
- {
- if (!nameList.contains(m.getName()))
- {
- returnValue.add(m);
- nameList.add(m.getName());
- }
- }
- }
- }
- return returnValue;
- }
-
- protected boolean hasQMFSupertype(Class cls)
- {
- boolean returnValue = false;
- Class superType = cls.getSuperclass();
- if (superType != null)
- {
- if ((superType.getAnnotation(QMFObject.class) != null)
- || (superType.getAnnotation(QMFType.class) != null)
- || (superType.getAnnotation(QMFSeeAlso.class) != null)
- || (superType.getAnnotation(QMFEvent.class) != null))
- {
- returnValue = true;
- }
- }
- return returnValue;
- }
-
- protected boolean isOptional(Method m, TypeBinding type)
- {
- boolean returnValue = false;
- // Look for the annotaiton first
- QMFProperty ann = m.getAnnotation(QMFProperty.class);
- if (ann != null)
- {
- returnValue = ann.optional();
- } else
- {
- returnValue = type.optionalDefault();
- }
- return returnValue;
- }
-
- public ClassBinding parse()
- {
- log.debug(String.format(
- "Parsing class binding '%s' for package '%s' from class %s",
- name, pkg, javaClass.getName()));
- for (Method m : this.getMethods(javaClass))
- {
- String mname = m.getName();
- Class<?> type = m.getReturnType();
- switch (classify(javaClass, m))
- {
- case READ_ONLY:
- TypeBinding tb = bctx.getTypeBinding(type);
- boolean optional = isOptional(m, tb);
- properties.add(new PropertyBinding(property(m), tb,
- PropertyBinding.READ_ONLY, optional));
- break;
- case READ_WRITE:
- TypeBinding tbnd = bctx.getTypeBinding(type);
- boolean opt = isOptional(m, tbnd);
- properties.add(new PropertyBinding(property(m), tbnd,
- PropertyBinding.READ_WRITE, opt));
- break;
- case METHOD:
- // Only expose methods if told to
- if (exposeBehaviour)
- {
- List<ParameterBinding> params = new ArrayList<ParameterBinding>();
- int arg = 0;
- for (Class pcls : m.getParameterTypes())
- {
- params.add(new ParameterBinding("arg" + arg++, bctx
- .getTypeBinding(pcls), true, false));
- }
- if (type != void.class)
- {
- params.add(new ParameterBinding("result", bctx
- .getTypeBinding(type), false, true));
- }
- methods.add(new MethodBinding(mname, params));
- }
- break;
- case IGNORE:
- break;
- }
- }
- for (MethodBinding m : methods)
- {
- methodsByName.put(m.getName(), m);
- }
- QMFEvent eventAnnotation = (QMFEvent) javaClass
- .getAnnotation(QMFEvent.class);
- if (eventAnnotation != null)
- {
- kind = 2; // Event Type
- }
- // if (this.hasQMFSupertype(javaClass)) {
- if ((javaClass.getSuperclass() != Object.class)
- && (javaClass.getSuperclass() != null))
- {
- superType = bctx.register(javaClass.getSuperclass());
- }
- return this;
- }
-
- public String getPackage()
- {
- return pkg;
- }
-
- public String getName()
- {
- return name;
- }
-
- public List<PropertyBinding> getProperties()
- {
- return properties;
- }
-
- public List<PropertyBinding> getAllProperties()
- {
- if (this.superType == null)
- {
- return properties;
- } else
- {
- List<PropertyBinding> newList = new ArrayList<PropertyBinding>(
- properties);
- for (PropertyBinding p : superType.getAllProperties())
- {
- if (!newList.contains(p))
- {
- newList.add(p);
- }
- }
- return newList;
- }
- }
-
- public List<MethodBinding> getMethods()
- {
- return methods;
- }
-
- public MethodBinding getMethod(String name)
- {
- return methodsByName.get(name);
- }
-
- // Use this format
- // bytes value
- // 0-3 package name
- // 4-7 class name
- // 8-11 property signature hash
- // 12-15 method signature hash
- // FIXME: Hash codes seem to mess things up
- public byte[] getSchemaHash()
- {
- if (null == hash)
- {
- hash = new byte[16];
- StringBuilder blder = new StringBuilder();
- int packageHash = pkg.hashCode();
- int classHash = name.hashCode();
- int propertyHash = 0;
- int methodHash = 0;
- for (PropertyBinding p : properties)
- {
- blder.append(p.getName()).append(":").append(
- p.getType().getCode()).append(":")
- .append(p.getAccess()).append(":").append(
- p.isOptional());
- }
- propertyHash = blder.toString().hashCode();
- blder = new StringBuilder();
- for (MethodBinding m : methods)
- {
- blder.append(m.getName());
- for (ParameterBinding p : m.getParameters())
- {
- String direction = p.isIn() ? "in" : "out";
- blder.append(":").append(p.getName()).append(":").append(
- direction).append(":")
- .append(p.getType().getCode());
- }
- }
- methodHash = blder.toString().hashCode();
- hash[0] = (byte) (packageHash >> 24);
- hash[1] = (byte) (packageHash >> 16);
- hash[2] = (byte) (packageHash >> 8);
- hash[3] = (byte) (packageHash);
- hash[4] = (byte) (classHash >> 24);
- hash[5] = (byte) (classHash >> 16);
- hash[6] = (byte) (classHash >> 8);
- hash[7] = (byte) (classHash);
- hash[8] = (byte) (propertyHash >> 24);
- hash[9] = (byte) (propertyHash >> 16);
- hash[10] = (byte) (propertyHash >> 8);
- hash[11] = (byte) (propertyHash);
- hash[12] = (byte) (methodHash >> 24);
- hash[13] = (byte) (methodHash >> 16);
- hash[14] = (byte) (methodHash >> 8);
- hash[15] = (byte) (methodHash);
- }
- return hash;
- }
-
- public void encode(Encoder enc)
- {
- log.debug(String.format("encoding %s %s with superclass %s", this
- .getRefClass(), this.getRefPackage(), superType));
- enc.writeUint8(kind); // kind
- enc.writeStr8(pkg);
- enc.writeStr8(name);
- enc.writeBin128(this.getSchemaHash()); // schema hash
- // Send true (1) if we have a super-type
- //if (superType == null)
- //{
- // enc.writeUint8((short) 0);
- //} else
- //{
- // enc.writeUint8((short) 1);
- //}
- enc.writeUint16(properties.size());
- // Events do not have the method size sent
- if (kind == 1)
- {
- enc.writeUint16(0);
- enc.writeUint16(methods.size());
- }
- // Add the super type information if we have it
- //if (superType != null)
- //{
- // enc.writeStr8(superType.pkg);
- // enc.writeStr8(superType.name);
- // enc.writeBin128(superType.getSchemaHash()); // schema hash
- //}
- for (PropertyBinding p : properties)
- {
- log.trace("encoding property " + p.getName());
- p.encode(enc);
- }
- for (MethodBinding m : methods)
- {
- m.encode(enc);
- }
- }
-
- // Type Binding functions
- public short getCode()
- {
- return (short) 20;
- }
-
- public Class<?> getJavaClass()
- {
- return javaClass;
- }
-
- public Object decode(Decoder dec)
- {
- // FIXME This only works with POJOs
- short typeCode = dec.readUint8();
- log.trace("Type code: " + typeCode);
- if (typeCode == 20)
- {
- String packageName = dec.readStr8();
- String className = dec.readStr8();
- log
- .debug(String
- .format(
- "Decoding an object for package %s class %s with bindings for %s %s",
- packageName, className, this.pkg, this.name));
- byte schemaHash[] = dec.readBin128();
- // Check to see that this is me, and not a subclass
- if (packageName.equals(this.pkg) && className.equals(this.name))
- {
- return decodeWithNoHeaders(dec);
- } else
- {
- ClassBinding mcls = bctx
- .getClassBinding(packageName, className);
- return mcls.decodeWithNoHeaders(dec);
- }
- } else
- {
- TypeBinding tb = QMFTypeBinding.getType(typeCode);
- return tb.decode(dec);
- }
- }
-
- protected Object decodeWithNoHeaders(Decoder dec)
- {
- Object instance = null;
- try
- {
- log.trace("Creating a new instance of " + this.javaClass.getName());
- instance = this.javaClass.newInstance();
- } catch (Exception e)
- {
- log.error("Could not instantiate object of class"
- + this.javaClass.getName());
- throw new BindingException(e);
- }
- List<String> excludes = this.processPresenceMasks(dec);
- for (PropertyBinding p : getAllProperties())
- {
- if (!excludes.contains(p.getName()))
- {
- Object value = p.getType().decode(dec);
- BindingUtils.set(p, value, instance);
- }
- }
- return instance;
- }
-
- protected List<String> processPresenceMasks(Decoder dec)
- {
- List<String> excludes = new ArrayList<String>();
- short bit = 0;
- short mask = 0;
- for (PropertyBinding prop : properties)
- {
- if (prop.isOptional())
- {
- if (bit == 0)
- {
- mask = dec.readUint8();
- bit = 1;
- }
- if ((mask & bit) == 0)
- {
- log.trace("Going in exclude " + prop.getName());
- excludes.add(prop.getName());
- }
- bit *= 2;
- if (bit == 256)
- {
- bit = 0;
- }
- }
- }
- return excludes;
- }
-
- public void encode(Encoder enc, Object value)
- {
- // if the object is null, assume this is the
- // correct class
- if (value == null || (value.getClass().equals(this.javaClass)))
- {
- String pkg = getPackage();
- String cls = getName();
- log.debug(String.format("Encoding class %s:%s", pkg, cls));
- enc.writeUint8(this.getCode());
- enc.writeStr8(pkg);
- enc.writeStr8(cls);
- enc.writeBin128(this.getSchemaHash());
- short bit = 0;
- short mask = 0;
- if (value != null)
- {
- // Encode the property presence masks first.
- // if this is not an event
- if (!isEvent())
- {
- for (PropertyBinding p : getAllProperties())
- {
- if (p.isOptional())
- {
- Object pValue = BindingUtils.get(p, value);
- if (bit == 0)
- bit = 1;
- if (pValue != null)
- {
- mask |= bit;
- }
- if (bit == 128)
- {
- enc.writeUint8(mask);
- bit = 0;
- mask = 0;
- } else
- {
- bit = (short) (bit << 1);
- }
- }
- }
- if (bit != 0)
- {
- enc.writeUint8(mask);
- }
- }
- // Now put the actual properties
- for (PropertyBinding p : getAllProperties())
- {
- Object pValue = BindingUtils.get(p, value);
- if (!p.isOptional() || !(pValue == null))
- {
- log.trace(String.format("Encoding property %s", p
- .getName()));
- p.getType().encode(enc, pValue);
- }
- }
- }
- log.debug(String.format("Done with %s:%s", pkg, cls));
- } else
- {
- TypeBinding tb = bctx.getTypeBinding(value.getClass());
- if (tb == null)
- {
- throw new BindingException(String.format(
- "No class named %s defined for this context ", value
- .getClass()));
- } else
- {
- if (tb.isNative())
- {
- enc.writeUint8(tb.getCode());
- }
- tb.encode(enc, value);
- }
- }
- }
-
- public boolean isNative()
- {
- return false;
- }
-
- public boolean optionalDefault()
- {
- return true;
- }
-
- public String getRefClass()
- {
- return this.name;
- }
-
- public String getRefPackage()
- {
- return this.pkg;
- }
-
- public short getKind()
- {
- return kind;
- }
-
- public boolean isEvent()
- {
- return kind == 2;
- }
-
- public void setKind(short kind)
- {
- this.kind = kind;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/EnumBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/EnumBinding.java
deleted file mode 100644
index dcb619b736..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/EnumBinding.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.transport.codec.Decoder;
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Binding information from a java enum to a QMF schema
- */
-public class EnumBinding extends ClassBinding
-{
- private static Log log = LogFactory.getLog(EnumBinding.class);
-
- public EnumBinding(String pkg, String name, Class cls,
- boolean exposeBehaviour, BindingContext bctx)
- {
- super(pkg, name, cls, exposeBehaviour, bctx);
- }
-
- @Override
- public void encode(Encoder enc)
- {
- enc.writeUint8((short) 1); // kind
- enc.writeStr8(pkg);
- enc.writeStr8(name);
- enc.writeBin128(new byte[16]); // schema hash
- // FIXME Is there a way to send the valid types?
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- if (value != null)
- {
- enc.writeStr16(value.toString());
- } else
- {
- enc.writeStr16("");
- }
- }
-
- @Override
- public Object decode(Decoder dec)
- {
- // FIXME This only works with POJOs
- Object instance = null;
- String value = null;
- try
- {
- value = dec.readStr16();
- if ((value != null) && (!value.isEmpty()))
- {
- instance = Enum.valueOf((Class<Enum>) this.getJavaClass(),
- value);
- }
- } catch (Exception e)
- {
- log.error(String.format(
- "Could not create an enum of type %s with value %s",
- this.javaClass.getName(), value));
- throw new BindingException(e);
- }
- return instance;
- }
-
- // Make this look like a String
- @Override
- public short getCode()
- {
- return (short) 7;
- }
-
- @Override
- public EnumBinding parse()
- {
- log.debug(String.format(
- "Parsing enum binding '%s' for package '%s' from class %s",
- name, pkg, javaClass.getName()));
- return this;
- }
-
- @Override
- public boolean optionalDefault()
- {
- return false;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ListBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ListBinding.java
deleted file mode 100644
index a3658a812c..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ListBinding.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.nio.ByteBuffer;
-import java.util.List;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.transport.codec.BBDecoder;
-import org.apache.qpid.transport.codec.BBEncoder;
-import org.apache.qpid.transport.codec.Decoder;
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Binding information from a java list to a QMF schema.
- */
-public class ListBinding implements TypeBinding
-{
- private static Log log = LogFactory.getLog(ListBinding.class);
- protected BindingContext bctx;
- protected Class javaClass;
-
- public ListBinding(BindingContext bctx, Class javaClass)
- {
- this.bctx = bctx;
- this.javaClass = javaClass;
- }
-
- public void encode(Encoder enc, Object value)
- {
- List list = (List) value;
- BBEncoder newEncoder = new BBEncoder(10);
- if (list != null)
- {
- newEncoder.writeUint32(list.size());
- for (Object obj : list)
- {
- TypeBinding type = bctx.getTypeBinding(obj.getClass());
- newEncoder.writeUint8(type.getCode());
- type.encode(newEncoder, obj);
- }
- } else
- {
- newEncoder.writeUint32(0);
- }
- enc.writeVbin32(newEncoder.buffer().array());
- }
-
- public Object decode(Decoder dec)
- {
- List list = null;
- try
- {
- list = (List) javaClass.newInstance();
- } catch (Exception e)
- {
- throw new BindingException(
- "Could not create a List implementation for "
- + javaClass.getName(), e);
- }
- BBDecoder newDecoder = new BBDecoder();
- newDecoder.init(ByteBuffer.wrap(dec.readVbin32()));
- long count = newDecoder.readUint32();
- while (count > 0)
- {
- short typeCode = newDecoder.readUint8();
- TypeBinding type = QMFTypeBinding.getType(typeCode);
- if (type == null)
- {
- type = bctx.getTypeBinding(Object.class);
- }
- list.add(type.decode(newDecoder));
- count -= 1;
- }
- return list;
- }
-
- // QMF List Type
- public short getCode()
- {
- return (short) 21;
- }
-
- @Override
- public Class<?> getJavaClass()
- {
- return javaClass;
- }
-
- @Override
- public String getRefClass()
- {
- return null;
- }
-
- @Override
- public String getRefPackage()
- {
- return null;
- }
-
- @Override
- public boolean isNative()
- {
- return true;
- }
-
- public boolean optionalDefault()
- {
- return false;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java
deleted file mode 100644
index 02d562a59a..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MapBinding.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.nio.ByteBuffer;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.transport.codec.BBDecoder;
-import org.apache.qpid.transport.codec.BBEncoder;
-import org.apache.qpid.transport.codec.Decoder;
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Binding information from a java Map to a QMF schema.
- */
-public class MapBinding implements TypeBinding
-{
- private static Log log = LogFactory.getLog(MapBinding.class);
- protected BindingContext bctx;
- protected Class javaClass;
-
- public MapBinding(BindingContext bctx, Class javaClass)
- {
- this.bctx = bctx;
- this.javaClass = javaClass;
- }
-
- @SuppressWarnings("unchecked")
- public void encode(Encoder enc, Object value)
- {
- Map map = (Map) value;
- enc.writeMap(map);
- }
-
- public Object decode(Decoder dec)
- {
- Map map = dec.readMap();
- return map;
- }
-
- // QMF List Type
- public short getCode()
- {
- return (short) 15;
- }
-
- @Override
- public Class<?> getJavaClass()
- {
- return javaClass;
- }
-
- @Override
- public String getRefClass()
- {
- return null;
- }
-
- @Override
- public String getRefPackage()
- {
- return null;
- }
-
- @Override
- public boolean isNative()
- {
- return true;
- }
-
- public boolean optionalDefault()
- {
- return false;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MethodBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MethodBinding.java
deleted file mode 100644
index fc05c7393a..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/MethodBinding.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Metadata for mapping a method to a QMF schema
- */
-public class MethodBinding
-{
- private final String name;
- private final List<ParameterBinding> parameters;
- private final List<ParameterBinding> inParameters = new ArrayList<ParameterBinding>();
- private final List<ParameterBinding> outParameters = new ArrayList<ParameterBinding>();
- private Log log = LogFactory.getLog(MethodBinding.class);
-
- public MethodBinding(String name, List<ParameterBinding> parameters)
- {
- this.name = name;
- this.parameters = parameters;
- for (ParameterBinding p : parameters)
- {
- if (p.isIn())
- {
- inParameters.add(p);
- }
- if (p.isOut())
- {
- outParameters.add(p);
- }
- }
- }
-
- public String getName()
- {
- return name;
- }
-
- public List<ParameterBinding> getParameters()
- {
- return parameters;
- }
-
- public List<ParameterBinding> getInParameters()
- {
- return inParameters;
- }
-
- public List<ParameterBinding> getOutParameters()
- {
- return outParameters;
- }
-
- void encode(Encoder enc)
- {
- Map map = new HashMap();
- map.put("name", name);
- map.put("argCount", parameters.size());
- enc.writeMap(map);
- for (ParameterBinding p : parameters)
- {
- p.encode(enc);
- }
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ParameterBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ParameterBinding.java
deleted file mode 100644
index 7362976e0e..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/ParameterBinding.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Metadata for mapping a method argument to a QMF schema
- */
-public class ParameterBinding
-{
- private final String name;
- private final TypeBinding type;
- private final boolean in;
- private final boolean out;
-
- public ParameterBinding(String name, TypeBinding type, boolean in,
- boolean out)
- {
- this.name = name;
- this.type = type;
- this.in = in;
- this.out = out;
- }
-
- public String getName()
- {
- return name;
- }
-
- public TypeBinding getType()
- {
- return type;
- }
-
- public boolean isIn()
- {
- return in;
- }
-
- public boolean isOut()
- {
- return out;
- }
-
- void encode(Encoder enc)
- {
- Map map = new HashMap();
- map.put("name", name);
- map.put("type", type.getCode());
- map.put("dir", (in ? "I" : "") + (out ? "O" : ""));
- if (!type.isNative())
- {
- map.put("refClass", type.getRefClass());
- map.put("refPackage", type.getRefPackage());
- }
- enc.writeMap(map);
- }
-
- @Override
- public int hashCode()
- {
- final int prime = 31;
- int result = 1;
- result = prime * result + (in ? 1231 : 1237);
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + (out ? 1231 : 1237);
- result = prime * result + ((type == null) ? 0 : type.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- ParameterBinding other = (ParameterBinding) obj;
- if (in != other.in)
- return false;
- if (name == null)
- {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- if (out != other.out)
- return false;
- if (type == null)
- {
- if (other.type != null)
- return false;
- } else if (!type.equals(other.type))
- return false;
- return true;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/PropertyBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/PropertyBinding.java
deleted file mode 100644
index 604d66c818..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/PropertyBinding.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Metadata for mapping a java property (getter/setter) to a QMF schema
- */
-public class PropertyBinding
-{
- private static Log log = LogFactory.getLog(PropertyBinding.class);
- public final static int READ_CREATE = 1;
- public final static int READ_WRITE = 2;
- public final static int READ_ONLY = 3;
- private String name;
- private TypeBinding type;
- private int accessType;
- private boolean optional;
-
- public PropertyBinding(String name, TypeBinding type, int accessType,
- boolean optional)
- {
- this.name = name;
- this.type = type;
- this.accessType = accessType;
- this.optional = optional;
- }
-
- @Override
- public int hashCode()
- {
- final int prime = 31;
- int result = 1;
- result = prime * result + accessType;
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((type == null) ? 0 : type.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- PropertyBinding other = (PropertyBinding) obj;
- if (accessType != other.accessType)
- return false;
- if (name == null)
- {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- if (type == null)
- {
- if (other.type != null)
- return false;
- } else if (!type.equals(other.type))
- return false;
- return true;
- }
-
- public String getName()
- {
- return name;
- }
-
- public TypeBinding getType()
- {
- return type;
- }
-
- public int getAccess()
- {
- return accessType;
- }
-
- public boolean isIndex()
- {
- return false;
- }
-
- public boolean isOptional()
- {
- return optional;
- }
-
- void encode(Encoder enc)
- {
- Map map = new HashMap();
- map.put("name", name);
- map.put("type", type.getCode());
- map.put("access", getAccess());
- map.put("index", isIndex() ? 1 : 0);
- map.put("optional", isOptional() ? 1 : 0);
- if (!type.isNative())
- {
- map.put("refClass", type.getRefClass());
- map.put("refPackage", type.getRefPackage());
- }
- enc.writeMap(map);
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/QMFTypeBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/QMFTypeBinding.java
deleted file mode 100644
index 11ccf1b1a7..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/QMFTypeBinding.java
+++ /dev/null
@@ -1,465 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import org.apache.qpid.transport.codec.Decoder;
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Basic type mappings for QMF schema
- */
-public abstract class QMFTypeBinding implements TypeBinding
-{
- private static final Map<Class<?>, QMFTypeBinding> TYPES = new HashMap<Class<?>, QMFTypeBinding>();
- private static final Map<Short, QMFTypeBinding> TYPES_BY_CODE = new HashMap<Short, QMFTypeBinding>();
- static
- {
- new QMFTypeBinding(null, (short) 1)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Short.valueOf(dec.readUint8());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeUint8(((Number) value).shortValue());
- }
- };
- new QMFTypeBinding(null, (short) 2)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Integer.valueOf(dec.readUint16());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeUint16(((Number) value).intValue());
- }
- };
- new QMFTypeBinding(null, (short) 3)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Long.valueOf(dec.readUint32());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeUint32(((Number) value).longValue());
- }
- };
- new QMFTypeBinding(null, (short) 4)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Long.valueOf(dec.readUint64());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeUint64(((Number) value).longValue());
- }
- };
- new QMFTypeBinding(null, (short) 6) // short string
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readStr8();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- if (null == value)
- value = "";
- enc.writeStr8((String) value);
- }
- };
- new QMFTypeBinding(String.class, (short) 7) // long string
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readStr16();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- if (null == value)
- value = "";
- enc.writeStr16((String) value);
- }
- };
- new QMFTypeBinding(Date.class, (short) 8)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return new Date(dec.readDatetime());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeDatetime(((Date) value).getTime());
- }
- };
- new QMFTypeBinding(Boolean.class, (short) 11)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Boolean.valueOf(dec.readUint8() != 0);
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- if (((Boolean) value).booleanValue())
- {
- enc.writeUint8((short) 1);
- } else
- {
- enc.writeUint8((short) 0);
- }
- }
-
- @Override
- public short[] alternateTypes()
- {
- short[] types =
- { 5 };
- return types;
- }
- };
- new QMFTypeBinding(boolean.class, (short) 11)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readUint8() != 0;
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- if (((Boolean) value).booleanValue())
- {
- enc.writeUint8((short) 1);
- } else
- {
- enc.writeUint8((short) 0);
- }
- }
- };
- new QMFTypeBinding(Float.class, (short) 12)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Float.valueOf(dec.readFloat());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeFloat(((Number) value).floatValue());
- }
- };
- new QMFTypeBinding(float.class, (short) 12)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readFloat();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeFloat(((Number) value).floatValue());
- }
- };
- new QMFTypeBinding(Double.class, (short) 13)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Double.valueOf(dec.readDouble());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeDouble(((Number) value).doubleValue());
- }
- };
- new QMFTypeBinding(double.class, (short) 13)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readDouble();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeDouble(((Number) value).doubleValue());
- }
- };
- new QMFTypeBinding(UUID.class, (short) 14)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readUuid();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeUuid((UUID) value);
- }
- };
- new QMFTypeBinding(byte.class, (short) 16)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readInt8();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeInt8(((Number) value).byteValue());
- }
- };
- new QMFTypeBinding(Short.class, (short) 17)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Short.valueOf(dec.readInt16());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeInt16(((Number) value).shortValue());
- }
- };
- new QMFTypeBinding(short.class, (short) 17)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readInt16();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeInt16(((Number) value).shortValue());
- }
- };
- new QMFTypeBinding(Integer.class, (short) 18)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Integer.valueOf(dec.readInt32());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeInt32(((Number) value).intValue());
- }
- };
- new QMFTypeBinding(int.class, (short) 18)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readInt32();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeInt32(((Number) value).intValue());
- }
- };
- new QMFTypeBinding(Long.class, (short) 19)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return Long.valueOf(dec.readInt64());
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeInt64(((Number) value).longValue());
- }
- };
- new QMFTypeBinding(long.class, (short) 19)
- {
- @Override
- public Object decode(Decoder dec)
- {
- return dec.readInt64();
- }
-
- @Override
- public void encode(Encoder enc, Object value)
- {
- enc.writeInt64(((Number) value).longValue());
- }
- };
- }
-
- public static final QMFTypeBinding forClass(Class<?> cls)
- {
- QMFTypeBinding t = TYPES.get(cls);
- return t;
- }
-
- public static final boolean isBound(Class<?> cls)
- {
- return TYPES.containsKey(cls);
- }
-
- public static QMFTypeBinding getType(short code)
- {
- return TYPES_BY_CODE.get(code);
- }
-
- private final Class<?> cls;
- private final short code;
-
- private QMFTypeBinding(Class<?> cls, short code)
- {
- this.cls = cls;
- this.code = code;
- if (cls != null)
- {
- TYPES.put(cls, this);
- }
- TYPES_BY_CODE.put(code, this);
- for (short type : this.alternateTypes())
- {
- TYPES_BY_CODE.put(type, this);
- }
- }
-
- public Class<?> getJavaClass()
- {
- return cls;
- }
-
- public short getCode()
- {
- return code;
- }
-
- public boolean isNative()
- {
- return true;
- }
-
- public boolean optionalDefault()
- {
- return false;
- }
-
- public String getRefClass()
- {
- return null;
- }
-
- public String getRefPackage()
- {
- return null;
- }
-
- public abstract Object decode(Decoder dec);
-
- public abstract void encode(Encoder enc, Object value);
-
- public short[] alternateTypes()
- {
- short[] types =
- {};
- return types;
- }
-
- @Override
- public int hashCode()
- {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((cls == null) ? 0 : cls.hashCode());
- result = prime * result + code;
- return result;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- QMFTypeBinding other = (QMFTypeBinding) obj;
- if (cls == null)
- {
- if (other.cls != null)
- return false;
- } else if (!cls.equals(other.cls))
- return false;
- if (code != other.code)
- return false;
- return true;
- }
-}
diff --git a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/TypeBinding.java b/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/TypeBinding.java
deleted file mode 100644
index 97ec943bfd..0000000000
--- a/qpid/java/management/agent/src/main/java/org/apache/qpid/agent/binding/TypeBinding.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent.binding;
-
-import org.apache.qpid.transport.codec.Decoder;
-import org.apache.qpid.transport.codec.Encoder;
-
-/**
- * Binding between Java Type and QMF type
- */
-public interface TypeBinding
-{
- public Object decode(Decoder dec);
-
- public void encode(Encoder enc, Object value);
-
- public Class<?> getJavaClass();
-
- public short getCode();
-
- public boolean isNative();
-
- public String getRefClass();
-
- public String getRefPackage();
-
- public boolean optionalDefault();
-}
diff --git a/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Crumpet.java b/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Crumpet.java
deleted file mode 100644
index 67095c809b..0000000000
--- a/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Crumpet.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-import java.util.ArrayList;
-
-import org.apache.qpid.agent.annotations.QMFSeeAlso;
-import org.apache.qpid.agent.annotations.QMFType;
-
-/**
- * Crumpet
- *
- */
-@QMFType(className = "Crumpet", packageName = "org.apache.test")
-@QMFSeeAlso(
-{ Pikelet.class })
-public class Crumpet
-{
- private String foo = "fooValue";
- private String bar = "barValue";
- private ArrayList<String> ingredients = new ArrayList<String>();
-
- public String getFoo()
- {
- return foo;
- }
-
- public void setFoo(String foo)
- {
- this.foo = foo;
- }
-
- public String getBar()
- {
- return bar;
- }
-
- public void setBar(String bar)
- {
- this.bar = bar;
- }
-
- public ArrayList<String> getIngredients()
- {
- return ingredients;
- }
-
- public void setIngredients(ArrayList<String> ingredients)
- {
- this.ingredients = ingredients;
- }
-}
diff --git a/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Muppet.java b/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Muppet.java
deleted file mode 100644
index f039ab9baa..0000000000
--- a/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Muppet.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.qpid.agent.annotations.QMFObject;
-
-@QMFObject(className = "Muppet", packageName = "org.apache.test")
-public class Muppet extends Puppet
-{
- private Log log = LogFactory.getLog(Muppet.class);
-
- public String getSomething()
- {
- return "something";
- }
-
- public void doSomething(String str)
- {
- log.debug(String.format("doSomething: %s", str));
- }
-
- public String returnSomething()
- {
- log.debug("returning something");
- return "asdf";
- }
-
- public Crumpet gimmieCrumpet(String asdf, int n, float f, Map foo)
- {
- log.debug(String
- .format("mmm, crumpet: %s, %s, %s, %s", asdf, n, f, foo));
- Crumpet crumpet = new Crumpet();
- crumpet.getIngredients().add("Butter");
- crumpet.getIngredients().add("Salt");
- crumpet.getIngredients().add("Flour");
- return crumpet;
- }
-
- public Crumpet gimmieCrumpet2()
- {
- Pikelet pik = new Pikelet();
- pik.getIngredients().add("Butter");
- pik.getIngredients().add("Salt");
- pik.getIngredients().add("Eggs");
- pik.getCrumpets().put("Crumpet1",
- this.gimmieCrumpet("2121", 1, 1, null));
- return pik;
- }
-
- public List gimmeLotsOfCrumpets()
- {
- log.debug("Asking for lots of Crumpets");
- ArrayList<Crumpet> returnValue = new ArrayList<Crumpet>();
- Crumpet crumpet = new Crumpet();
- crumpet.getIngredients().add("Chocolate");
- returnValue.add(crumpet);
- crumpet = new Crumpet();
- crumpet.getIngredients().add("Pecans");
- returnValue.add(crumpet);
- crumpet = new Pikelet();
- crumpet.getIngredients().add("Poached Eggs");
- returnValue.add(crumpet);
- return returnValue;
- }
-
- public int divideByZero()
- {
- return 1 / 0;
- }
-
- public Crumpet takeCrumpet(Crumpet newCrumpet)
- {
- log.debug(String.format("I gots me a crumpet: foo: '%s' bar: '%s'",
- newCrumpet.getFoo(), newCrumpet.getBar()));
- log.debug("My crumpet's class is " + newCrumpet.getClass().getName());
- for (String ingredient : newCrumpet.getIngredients())
- {
- log.debug("My crumpet is made of " + ingredient);
- }
- return newCrumpet;
- }
-
- public Object takeSomething(Object obj)
- {
- log.debug(String.format("I gots me a something: '%s'", obj.getClass()
- .getName()));
- return obj;
- }
-}
diff --git a/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Pikelet.java b/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Pikelet.java
deleted file mode 100644
index f820fa6258..0000000000
--- a/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Pikelet.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-import java.util.HashMap;
-
-import org.apache.qpid.agent.annotations.QMFType;
-
-@QMFType(className = "Pikelet", packageName = "org.apache.test")
-public class Pikelet extends Crumpet
-{
- protected String shape;
- HashMap<String, Crumpet> crumpets = new HashMap<String, Crumpet>();
-
- public String getShape()
- {
- return shape;
- }
-
- public void setShape(String shape)
- {
- this.shape = shape;
- }
-
- public HashMap<String, Crumpet> getCrumpets()
- {
- return crumpets;
- }
-
- public void setCrumpets(HashMap<String, Crumpet> crumpets)
- {
- this.crumpets = crumpets;
- }
-}
diff --git a/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Puppet.java b/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Puppet.java
deleted file mode 100644
index bfd34840f8..0000000000
--- a/qpid/java/management/agent/src/test/java/org/apache/qpid/agent/Puppet.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-package org.apache.qpid.agent;
-
-public class Puppet
-{
- public int countStrings()
- {
- return 4;
- }
-}