JMinor Application Framework

As simple as possible but not simpler

User Tools

Site Tools


documentation:technical:client

Introduction

  • Lightweight single threaded client with a simple synchronous event model
  • Provides a practically mouse free user experience
  • Graceful handling of network outages and server restarts
  • Clear separation between model and UI
  • Easy to use load testing harness provided for application models 1)
  • UI data bindings for most common components provided by the framework 2)
  • Implementing data bindings for new components is made simple with building blocks provided by the framework.
  • The default UI layout is a simple and intuitive “waterfall” master-detail view 3)
  • Extensive searching and filtering capabilities
  • Flexible keyboard-centric UI based on tab and split panes, detachable panels and toolbars
  • Detailed logging of client actions

Configuration

Demo launch files

File: resources/demos/empdept/empdept.jnlp -

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://jminor.no-ip.org/demos/empdept" href="empdept.jnlp">
 
  <information>
    <title>EmpDept JMinor Demo</title>
    <vendor>JMinor.org</vendor>
    <icon href="jminor.png"/>
  </information>
  <security>
    <all-permissions/>
  </security>
 
  <resources>
    <j2se version="1.8+" />
 
    <jar href="empdept.jar" main="true" />
 
    <property name="jminor.client.connectionType" value="remote"/>
    <property name="javax.net.ssl.trustStore" value="JMinorClientTruststore"/>
    <property name="jminor.server.hostname" value="jminor.no-ip.org" />
    <property name="jminor.report.path" value="reports/demos" />
  </resources>
 
  <application-desc main-class="org.jminor.framework.demos.empdept.client.ui.EmpDeptAppPanel"/>
</jnlp>

File: resources/demos/empdept/empdept_local.bat -

java -Xmx128m -Djminor.configurationFile=h2db.config -cp empdept.jar;config org.jminor.framework.demos.empdept.client.ui.EmpDeptAppPanel

File: resources/demos/empdept/empdept_local.sh -

java -Xmx128m -Djminor.configurationFile=h2db.config -cp empdept.jar:config org.jminor.framework.demos.empdept.client.ui.EmpDeptAppPanel &

File: resources/demos/empdept/empdept_remote.bat -

java -Xmx128m -Djminor.configurationFile=remote.config -cp empdept.jar;config org.jminor.framework.demos.empdept.client.ui.EmpDeptAppPanel

File: resources/demos/empdept/empdept_remote.sh -

java -Xmx128m -Djminor.configurationFile=remote.config -cp empdept.jar:config org.jminor.framework.demos.empdept.client.ui.EmpDeptAppPanel &

Demo security policy file

File: resources/security/jminor_demos.policy -

grant {
  //write to the log file
  permission java.io.FilePermission "${user.home}/logs", "read";
  permission java.io.FilePermission "${user.home}/logs/*", "read,write,delete";
  permission java.io.FilePermission "${java.io.tmpdir}/*", "read,write,delete";
  permission java.io.FilePermission "${java.home}/-", "read";
  //read everything
  permission java.io.FilePermission "<<ALL FILES>>", "read";
 
  permission java.net.SocketPermission "*:80-", "connect";
 
  //read and write all system properties
  permission java.util.PropertyPermission "*", "read,write";
 
  permission java.awt.AWTPermission "accessEventQueue";
  permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
  permission java.awt.AWTPermission "accessClipboard";
  permission java.awt.AWTPermission "setWindowAlwaysOnTop";
 
  permission java.lang.RuntimePermission "setDefaultUncaughtExceptionHandler";
  permission java.lang.RuntimePermission "preferences";
};

Demo configuration files

File: resources/demos/empdept/h2db.config -

jminor.client.connectionType=local
jminor.db.embedded=true
jminor.db.embeddedInMemory=true
jminor.db.initScript=classpath:create_schema.sql
jminor.db.host=h2db/h2
jminor.db.type=h2
jminor.report.path=reports

File: resources/demos/empdept/remote.config -

jminor.client.connectionType=remote
jminor.report.path=reports/demos
jminor.server.hostname=localhost
javax.net.ssl.trustStore=JMinorClientTruststore

Common

  • jminor.report.path=path/to/reports/ 4), the root path to any reports used by the client, file or http based
  • jminor.client.defaultUser=username 5), the default user name to show when logging in
  • java.security.policy=jminor_client.policy

RMI Server

Configuration arguments required for a JMinor client connecting to a JMinor RMI server:

  • jminor.client.connectionType=remote 6)
  • jminor.server.hostname=localhost 7), the name of the RMI server host
  • jminor.server.port=3333 8), if specified the client only connects to a RMI server available on the given port
  • javax.net.ssl.trustStore=JMinorClientTruststore, required if the server is running in secure connection mode 9)

Local Derby Embedded

Configuration arguments required for a JMinor client connecting to a local embedded Derby database instance:

  • jminor.client.connectionType=local 10), not required since the default value is 'local'
  • jminor.db.host=derbydb/derby 11)
  • jminor.db.type=derby 12)
  • jminor.db.embedded=true 13)

Local MySQL

Configuration arguments required for a JMinor client connecting to a MySQL database server:

  • jminor.client.connectionType=local 14), not required since the default value is 'local'
  • jminor.db.host=localhost 15)
  • jminor.db.port=3306 16)
  • jminor.db.sid=mysql 17)
  • jminor.db.type=mysql 18)

Load testing

documentation/technical/client.txt · Last modified: 2016/03/21 14:53 by darri