Java Toolbox


Overview

Java Framework that provides various APIs (Application Programming Interfaces) for use in Standard and Enterprise Java development.

The aim is to maintain a Java Framework, with minimal footprint and dependencies, to provide:

a) POJO Services API: (toolbox.services)

The API provides a POJO (Plain Old Java Object) based mechanism to express and implement application functionality as a set of collaborating services.

Service implementations can focus on requirements while the Services API is responsible for configuring, assembling and providing access to services.

The API aims to enforce best practices without introducing lots of complexity:

  • Interface or contract driven implementation.
  • The separation of object configuration and assembly from object use.

Coding using the API is simple:

      //First obtain a reference to a ServiceRegistry
      ServiceRegistry reg = ServiceRegistryFactory.getRegistry("myservices");

      //Now obtain the Service from the ServiceRegistry
      MyService svc = (MyService)reg.getService("MyServiceId",MyService.class);

      //Perform Service related operations.
      svc.doStuff();
    

b) RDBMS API: (toolbox.dao, toolbox.services.dao)

The API provides a mechanism that utilises the Java Collections Framework and Java Beans Pattern to persist and query data stored in a RDBMS (Relational Database Management System).

Features:

  • Support for multiple RDBMS'.
  • Pluggable connection pooling strategy. (Direct JDBC, JNDI, custom).
  • SQL generation. (insert, update, select, delete)
  • Flexible XML configuration.
  • Integration with the POJO Service API to implement persistence services.

c) LDAP API: (toolbox.ldap,toolbox.services.ldap,toolbox.services.ldap.simple)

The API provides a mechanism that utilises JNDI (Java Naming and Directory Interface) and the Java Collections Framework to persist and query data stored in a LDAP (Lightweight Directory Access Protocol) directory.

The API also features a reusable services API for basic user and group provisioning requirements.

Features:

  • XML configuration.
  • Integration with the POJO Service API to implement LDAP services.
  • Reusable user and group provisioning services that can be exposed as a Java API or Web Services.

The apps directory of the toolbox distribution contains a basic user and group management console implemented using the LDAP Services API.

d) JMS API: (toolbox.jms,toolbox.services.jms,toolbox.services.jms.simple)

Provides an API to implement JMS (Java Message Service) producers and consumers. The API also provides reusable service implementations to expose JMS messaging as a service.

Features:

  • XML configuration.
  • JEE and JSE configuration options
  • Integration with the POJO Service API to implement JMS services.
  • Reusable Producer and Consumer services.

e) Logging API: (toolbox.services.util.logging)

Provides an API to expose logging as a reusable service.

Features:

  • XML configuration.
  • Integration with JDK Logging and Log4j on the client side in addition to direct Web Services and XML/HTTP access.
  • Standard server side service implementations to log to STDOUT, Apache Commons Logging and RDBMS.
  • Pluggable log record formatting on the server side.

f) Mail API: (toolbox.mail,toolbox.services.mail,toolbox.services.mail.simple)

Provides an API, based on the JavaMail API, to implement SMTP mailing solutions.

Features:

  • XML configuration
  • JEE and JSE configuration options
  • Reusable mail service that can be exposed as a Java API and a Web Service.

g) MVC Web API: (toolbox.web)

An API to facilitate the development of Java web applications using the MVC (Model-View-Controller) design pattern.

Features:

h) Apache Ant Macros:

The Framework provides a set of ant macros to help with the process of building and assembling applications developed using the various API's of the framework.

i) Command line tools:

A set of command line tools are provided to help with the authoring of API configuration documents and the setup of project source directories.

j) Documentation

Provide good documentation to facilitate the use of the Framework, even by a novice.


News

[17 Nov 2012]

Java Toolbox Build 33 is available. Release notes available here.

This build includes minor fixes and enhancements and support the latest release of the

Toolbox Oracle Fusion Middleware Utilities Module

[02 Aug 2012]

Java Toolbox Build 32 is available. Release notes available here.

This build includes minor fixes and enhancements.

A new release of the Toolbox Oracle Fusion Middleware Utilities Module is available and includes integration for Oracle Siebel Stateless Sessions.

