### Question:
AbstractManagedObjectDefinition { public final PropertyDefinition<?> getPropertyDefinition(String name) throws IllegalArgumentException { if (name == null || name.length() == 0) { throw new IllegalArgumentException("null or empty property name"); } PropertyDefinition<?> d = allPropertyDefinitions.get(name); if (d == null) { throw new IllegalArgumentException("property definition \"" + name + "\" not found"); } return d; } protected  AbstractManagedObjectDefinition(String name,
      AbstractManagedObjectDefinition<? super C, ? super S> parent); final Collection<AbstractManagedObjectDefinition
      <? extends C, ? extends S>> getAllChildren(); final Collection<Constraint> getAllConstraints(); final Collection<PropertyDefinition<?>> getAllPropertyDefinitions(); final Collection<RelationDefinition<?, ?>> getAllRelationDefinitions(); final Collection<RelationDefinition<? super C, ? super S>> getAllReverseRelationDefinitions(); final Collection<AggregationPropertyDefinition<?, ?>> getAllAggregationPropertyDefinitions(); final Collection<AggregationPropertyDefinition<?, ?>> getAllReverseAggregationPropertyDefinitions(); final Collection<Tag> getAllTags(); final AbstractManagedObjectDefinition<? extends C, ? extends S> getChild(String name); final Collection<AbstractManagedObjectDefinition
      <? extends C, ? extends S>> getChildren(); final Collection<Constraint> getConstraints(); final LocalizableMessage getDescription(); final LocalizableMessage getDescription(Locale locale); final String getName(); final AbstractManagedObjectDefinition<? super C,
      ? super S> getParent(); final PropertyDefinition<?> getPropertyDefinition(String name); final Collection<PropertyDefinition<?>> getPropertyDefinitions(); final RelationDefinition<?, ?> getRelationDefinition(String name); final Collection<RelationDefinition<?,?>> getRelationDefinitions(); final Collection<RelationDefinition<C, S>> getReverseRelationDefinitions(); final AggregationPropertyDefinition<?, ?> getAggregationPropertyDefinition(String name); final Collection<AggregationPropertyDefinition<?, ?>> getAggregationPropertyDefinitions(); final Collection<AggregationPropertyDefinition<?, ?>> getReverseAggregationPropertyDefinitions(); final LocalizableMessage getSynopsis(); final LocalizableMessage getSynopsis(Locale locale); final LocalizableMessage getUserFriendlyName(); final LocalizableMessage getUserFriendlyName(Locale locale); final LocalizableMessage getUserFriendlyPluralName(); final LocalizableMessage getUserFriendlyPluralName(Locale locale); final boolean hasChildren(); final boolean hasOption(ManagedObjectOption option); final boolean hasTag(Tag t); final boolean isChildOf(AbstractManagedObjectDefinition<?, ?> d); final boolean isParentOf(AbstractManagedObjectDefinition<?, ?> d); final boolean isTop(); @SuppressWarnings("unchecked") final ManagedObjectDefinition<? extends C, ? extends S> resolveManagedObjectDefinition(
      DefinitionResolver r); @Override final String toString(); final void toString(StringBuilder builder);  }### Answer:
@Test public void testPropertyOverride1() { AbstractManagedObjectDefinition<?, ?> d = ConnectionHandlerCfgDefn .getInstance(); PropertyDefinition<?> pd = d .getPropertyDefinition("java-class"); DefaultBehaviorProvider<?> dbp = pd.getDefaultBehaviorProvider(); assertEquals(dbp.getClass(), UndefinedDefaultBehaviorProvider.class); }
@Test public void testPropertyOverride2() { AbstractManagedObjectDefinition<?, ?> d = LDAPConnectionHandlerCfgDefn .getInstance(); PropertyDefinition<?> pd = d .getPropertyDefinition("java-class"); DefaultBehaviorProvider<?> dbp = pd.getDefaultBehaviorProvider(); assertEquals(dbp.getClass(), DefinedDefaultBehaviorProvider.class); DefinedDefaultBehaviorProvider<?> ddbp = (DefinedDefaultBehaviorProvider<?>) dbp; assertEquals(ddbp.getDefaultValues(), Collections .singleton("org.opends.server.protocols.ldap.LDAPConnectionHandler")); }
@Test public void testPropertyOverride3() { AbstractManagedObjectDefinition<?, ?> d = JMXConnectionHandlerCfgDefn .getInstance(); PropertyDefinition<?> pd = d .getPropertyDefinition("java-class"); DefaultBehaviorProvider<?> dbp = pd.getDefaultBehaviorProvider(); assertEquals(dbp.getClass(), DefinedDefaultBehaviorProvider.class); DefinedDefaultBehaviorProvider<?> ddbp = (DefinedDefaultBehaviorProvider<?>) dbp; assertEquals(ddbp.getDefaultValues(), Collections .singleton("org.opends.server.protocols.jmx.JmxConnectionHandler")); }