You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2016/11/04 11:29:06 UTC
svn commit: r1768016 - in
/qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model:
ConfiguredObjectFactoryGenerator.java ManagedObjectFactoryConstructor.java
Author: orudyy
Date: Fri Nov 4 11:29:06 2016
New Revision: 1768016
URL: http://svn.apache.org/viewvc?rev=1768016&view=rev
Log:
QPID-7495: Add support for condition expression into conditionally available configured objects
Modified:
qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryGenerator.java
qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ManagedObjectFactoryConstructor.java
Modified: qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryGenerator.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryGenerator.java?rev=1768016&r1=1768015&r2=1768016&view=diff
==============================================================================
--- qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryGenerator.java (original)
+++ qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ConfiguredObjectFactoryGenerator.java Fri Nov 4 11:29:06 2016
@@ -477,10 +477,11 @@ public class ConfiguredObjectFactoryGene
private String generateObjectFactory(final Filer filer, final ExecutableElement constructorElement)
{
TypeElement classElement = (TypeElement) constructorElement.getEnclosingElement();
- String factoryName = classElement.getQualifiedName().toString() + "Factory";
+ String objectQualifiedClassName = classElement.getQualifiedName().toString();
+ String factoryName = objectQualifiedClassName + "Factory";
String factorySimpleName = classElement.getSimpleName().toString() + "Factory";
String objectSimpleName = classElement.getSimpleName().toString();
- processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Generating factory file for " + classElement.getQualifiedName().toString());
+ processingEnv.getMessager().printMessage(Diagnostic.Kind.NOTE, "Generating factory file for " + objectQualifiedClassName);
final ManagedObjectFactoryConstructor annotation =
constructorElement.getAnnotation(ManagedObjectFactoryConstructor.class);
PackageElement packageElement = (PackageElement) classElement.getEnclosingElement();
@@ -544,13 +545,32 @@ public class ConfiguredObjectFactoryGene
pw.println(" }");
if(annotation.conditionallyAvailable())
{
+ final String condition = annotation.condition();
pw.println();
pw.println(" @Override");
pw.println(" public boolean isAvailable()");
pw.println(" {");
- pw.println(" return " + objectSimpleName + ".isAvailable();");
- pw.println(" }");
+ if ("".equals(condition))
+ {
+ pw.println(" return " + objectSimpleName + ".isAvailable();");
+ }
+ else
+ {
+ if (condition.matches("([\\w][\\w\\d_]+\\.)+[\\w][\\w\\d_\\$]*#[\\w\\d_]+\\s*\\(\\s*\\)"))
+ {
+ pw.println(" return " + condition.replace('#', '.') + ";");
+ }
+ else
+ {
+ processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR,
+ String.format(
+ "Invalid condition expression for '%s' : %s",
+ objectQualifiedClassName,
+ condition));
+ }
+ }
+ pw.println(" }");
}
pw.println("}");
Modified: qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ManagedObjectFactoryConstructor.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ManagedObjectFactoryConstructor.java?rev=1768016&r1=1768015&r2=1768016&view=diff
==============================================================================
--- qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ManagedObjectFactoryConstructor.java (original)
+++ qpid/java/trunk/broker-codegen/src/main/java/org/apache/qpid/server/model/ManagedObjectFactoryConstructor.java Fri Nov 4 11:29:06 2016
@@ -30,4 +30,6 @@ import java.lang.annotation.Target;
public @interface ManagedObjectFactoryConstructor
{
boolean conditionallyAvailable() default false;
+
+ String condition() default "";
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org