The JPro Platform represents the foundation of cross-platform application development, seamlessly integrating the power of JavaFX with the limitless potential of web-based applications. By offering specialized modules and a dedicated API, JPro ensures developers can harness the strengths of JavaFX while deploying applications that run beautifully on the web.
All release builds are now available on Maven Central.
To use the snapshot builds, you need the following repository: - For Maven:
<repositories>
<repository>
<id>jpro-sandec-repository</id>
<url>https://sandec.jfrog.io/artifactory/repo/</url>
</repository>
</repositories>
repositories {
maven {
url "https://sandec.jfrog.io/artifactory/repo"
}
}
Rely on this library to add sophisticated authentication and authorization to your JPro/JavaFX applications. Finely control access with a degree of customization that can accommodate even the most complex security requirements.
This library provides core functionality via simple API to authenticate, authorize and manage user roles and attributes in order to check whether a user is authorized to access a specific resource. It also provides a JWT (JSON Web Token) and OAuth2 (and to some extent OpenID Connect) implementation.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-auth-core</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-auth-core:0.7.2")
}
Creates human and AI friendly String representations of JavaFX SceneGraphs.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-scenegraph</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-scenegraph:0.7.2")
}
This library provides a simple way to pick, drop, upload and download files in JPro/JavaFX applications.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-file</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-file:0.7.2")
}
shell
./gradlew jpro-file:example:run -Psample=text-editor
2) Run the file uploader sample
shell
./gradlew jpro-file:example:run -Psample=file-uploadershell
./gradlew jpro-file:example:jproRun -Psample=text-editor
2) Run the file uploader sample
shell
./gradlew jpro-file:example:jproRun -Psample=file-uploaderThis library makes very easy to manage the process of loading and caching images, allowing efficient retrieval and processing in JPro/JavaFX applications. It allows you to load images from the classpath, the file system, or from the web. The images can be encoded in various formats, such as PNG, JPEG and transformed to fit and scale to the desired size.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-image-manager</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-image-manager:0.7.2")
}
This library provides a simple way to send emails in JPro/JavaFX applications. It allows you to send emails using SMTP and SMTPS protocols. It also provides a simple way to compose and send emails with attachments.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-mail</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-mail:0.7.2")
}
This library is designed for audio and video playback and recording within JavaFX applications. It seamlessly operates on both desktop and mobile devices, as well as in web browsers via JPro, all while utilizing the same codebase.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-media</artifactId>
<version>0.7.2</version>
</dependency>
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv-platform</artifactId>
<version>1.5.10</version>
</dependency>
</dependencies>
plugins {
id 'org.bytedeco.gradle-javacpp-platform' version "1.5.10"
}
dependencies {
implementation("one.jpro.platform:jpro-media:0.7.2")
implementation "org.bytedeco:javacv-platform:1.5.10" // use compileOnly configuration when running/deploying with JPro
}
A minimalistic routing library for JPro/JavaFX applications. It allows you to define routes and to navigate between them. Pages are indexed by Google and the current link is updated in the browser. It works on desktop and mobile devices. Currently, there are three routing modules available:
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-routing-core</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-routing-core:0.7.2")
}
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-routing-dev</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-routing-dev:0.7.2")
}
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-routing-popup</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-routing-popup:0.7.2")
}
Formerly known as MDFX, this library allows you to render Markdown formatted content in your JPro/JavaFX applications.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-mdfx</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-mdfx:0.7.2")
}
This library provides a simple implementation of a session manager for JavaFX/JPro applications. It remembers the user, based on a cookie. A simple ObservableMap is used to store the session data. This data is only accessible in the JPro Server, not in the browser - which can be important for some security reasons.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-session</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-session:0.7.2")
}
This library offers essential tools for various functionalities to enhance the development of JPro/JavaFX applications.
<dependency>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-utils</artifactId>
<version>0.7.2</version>
</dependency>
</dependency>
dependencies {
implementation 'one.jpro.platform:jpro-utils:0.7.2'
}
This library provides an API to use WebRTC in JPro/JavaFX applications. This technology allows for the direct exchange of audio, video, and data between web browsers or devices, facilitating features like video conferencing, voice calling, and peer-to-peer file sharing directly in the web browser without requiring additional plugins or software. WebRTC is designed to be versatile and secure, employing end-to-end encryption to ensure privacy and data integrity. Its integration into major browsers and its extensive API make it a popular choice for developers building real-time communication capabilities into web applications, particularly in contexts where low latency and direct peer-to-peer communication are essential. For a Java and JavaFX developer, WebRTC offers a pathway to integrate real-time communication features into web applications, potentially enhancing user interaction and collaboration capabilities.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-webrtc</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-webrtc:0.7.2")
}
This library makes it easy to embed a YouTube video in your JPro/JavaFX applications. It provides a simple API
to embed the video in a JavaFX node called YoutubeNode. The video can be played, paused, stopped, and muted via
the embedded controls. The video can be played in full-screen mode.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-youtube</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-youtube:0.7.2")
}
import one.jpro.platform.sessions.SessionManager;
...
static SessionManager sessionManager = new SessionManager("myapp");
...
ObservableMap session = sm.getSession(WebAPI.getWebAPI(primaryStage));
session.put("key", "value");
session.get("key");
session.remove("key");
Notes: * The SessionManager should be created only once, and should be static. * The SessionManager needs a name, which is used to identify the application. Different applications should use different names.
Reactive dynamic CSS for JavaFX scenes and parents. Apply CSS strings at runtime without external stylesheet files.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-dynamic-css</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-dynamic-css:0.7.2")
}
A CSS FlexBox layout implementation for JavaFX. Brings the familiar CSS Flexbox model to JavaFX with support for flex-direction, flex-wrap, justify-content, align-items, align-content, gap, and per-child grow/shrink/basis/order properties — all styleable via CSS.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-flexbox</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-flexbox:0.7.2")
}
Provides a skin implementation of a scrollpane for JPro applications only.
<dependencies>
<dependency>
<groupId>one.jpro.platform</groupId>
<artifactId>jpro-html-scrollpane</artifactId>
<version>0.7.2</version>
</dependency>
</dependencies>
dependencies {
implementation("one.jpro.platform:jpro-html-scrollpane:0.7.2")
}
$ claude mcp add JPro-Platform \
-- python -m otcore.mcp_server <graph>