sonarQube - faire de terrain transitoire ou serializable

Je suis en train de résoudre la suite de la violation signalée par sonarQube plugin Jenkins pour: "faire" mettre à jour " transitoire ou serializable.". Gravité: critique, tag: la sérialisation.

J'ai partagées interface

public interface MPUpdate {

    void apply( SoapService svc, byte[] jerseyClientResp ) throws MPException ;
}

L'enum ci-dessous est le point d'entrée pour l'application de la logique

public enum DomainResource implements MPUpdate {

    PROGRAMMES( new ProgrammeUpdate() ),
    PRODUCTIONS( new ProductionUpdate() );
    //more enums

    private DomainResource( MPUpdate update ) {
        this.update = update;
    }

    private final MPUpdate update; //Sonar: make "update" transient or serializable, priority: critical, tag: serialization

    @Override
    public void apply( SoapService svc, byte[] jerseyClientResp ) throws MPException {
        update.apply( svc, jerseyClientResp );      
    }
}

L'un de l'unité de la logique initialisé par le biais de l'enum

public class ProgrammeUpdate implements MPUpdate {

    private final ResponseConverter<ProgrammeDto> responseConverter = new ResponseConverter<>( ProgrammeDto.class );

    @Override
    public void apply( SoapService svc, byte[] jerseyClientResp ) throws MPException {

        //APPLICATION LOGIC
    }

}

Et enfin, c'est la façon dont il est utilisé:

...
String levelFromUrl = getLevel(); //eg. "programmes"
MPUpdate resource;
resource = DomainResource.valueOf( levelFromUrl.toUpperCase() ); 
...
resource.apply( soapService, jerseyClientOutcome );
...

De l'aide? L'utilisation d'enum d'améliorer les performances de l'exploitation forestière?

Merci beaucoup

OriginalL'auteur | 2016-03-15