optimizely / optimizely/java-sdk

Pick Serializer using properties

Offen
#492 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Java
Sterne
44
Forks
32
Ø Merge
8 Std. 39 Min.
Gemergte PRs (30 T.)
1

Beschreibung

Hello Optimizely team:

We have encountered issues while working with Optimizely. The SDK allows to use two different serialisers in an uncontrolled way, by letting you pick one using optimizely.properties (in out experience, it is used while retrieving your organisation experiments file, I don't know for what else it is used):
DefaultConfigParser

But in this one where the events are raised, since it is an if/else structure, you have no control over it, and in our case it does not work because we use a Jackson version previous to 2.7, throwing an exception while trying to create it with the SNAKE_CASE property (one exception that we will avoid if GSON could be chosen):
DefaultJsonSerializer

I feel like this is an inconsistency and since it is already implemented for one scenario, it should be paired for the event ones.
We also know that this is our fault for not using that Jackson version, but it is done in a service where that specific library is almost impossible to update... We have discarded the idea of integrating Optimizely in that specific service, but we thought that it was important to let you know this weird behaviour where you can have GSON (or any other one) + Jackson (or any other one) working simultaneously.

Thanks for reading, let us know if you change anything about this!

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Vergleich von core-api/src/main/java/com/optimizely/ab/config/parser/DefaultConfigParser.java und core-api/src/main/java/com/optimizely/ab/event/internal/serializer/DefaultJsonSerializer.java und konzentriere dich darauf, wie optimizely.properties einen Serializer auswählt. Bestätige, dass die Event-Serialisierung dieselbe Auswahl berücksichtigen kann, und überprüfe, dass sowohl GSON- als auch Jackson-Konfigurationen konsistent funktionieren.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
api
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.