control.field.bad.interfacetype=\
A control field's type must be annotated with @ControlInterface or @ControlExtension if it's an interface. \
Verify the type of the control field declaration is annotated correctly. 

control.field.bad.classtype=\
A control field's type must implement org.apache.beehive.controls.api.bean.ControlBean if it's a class. \
Verify the type of the control field declaration implements ControlBean.

control.field.bad.classtype.badinterface=\
If a control field's type is a class, that class must implement the control's public interface/extension and no other interface. \
Verify the type of the control field declaration implements only the public interface/extension.

control.field.type.malformed=\
The type of the control field is malformed.  Verify that the source of the type has no errors.

control.field.bad.version=\
Control field {0} fails version requirement: requires interface version {1}.{2}, found interface version {3}.{4}

control.field.in.inner.class=\
A control field can exist only within the top-level class. \
Move fields marked with the Control annotation to just inside the top-level class.

control.field.override=\
This control field conflicts with another of the same name in superclass {0}.

control.public.interface.not.found = \
Cannot find the public interface for this control. \
Verify that the public interface for this control is available in this project.

transient.control.field =\
A control can not be declared as transient. \
Remove the transient modifier from the control declaration.

static.control.field =\
A control can not be declared as static. \
Remove the static modifier from the control declaration.

controls.client.manifest.ioerror= \
An error occurred writing the controls client manifest.

propertyset.illegal.argument.error=\
A value assigned to a control property does not satisfy \
its constraints. Cause: {0} 

control.member.type.invalid.date.value.error=\
The value assigned to a date property must be in the format specified.

control.member.type.invalid.date.format.error=\
The date format specified is not valid, please see java.text.SimpleDateFormat for valid formats.

control.reference.bad.interfacetype=\
Types listed in @ControlReferences must be control interfaces (ie, interfaces annotated with @ControlInterface or @ControlExtension). \
Verify the types listed in @ControlReferences are control interface types.

control.interface.annotation.badlocation=\
The ControlInterface or ControlExtension annotation may only be used on a Java interface.

control.extension.badinterface=\
Interfaces annotated with ControlExtension must extend an interface annotated with ControlInterface.

control.interface.badinterface=\
An interface annotated with @ControlInterface can only extend another ControlInterface.  It is not valid for \
a ControlInterface to extend a ControlExtension.

property.primitive.without.default=\
Primitive property {0} must specify a default value.

propertyset.illegal.usage=\
The PropertySet annotation may only be used on a Java annotation interface.

propertyset.illegal.usage.2=\
The @PropertySet annotation should only be used within an interface annotated with @ControlInterface, \
never @ControlExtension.  An extension can only use existing properties, not declare new ones.

extpropertyset.illegal.usage=\
The @ExternalPropertySets annotation should only be used on an interface annotated with \
@ControlInterface, never @ControlExtension.  An extension can only use existing properties, not declare new one.

extpropertyset.type.not.found=\
Unable to load type declaration for externally referenced PropertySet {0}.

propertyset.not.annotation.type=\
The PropertySet annotation must be on an Annotation type.

propertyset.missing.retention=\
The PropertySet annotation must be used in conjuction with @Retention(RetentionPolicy.RUNTIME).

propertyset.duplicate.property.names=\
Duplicate property name {0} found on property set '{1}'.  Consider using the PropertySet 'prefix' \
attribute to disambiguate.

eventset.illegal.usage=\
The EventSet annotation must be on an interface declaration.

eventset.formal.parameter.mismatch=\
Any EventSet formal type parameters must match ones declared on the associated control type.  \
No new formal type parameters may be introduced.

eventset.illegal.multicast=\
Event methods declared within a multicast EventSet cannot return a value.   Change the return \
type of this method declaration to void, or use the unicast attribute of @EventSet to change to a unicast event set.

manifestattribute.illegal.name.1=\
@ManifestAttribute name cannot be a zero-length string.

manifestattribute.illegal.name.2=\
@ManifestAttribute name must begin with an alphanumeric character.

manifestattribute.illegal.name.3=\
@ManifestAttribute name contains an invalid character: {0}.

manifestattribute.illegal.name.4=\
@ManifestAttribute value cannot be a zero-length string.

versionrequired.illegal.usage=\
Illegal usage of @VersionRequired: not permitted on interfaces annotated with @ControlInterface.

versionrequired.failed=\
Control extension {0} fails version requirement: requires interface version {1}.{2}, found interface \
version {3}.{4}.

control.interface.illegal.checker=\
Control interface {0} specifies a checker class {1} that doesn't implement ControlChecker.

control.interface.checker.load.failed=\
Control interface {0} specifies a checker class {1} which cannot be loaded.  Verify that the \
apt -classpath value is correct.

control.implementation.badclass=\
The ControlImplementation annotation may only be used on a Java class.

control.implementation.unserializable=\
A ControlImplementation class must implement the java.io.Serializable interface or set the isTransient \
attribute of @ControlImplementation to true.

control.implementation.missing.interface=\
Control implementations must implement a control interface.

eventhandler.field.not.found=\
Cannot find event source field: {0}.

eventhandler.eventset.not.found=\
Cannot find EventSet interface: {0}.

eventhandler.method.is.private=\
Methods annotated with the EventHandler annotation can not be private.

eventhandler.method.not.found=\
No event method with matching name and signature found on EventSet: {0}.

eventhandler.throws.mismatch=\
Handler method {0} 'throws' clause is not a proper subset of the eventset method's 'throws' clause.  \
Handlers may only throw throwables declared by the eventset method.

versionsupported.failed=\
Control implementation {0} fails version support requirement: highest supported interface version is \
{1}.{2}, found interface version {3}.{4}.

control.illegal.usage=\
The Control annotation may only be used in a Java class.

context.field.badinterface=\
@Context field type must be an interface.

control.field.bad.type=\
@Control field type must be a valid ControlBean class or control interface. \
Verify that the type of the field declaration is a control class or interface.

control.field.bad.type.2=\
Unable to identify control type of field.
















