BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités MicroStream 7.0 Prend En Charge CDI

MicroStream 7.0 Prend En Charge CDI

MicroStream, un moteur de persistance pour le stockage d'objets et de documents Java, est capable de charger, de mettre à jour et de conserver partiellement et à la demande des graphes d'objets dans un environnement de ressources de manière efficace et performante. MicroStream 7 fournit une intégration avec Contexts and Dependency Injection (CDI), la logique du sérialiseur en tant que fonctionnalité autonome et la prise en charge de la journalisation via SLF4J.

MicroStream prend en charge diverses options de stockage telles qu'AWS S3, Hazelcast, Kafka, MongoDB, Redis et diverses bases de données SQL. Certaines options de stockage ne sont disponibles qu'avec un abonnement entreprise. La partie démarrage du manuel de référence fournit des instructions sur l'utilisation de MicroStream avec du Java ordinaire, ou intégré à Helidon ou Spring Boot.

Cette version introduit l'extension MicroStream CDI, nécessitant une implémentation CDI 2.0 ou supérieure, via l'artefact microstream-integrations-cdi. L'extension est comparable à l'intégration avec Spring Boot et Helidon. La spécification MicroProfile Config est utilisée pour lire la configuration de propriétés, prenant en charge n'importe quel runtime MicroProfile, ou bien combiner Java SE CDI avec une implémentation MicroProfile Config telle que SmallRye Config.

L'application doit avoir une classe annotée avec @Storage, qui se connecte à l'implémentation MicroStream :

@Storage
public class CarStorage
{
    private final List<Car> carList = new ArrayList<>();

    public List<Car> findAll() {
        return this.carList;
    }

    public void removeAll() {
        this.carList.clear();
    }

    public void add(final Car car) {
        this.carList.add(car);
    }
}

La classe annotée avec @Storage est injectée dans un bean ApplicationScoped et les méthodes de changement de données doivent être annotées avec @Store :

@ApplicationScoped
public class CarStorageService {
    @Inject
    private CarStorage carStorage;

    @Store
    public void addCar(Car car) {
        carStorage.add(car);
    }

    @Store
    public void deleteCars() {
        carStorage.removeAll();
    }

    public List<Car> findCars() {
        return carStorage.findAll();
    }
}

L'intégration CDI de MicroStream peut également être utilisée pour stocker les données mises en cache :

@Inject
@StorageCache
private Cache<String, String> myCustomCache;

MicroStream utilise un moteur serializer hautes performances personnalisé qui est désormais exposé via une API et peut être utilisé de manière autonome en ajoutant la dépendance microstream-persistence-binary. Les types d'entités doivent être enregistrés afin de s'assurer que le numéro unique de chaque classe est le même après la désérialisation du tableau d'octets :

CarPart porscheCarPart = new CarPart("wheel", 23.23);
Car porsche = new Car("Porsche", "911", List.of(porscheCarPart));

final SerializerFoundation<?> foundation = SerializerFoundation.New()
    .registerEntityTypes(Car.class);
final Serializer<byte[]> serializer = Serializer.Bytes(foundation);
byte[] data = serializer.serialize(porsche);
Car deserializedCar = serializer.deserialize(data);
assertEquals("911", deserializedCar.getModel());
assertEquals(23.23, deserializedCar.getCarPartList().get(0).getPrice());

La nouvelle fonctionnalité de journalisation utilise SLF4J comme façade de journalisation et peut être utilisée avec des frameworks de journalisation tels que Logback, en ajoutant la dépendance du framework de journalisation.

Un gestionnaire personnalisé pour les instances de date et d'heure sur Android est disponible via le nouvel artefact microstream-persistence-binary-android pour résoudre les problèmes de réflexion des versions récentes d'Android.

L'utilisation et la libération de la mémoire sont optimisées et plusieurs bugs ont été résolus.

Initialement introduit en 2019, MicroStream a été mis en open-source avec la sortie de MicroStream 5.0. Cette dernière version est rétrocompatible avec MicroStream 6 et est prise en charge gratuitement, pour une période de douze mois pour les utilisateurs de la communauté et la prochaine version majeure est prévue pour avril 2023. L'une des nouvelles fonctionnalités prévues est le support de cluster pour plusieurs instances MicroStream. De plus amples détails sur la liste complète des modifications sont disponibles dans la changelog.

 

Au sujet de l’Auteur

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT