summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-08-19 11:58:06 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-08-19 11:58:06 +0000
commitdb2daee6568f8292a23d4bfc82c8a40be9979ffd (patch)
treeff457b259828dadc47259572ab6db4996c8a4ff4
parent48b5fc54f8b6bbf156f1a6403daecdf2b4f921e8 (diff)
downloadqpid-python-db2daee6568f8292a23d4bfc82c8a40be9979ffd.tar.gz
QPID-6018 : [Java Broker] Add an attribute to the ManagedObject annotation to signify that the given object should not be registered in the meta-data registry
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1618846 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java2
-rw-r--r--qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java67
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java1
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleAuthenticationManager.java2
4 files changed, 50 insertions, 22 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java
index 55805b5626..6f03dc51df 100644
--- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java
+++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java
@@ -58,7 +58,7 @@ import org.apache.qpid.server.virtualhost.VirtualHostImpl;
Object that represents the VirtualHost whilst the VirtualHostNode is in the replica role. The
real virtualhost will be elsewhere in the group.
*/
-@ManagedObject( category = false, type = "BDB_HA_REPLICA" )
+@ManagedObject( category = false, type = "BDB_HA_REPLICA", register = false )
public class BDBHAReplicaVirtualHost extends AbstractConfiguredObject<BDBHAReplicaVirtualHost>
implements VirtualHostImpl<BDBHAReplicaVirtualHost, AMQQueue<?>, ExchangeImpl<?>>,
VirtualHost<BDBHAReplicaVirtualHost,AMQQueue<?>, ExchangeImpl<?>>
diff --git a/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java b/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java
index 3c6cb4270e..9e63e96fb7 100644
--- a/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java
+++ b/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectRegistrationGenerator.java
@@ -87,30 +87,33 @@ public class ConfiguredObjectRegistrationGenerator extends AbstractProcessor
PackageElement packageElement = elementUtils.getPackageOf(e);
String packageName = packageElement.getQualifiedName().toString();
String className = e.getSimpleName().toString();
- for(AnnotationMirror a : e.getAnnotationMirrors())
+ AnnotationMirror annotation = getAnnotation(e, annotationElement);
+
+ AnnotationValue registerValue = getAnnotationValue(annotation, "register");
+
+ if(registerValue == null || (Boolean) registerValue.getValue() )
{
- if(a.getAnnotationType().asElement().equals(annotationElement))
+ AnnotationValue typeValue = getAnnotationValue(annotation, "type");
+
+ if (typeValue != null)
{
- for(Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : a.getElementValues().entrySet())
- {
- if(entry.getKey().getSimpleName().toString().equals("type"))
- {
- _typeMap.put(packageName + "." + className, (String) entry.getValue().getValue());
- processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "looking for " + packageName + "." + className);
- _categoryMap.put(packageName + "." + className, getCategory((TypeElement)e));
- break;
- }
- }
- break;
+ _typeMap.put(packageName + "." + className, (String) typeValue.getValue());
+ processingEnv.getMessager()
+ .printMessage(Diagnostic.Kind.NOTE,
+ "looking for " + packageName + "." + className);
+ _categoryMap.put(packageName + "." + className, getCategory((TypeElement) e));
+
}
+
+
+ Set<String> classNames = _managedObjectClasses.get(packageName);
+ if (classNames == null)
+ {
+ classNames = new HashSet<>();
+ _managedObjectClasses.put(packageName, classNames);
+ }
+ classNames.add(className);
}
- Set<String> classNames = _managedObjectClasses.get(packageName);
- if (classNames == null)
- {
- classNames = new HashSet<>();
- _managedObjectClasses.put(packageName, classNames);
- }
- classNames.add(className);
}
}
for (Map.Entry<String, Set<String>> entry : _managedObjectClasses.entrySet())
@@ -129,6 +132,30 @@ public class ConfiguredObjectRegistrationGenerator extends AbstractProcessor
return false;
}
+ private AnnotationValue getAnnotationValue(final AnnotationMirror annotation, final String attribute)
+ {
+ for(Map.Entry<? extends ExecutableElement, ? extends AnnotationValue> entry : annotation.getElementValues().entrySet())
+ {
+ if(entry.getKey().getSimpleName().toString().equals(attribute))
+ {
+ return entry.getValue();
+ }
+ }
+ return null;
+ }
+
+ private AnnotationMirror getAnnotation(final Element e, final TypeElement annotationElement)
+ {
+ for(AnnotationMirror a : e.getAnnotationMirrors())
+ {
+ if (a.getAnnotationType().asElement().equals(annotationElement))
+ {
+ return a;
+ }
+ }
+ return null;
+ }
+
private String getCategory(final TypeElement e)
{
Elements elementUtils = processingEnv.getElementUtils();
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java
index 8cfb84135e..f18869bced 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java
@@ -35,4 +35,5 @@ public @interface ManagedObject
boolean creatable() default true;
String defaultType() default ""; // in this case the class/interface itself is to be used
String type() default "";
+ boolean register() default true;
}
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleAuthenticationManager.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleAuthenticationManager.java
index 5b62f7cffd..0e532cee89 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleAuthenticationManager.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/security/auth/manager/SimpleAuthenticationManager.java
@@ -46,7 +46,7 @@ import org.apache.qpid.server.security.auth.UsernamePrincipal;
import org.apache.qpid.server.security.auth.sasl.plain.PlainPasswordCallback;
import org.apache.qpid.server.security.auth.sasl.plain.PlainSaslServer;
-@ManagedObject( category = false, type = "Simple" )
+@ManagedObject( category = false, type = "Simple", register = false )
public class SimpleAuthenticationManager extends AbstractAuthenticationManager<SimpleAuthenticationManager>
{
private static final Logger _logger = Logger.getLogger(SimpleAuthenticationManager.class);