Vorbereitung für die Spiegelung nach git.mana.how/offen (Prüfliste QUELLOEFFNUNG.md §5): Sweep sauber, keine Privat-Marker, Apache-2.0 mit NOTICE seit Welle 1, Schriften mit OFL-Texten. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
67 lines
2.6 KiB
Markdown
67 lines
2.6 KiB
Markdown
# mana-kotlin-event-sync-room
|
|
|
|
Room-Adapter für `ev.mana:mana-kotlin-event-sync` — die Android-Persistenz
|
|
(`EventStore`-Implementierung) zur sonst pure-JVM-Engine. Ersetzt die
|
|
früheren identischen per-App-Kopien (`RoomEventStore`/`EventSyncDao`/
|
|
`EventSyncDb` in wordeck/pageta/zitare/nutriphi/stetick-android).
|
|
|
|
- **Artefakt:** `ev.mana:mana-kotlin-event-sync-room` (Forgejo-Maven,
|
|
`git.mana.how/api/packages/mana/maven`)
|
|
- **Versionierung:** Lockstep mit `mana-kotlin-event-sync` (gleiche Version).
|
|
- **Inhalt:** `EventSyncDatabase` (Room, version 1: `events`/`outbox`/`meta`),
|
|
`EventSyncDao`, `RoomEventStore`, `createEventSyncDatabase(context, name)`.
|
|
|
|
## Migration aus einer App-Kopie
|
|
|
|
```kotlin
|
|
// vorher (per-App-Kopie):
|
|
val db = Room.databaseBuilder(context, WordeckDatabase::class.java, "wordeck.db").build()
|
|
val store = RoomEventStore(db.dao())
|
|
|
|
// nachher:
|
|
import ev.mana.eventsync.room.RoomEventStore
|
|
import ev.mana.eventsync.room.createEventSyncDatabase
|
|
val db = createEventSyncDatabase(context, "wordeck.db") // ALTER DB-Name!
|
|
val store = RoomEventStore(db.dao())
|
|
```
|
|
|
|
**Wichtig:** Der DB-Dateiname muss der bisherige bleiben — das Schema ist
|
|
identisch (version 1), bestehende Event-Logs werden nahtlos weiterverwendet.
|
|
|
|
## Build
|
|
|
|
```bash
|
|
JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" ./gradlew assembleRelease
|
|
FORGEJO_TOKEN=… ./gradlew publish
|
|
```
|
|
|
|
## Bauen
|
|
|
|
Kotlin/Gradle. Die mana-Bibliotheken finden sich gegenseitig über
|
|
`mavenLocal()` — in dieser Reihenfolge veröffentlichen:
|
|
|
|
```bash
|
|
for r in mana-kotlin-core mana-kotlin-tokens mana-kotlin-event-sync \
|
|
mana-kotlin-widget mana-kotlin-event-sync-room mana-kotlin-ui; do
|
|
git clone https://git.mana.how/offen/$r.git && (cd $r && ./gradlew publishToMavenLocal)
|
|
done
|
|
```
|
|
|
|
Danach baut auch [Pageta für Android](https://git.mana.how/offen/pageta-android).
|
|
|
|
## Für Mitlesende
|
|
|
|
Dieses Repo gehört zum Ökosystem von [mana](https://mana.how) und liegt
|
|
offen, damit andere es lesen, einordnen und als Grundlage nutzen können —
|
|
das spart Arbeit, egal ob ein Mensch oder ein Modell davorsitzt.
|
|
|
|
**Was du erwarten darfst:** den Code so, wie er tatsächlich in Gebrauch ist,
|
|
unter Apache-2.0 (siehe `LICENSE` und `NOTICE`). Keine Attrappe, kein
|
|
zurechtgeschnittener Auszug — samt seiner Geschichte.
|
|
|
|
**Was du nicht erwarten darfst:** Support, Antwortzeiten, Zusagen zur
|
|
Abwärtskompatibilität oder die Übernahme von Änderungswünschen. Dieses Repo
|
|
folgt dem, was die eigenen Anwendungen brauchen. Fehlermeldungen sind
|
|
willkommen, eine Antwort ist nicht zugesagt.
|
|
|
|
**Fork ist ausdrücklich erlaubt** und oft der schnellere Weg als zu warten.
|