2012-03-09 25 views
2

Spring LDAP ODMを使用してEntry( "エンティティ")をマップしました。私は、このクラスでのユニットテストを実行すると、私は初期化時にコンソールに警告を得る:Spring LDAP ODM - エントリクラスを最終宣言する必要があります警告

Mar 9, 2012 2:32:40 PM org.springframework.ldap.odm.core.impl.ObjectMetaData <init> 
WARNING: The Entry class Superhero should be declared final 

マッピングされたクラスは、次のようになります。

@Entry(objectClasses = {"batman", "superman", "spiderman", "dontworryaboutthese"}) 
public class Superhero { 
    @Id 
    @JsonIgnore 
    private Name dn; 
    ... 

私は、Google検索を経由して、関連する何かを見つけることができませんこの警告に関して。これを記録するSpringコードは次のとおりです。

public ObjectMetaData(Class<?> clazz) { 
    if (LOG.isDebugEnabled()) { 
     LOG.debug(String.format("Extracting metadata from %1$s", clazz)); 
    } 

    // Get object class metadata - the @Entity annotation 
    Entry entity = (Entry)clazz.getAnnotation(Entry.class); 
    if (entity != null) { 
     // Default objectclass name to the class name unless it's specified 
     // in @Entity(name={objectclass1, objectclass2}); 
     String[] localObjectClasses = entity.objectClasses(); 
     if (localObjectClasses != null && localObjectClasses.length > 0 && localObjectClasses[0].length() > 0) { 
      for (String localObjectClass:localObjectClasses) { 
       objectClasses.add(new CaseIgnoreString(localObjectClass)); 
      } 
     } else { 
      objectClasses.add(new CaseIgnoreString(clazz.getSimpleName())); 
     } 
    } else { 
     throw new MetaDataException(String.format("Class %1$s must have a class level %2$s annotation", clazz, 
       Entry.class)); 
    } 

    // Check the class is final 
    if (!Modifier.isFinal(clazz.getModifiers())) { 
     LOG.warn(String.format("The Entry class %1$s should be declared final", clazz.getSimpleName())); 
    } 
    ... 

洞察力があれば分かります。私は、クラスを最終として宣言することは拡張できないことを意味しますが、なぜSpring ODMは気になるのでしょうか?

答えて

0

セキュリティ上の理由?

あなたのエンティティをサブクラス化することによって、他の種類のLDAPエントリをディレクトリに格納して、予期しない動作を引き起こす可能性がありますか?

関連する問題