Community Edition
The product, not a demo. The Community Edition runs a full URL shortening service on your own infrastructure under the EUPL 1.2 — with no feature timer, no usage ceiling and no telemetry.
What you get
Four small modules with explicit runtime responsibilities — domain logic, server endpoints, Java client access and the admin UI.
core
Domain model, DTOs, validation, JSON.
server
REST admin API and redirect server — JDK HttpServer, jCustos security, EclipseStore persistence.
client
Java SDK for the REST API.
ui
Vaadin admin interface.
Features. Short links with custom aliases and expiration, the redirect service, click statistics (device, referrer, language, bot detection over a hashed IP), user management with roles and permissions, bulk creation, import and export, and a full REST API with a Java client SDK.
Build it yourself
./mvnw clean verifyThe reactor runs the complete test suite, including the end-to-end and security
suites — these start a real server in-process rather than mocking it. All
persistent test state is written below target/, so mvn clean resets
everything.
Extension points
The community edition publishes the seams the Enterprise Edition plugs into. They are ordinary Java SPIs, so your own plug-ins can use them too.
Server
com.svenruppert.urlshortener.api.extension: HandlerContribution with a ServerContext, plus lifecycle hooks for create-time metadata, delete cascades and list filters. Contributed endpoints run behind the standard security pipeline; duplicate paths fail fast at startup.
UI
com.svenruppert.urlshortener.ui.vaadin.extension: FeatureContribution contributes routes, drawer entries, navbar components and sections in the link create form and details dialog. Contributed routes are registered dynamically under the main layout.
License
EUPL 1.2 — the European Union Public Licence.
jSentinel Ltd additionally offers this code base under commercial license terms; contributions are accepted under the DCO plus an additional license grant.