[25 May 2012]

Java Toolbox Build 31 is available. Release notes available here.

This build includes changes to support the release of the new Toolbox Oracle Fusion Middleware Utilities Module.

[28 Apr 2012]

Java Toolbox Build 30 is available. Release notes available here.

This release contains some notable updates:

  • Addition of a WebAction implementation capable of generating WSIL documents based on the contents of a web server directory.
  • Improvements to the ldapconsole application, including deployment to Oracle WebLogic Server and helpful installation instructions.
  • The web service design tool chain can now attach WS-Addressing policies to generated WSDL documents.

[03 Jan 2012]

Java Toolbox Build 29 is available. Release notes available here.

[18 Nov 2011]

Java Toolbox Build 28 is available. Release notes available here.

Added two ant macros to simplify the use of the templates/misc/wsdesign project template.

[15 Jun 2011]

Java Toolbox Build 27 is available. Release notes available here.

Added a skeleton project to help drive web service design initiatives. See my blog post for details on employing the skeleton project.

[18 Mar 2011]

Java Toolbox Build 26 is available. Release notes available here. Some notable additions:

  • Added a client socket API to facilitate the development of services that require interaction with TCP sockets.

[10 Feb 2011]

Java Toolbox Build 25 is available. Release notes available here. Some notable additions:

  • Access to WS-Addressing headers from service API's
  • The ability to included WSIL (Web Service Inspection Languange) generation in service development projects.
  • The addition of toolbox.ftp and toolbox.services.ftp packages.

[21 May 2010]

Java Toolbox Build 24 is available. Release notes available here. This release includes some interesting additions that include:

  • UDDI version 3 client capabilities to publish and query providers and WSDL services. The following UDDI version 3 registries are supported currently:

    - Oracle Service Registry 11g
    - Apache jUDDI 3.0.1

  • The ability to develop Web Service clients with the following features:

    - Basic Authentication.
    - WS-Security UsernameToken Authentication.
    - Dynamic access point lookup from UDDI.

  • More enhancements to the Logging Services API.

[04 Mar 2010]

Java Toolbox Build 23 is available. Release notes available here. This release focussed on general enhancements to the Logging Services API.

[10 Feb 2010]

Java Toolbox Build 22 is available. Release notes available here. Some of the notable additions in this release:

  • Apache CXF 2.2.* support
  • LDAP authentication and authorisation for Web Services using WS-Security (WSS4J).
  • The addition of the apps directory. This directory will contain out of the box applications built with the framework. The first application is a basic LDAP provisioning application that includes a Web GUI and Web Services interface.
  • Service API's for LDAP, JMS, Logging and Mail were added. This reduces the time required to create coarse API's to interact with these technologies.

[17 March 2009]

Java Toolbox Build 21 is available. Release notes available here. This release contains minor enhancements.

[03 July 2008]

Java Toolbox Build 20 is available. Release notes available here. The most notable enhancements in this release are; integration with the JAMon API to facilitate the monitoring of the internals of framework applications and the addition of the Service Generator utility.

[28 January 2008]

Java Toolbox Build 19 is available. Release notes available here. The most notable enhancement in this release is the integration with the Apache Axis2 SOAP implementation to expose services developed with the Java Toolbox as Web Services.

[14 December 2007]

Java Toolbox Build 18 is available. Release notes available here. This is an exciting release and includes:

  • Integration with the Apache CXF services framework to expose Web Services.
  • The launch of Toolbox Modules. Use the left navigation menu to browse the available modules.

[09 October 2007]

Java Toolbox Build 17 is available. Release notes available here.

[11 May 2007]

NEWS ALERT! Java Toolbox Build 16 is available due to a bug in Build 15.
From the release notes:
The addition of the toolbox.dao.orm package caused an omission in the java/build.xml file that caused the toolbox.dao.oracle package to be excluded from the build.

[02 May 2007]

Java Toolbox Build 15 is available. Release notes available here.

[25 January 2007]

Java Toolbox Build 14 is available. Release notes available here.

[05 December 2006]

Java Toolbox Build 13 is available. Release notes available here.