Skip to main content

Migrating to 1.4.x

This guide covers all breaking changes introduced in versions 1.4.0, 1.4.1, and 1.4.2.

1.4.0

Java 8 Support Removed

The minimum runtime is now Java 11. Tested and supported versions: 11, 17, 21, and 25.

Update your Gradle toolchain or sourceCompatibility accordingly:

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(11))
}
}

Protobuf Generated Classes Removed

The generated Protobuf message classes (PBChunk, PBNode, PBBulkImport, PBContainment, PBProperty, PBReference, PBMetaPointer) have been removed. ProtoBufSerialization now delegates entirely to DirectProtoBufSerializer / DirectProtoBufDeserializer.

Action: Remove any direct instantiation or import of the removed classes. The public ProtoBufSerialization API surface is unchanged for standard serialization use cases.

If you used ExtraProtoBufSerialization.serializeBulkImportToBytes, it now uses DirectBulkImportSerializer internally — the call signature is unchanged.

ReferenceValue Mutators Removed

// Removed — compile error:
referenceValue.setReferred(node);
referenceValue.setResolveInfo("hint");

// Use builder methods instead (available since earlier versions):
referenceValue = referenceValue.withReferred(node);
referenceValue = referenceValue.withResolveInfo("hint");

AbstractSerialization.DEFAULT_SERIALIZATION_FORMAT Removed

// Removed — compile error:
AbstractSerialization.DEFAULT_SERIALIZATION_FORMAT

// Use SerializationProvider instead:
AbstractSerialization serialization =
SerializationProvider.getStandardJsonSerialization(LionWebVersion.v2024_1);

1.4.1

CommonChecks Merged into IdUtils

If you called methods on CommonChecks directly, update the import to IdUtils:

// Before:
import io.lionweb.utils.CommonChecks;
CommonChecks.checkValidId(id);

// After:
import io.lionweb.utils.IdUtils;
IdUtils.checkValidId(id);

1.4.2

LionWebClient Renamed to LionWebBulkClient

The old class is marked @Deprecated and will be removed in a future release.

// Before:
import io.lionweb.client.LionWebClient;
LionWebClient client = new LionWebClient(LionWebVersion.v2024_1, "localhost", 3005, "myRepo");

// After:
import io.lionweb.client.LionWebBulkClient;
LionWebBulkClient client = new LionWebBulkClient.Builder()
.withVersion(LionWebVersion.v2024_1)
.withHostname("localhost")
.withPort(3005)
.withRepository("myRepo")
.build();

RequestFailureException Renamed to BulkRequestFailureException

// Before:
import io.lionweb.client.RequestFailureException;
} catch (RequestFailureException e) { ... }

// After:
import io.lionweb.client.BulkRequestFailureException;
} catch (BulkRequestFailureException e) { ... }

Server Package Restructured

The server-side implementation class was replaced by HTTPBulkServer. If you embedded the old server class directly, switch to HTTPBulkServer from io.lionweb.server.bulk.

Kotlin: Deprecated APIs Removed

RemovedReplacement
lowLevelRepoClient property on LionWebClientUse jRepoClient directly
LowLevelRepoClient classRemoved; use LionWebBulkClient Java class
Kotlin-specific ClassifierKeyUse io.lionweb.client.api.ClassifierKey
Kotlin-specific ClassifierResultUse io.lionweb.client.api.ClassifierResult