View on GitHub

Jo-client-platform

The jo-client-platform is a CRUD application framework for java

Download this project as a .zip file Download this project as a tar.gz file

jo-client-platform (JOCAP)

The jo-client-platform is a 3 layer CRUD application framework for java with a ui layer based on jo-widgets.

Main goals

Depending projects

Architecture

Architecture

The modules of the platform are devided into UI, Service and Common. This makes it possible to deploy 3 Tier Java Desktop Applications or AJAX Webapplications based on the same businesscode.

Deployment 1 - Web Applications

By using the RWT SPI impl of jo-widgets, JOCAP applications can be deployed as AJAX WEB Applications. The UI and the Service layer will be deployed on the server tier for that.

Deployment 2 - Remote Clients

The UI layer will be deployed on the client tier, e.g. with help of webstart. The client may use one of the supported jo-widgets SPI's like Swing, SWT or JavaFX. The service layer will be deployed on the server tier, and the remoting will be done (transparent) with help of the JOCAP remoting module.

Deployment 3 - Fat Clients

For standalone applications or just for easy testing and debuging during application development, it is possible to deploy the ui layer and the service layer on the client tier.

Features

Bean Tables

Control Panel Provider

Bean Forms

Bean Relations

Validation

Executions

Entity Service

Workbench

Services

LookUps

Plugins

Security

Exchangeable data layer

cap service api

The data layer for JOCAP applications can be exchanged.

Third party


Common API's

Service API

The service API will be used to register and consume any kind of services. While JOCAP provides predefined CRUD services, this API can also be used independently from JOCAP. Features:

Example:

      IReaderService<Person> readerService = ServiceProvider.getService(ReaderServiceIds.PERSON);

Plugin API

The plugin API will be used to register and consume any kind of plugin. While JOCAP defines a lot of plugins, this API can also be used independently from JOCAP. Features:

Security API

The security API provides a light weight API to provide:

The security API can be used independently from JOCAP.

Core API's

JOCAP Common API

Provides all interfaces that are used by UI and by service layer together.

Services:

jo-client-platform service API

Provides all interfaces that are used by the service layer.

jo-client-platform ui API

Provides all interfaces that are used by the UI layer.

Widgets:

Workbench:

jo-client-platform remoting

The JOCAP remoting decorates the services of the Service API described above. Even callback parameters of services work fine, if the UI and service layer is deployed on different tiers. The JOCAP remoting can easily be injected. If the developed application only uses default services or default callback interfaces of JOCAP, it is non-essential to know all details about remoting works. Actually the application code normally has no dependencies to the remoting, but the launcher code. Nevertheless, the remoting layer stack and the involved API's will be shortly decribed here:

Remoting layers

remoting layers

Message API

The message API is a low level API to send and receive messages with an reply channnel.

    public interface IMessageReceiver {

       /**
        * Callback to handle a message.
        * 
        * @param message
        * @param reply channel
        */
        void onMessage(Object message, IMessageChannel replyChannel);

    }

It builds the base layer for the JOCAP remoting. The following implementations are available so far:

The messaging API can be used independently from JOCAP.

(Method) invocation API

The method invocation API allows to invoke low level methods with callback parameters. The default implementation of the invocation API uses the messaging API.The invocation API can used independently from JOCAP.

Invocation service API

The invocation service API provides an method invocation service that has an result callback parameter and interim request and response parameters. The default implementation of the invocation service API uses the invocation API.The invocation service API can used independently from JOCAP.

jo-client-platform remoting modules

The JOCAP remoting uses the invocation service API to remote the default JOCAP CRUD services and all custom services that uses the default callback parameters of JOCAP:

The remoting can even be extended for custom callback interfaces.

Screenshots

User administration based on JO CLIENT PLATFORM with Swing remoting client

swing

User administration based on JO CLIENT PLATFORM with SWT remoting client

swt

User administration based on JO CLIENT PLATFORM with RWT web client

rwt