Monday, December 04, 2006

DBSight: Full-text database search platform/engine

DBSight: Full-text database search platform/engine: "Instead of weeks or even months to develop a full-text search for your data, if you know how to use DBSight, you can easily create the full-text search literally in minutes.
Feature-rich

Besides Google-like full-text search, you can have:

* Adjust Ranking by combination of relevance and fields like product price, score, comments cout, etc
* Summarized and highlighted results
* Amazon-like Results counted for each category, and sub-category
* Order results by the field you choose
* Recent searches history
* RSS feed for latest match
* Spelling check
* Pagination of the results
* Automatic results clustering
* Multi-Server mode for Server Clustering"

dbclient: DBClient, yet another Jdbc client tool

dbclient: DBClient, yet another Jdbc client tool: "DBClient is a new Open Source Tool for connecting to jdbc compliant relational databases.
Specific extensions will take care of each RDBMS implementation."

JDOInstruments -java object database- oodb -oodbms

JDOInstruments -java object database- oodb -oodbms: "# Byte-Code Enhancement of classes
# Byte-Code Compatibility
# Datastore identity
# Optimistic Transaction
# Nontransactional Read
# Retain values
# Restore values
# Second Class PersistenceCapable objects
# J2EE Integration
# Query (JDOQL)
# Index
# Schema Evolution"

EMMA: a free Java code coverage tool

EMMA: a free Java code coverage tool

Jester

Jester

A Tests Tester

Tuesday, November 07, 2006

Tuesday, October 31, 2006

svgsalamander: Default Project Content

svgsalamander: Default Project Content: "SVG Salamander is an SVG engine for Java that's designed to be small, fast, and allow programmers to use it with a minimum of fuss. It's in particular targeted for making it easy to integrate SVG into Java games and making it much easier for artists to design 2D game content - from rich interactive menus to charts and graphcs to complex animations."

xhtmlrenderer:

xhtmlrenderer:

Flying Saucer supports the bulk of the strict XHTML and CSS 2.1 standards. We are working towards complete (and correct) feature support of these standards, but not everything works yet. Most of it is there, though.
General XHTML / CSS features

* Formatted text: basically everything: paragraphs and spans, bold, italic, font sizes, text alignment, horizontal alignment, different fonts
* Box model: border, padding, margin, colors, background images, styled borders
* Full positioning support: static, relative, absolute, and fixed, and floats. There are still some issues dealing with multiple stacked floats. This code is being rewritten.
* Tables: Table support is currently being rewritten so check on the mailing list to see what works.
* Forms: Every standard form control is represented. There are still some bugs with alignment.
* Images: both as inline images with the tag and with background images.
* :hover styles for (dynamic) rollover effects
* Anchors, both external and in-document
* Lists: lists with proper positioning and
* CSS selectors. All CSS selectors in the spec should be supported, even the sibling/child ones
* Pagination
* Margin Collapsing
* R7pre1: Shrink-to-fit sizing. Turned on for auto-width floats, inline-blocks, and absolutely positioned content.
* R7pre1: min-width, max-width, min-height, and max-height properties, for non-replaced content only.

Thursday, October 19, 2006

1060 Research

1060 Research

1060 Research is an industry leading innovator of software infrastructure.

We are driven by a vision that software should be simple, easy to comprehend, and inherently flexible. Software that is simple can be assembled quickly, costs less, and readily adapts to inevitable changes. Our customers have built sophisticated enterprise software for a fraction of the cost of an equivalent Java J2EE or .Net based system.

A focus on code leads to object-oriented designs and results in brittle systems. We turned the development equation around and focused on information instead. Our research uncovered a simple, powerful, unifying idea that moves code and objects to a supporting role behind information resources and as a result, has transformed software development for our customers.

To realise our vision, we created NetKernel. NetKernel is simple, sophisticated and powerful. NetKernel is different to be better... We invite you to learn about NetKernel and explore it first hand by downloading the complete product.

Monday, October 16, 2006

Documentation - Safehaus

Documentation - Safehaus

Penrose is a java-based virtual directory server. Virtual directory enables federating (aggregating) identity data from multiple heterogeneous sources like directory, databases, flat files, and web services - real-time - and makes it available to identity consumers via LDAP.

Tuesday, September 19, 2006

Execute Query

Execute Query: "Introducing Execute Query

Execute Query is an operating system independent database utility written entirely in Java.

Using the power provided by Java Database Connectivity (JDBC), Execute Query provides the means by which to manipulate the database from simple queries to table creation and import/export of an entire schema's data. See Features for a list of some of the available tools.

Execute Query has been tested under Windows, Linux and Solaris using Java Runtime Environment v1.5 - Java v1.5.0 is recommended. If you do not have the required Java version please go to Sun's Java website.

Use the links on the navigation bar to the left to submit any suggestions or bugs. Your comments are most welcome and appreciated!

This software was developed using the NetBeans Java IDE on a Debian GNU/Linux system.

Execute Query is very much a work in progress and is continually being extended and refined with new features and tools. Interests of contribution are welcome.

Execute Query is available completely free of charge and will remain so under the GNU Public License."

Wednesday, September 13, 2006

SourceForge.net: jRegistryKey

SourceForge.net: jRegistryKey

JFritz

JFritz

WinFuture.de - Kritische L�cke in Suns Java Web Start

WinFuture.de - Kritische L�cke in Suns Java Web Start: "Kritische L�cke in Suns Java Web Start
von blizzard f�r WinFuture.de
Es ist nun bekannt geworden, dass sich in Sun Java Web Start eine kritische L�cke befindet und somit die Sicherheit Ihres Computers gef�hrdet wird. Durch diese Schwachstelle ist es Sch�dlingen m�glich ihr System zu infizieren, sobald Sie eine pr�parierte Internetseite besuchen. Die Web Start Technologie macht es m�glich Java Anwendungen schneller und leichter �ber einen Webserver zu verteilen damit Sie �ber ihren Webbrowser aufgerufen werden k�nnen.

Durch diesen Fehler im Web Start Launcher ist es Java Anwendungen m�glich, Zugriffsrechte auf Ihrem Computer zu erh�hen, installierte Programme zu starten und sich Schreib- und Leserechte zu erteilen. Die Sandbox ist normalerweise daf�r zust�ndig, um solche nicht autorisierten Zugriffe auf Ihren Pc zu verhindern. Durch die genannte L�cke ist es aber einem potenziellen Angreifer m�glich mit Hilfe manipulierter JNLP Dateien, eigene Kommandos an die Java Virtual Machine zu geben und damit die Sandbox abzuschalten.

Die Betriebssysteme Solaris, Windows und Linux in allen Versionen 1.4.2 der Java 2 Platform Standard Edition (J2SE) bis einschlie�lich 1.4.2_06 sind von diesem Fehler betroffen. Von diesem Fehler sind J2SE 5.0 und J2SE vor Version 1.4.2 nicht betroffen. Dieser Fehler tritt ausschlie�lich bei den Webbrowsern Firefox, Internet Explorer und Mozilla auf, jedoch nicht beim Opere Browser, da dieser von Hause aus nicht mit JNLP Dateien verkn�pft wird.

Die Software Entwickler haben den Fehler erkannt und in der neuen Version J2SE 1.4.2_07 beseitigt. Ebenso besteht die M�glichkeit, dass Anwender ihr System gleich auf J2SE 5.0 Update 2 aktualisieren. Bei den meisten Web Start Installationen ist das Auto Update aktiv, hier wird nur die Zustimmung des Updates ben�tigt. Falls Sie das Update nicht installieren wollen empfehlen die Hersteller, den Start von Java Web Start Anwendungen durch Ihren Browser zu deaktivieren. Au�erdem r�t Sun dazu, dies auch noch mal manuell abzuschalten, da sich die Anwendungen auch �ber die Kommandozeile starten lassen. Hierzu soll der Launcher (javaws.exe unter Windows und javaws unter Solaris und Linux) umbenannt werden. Eine genaue Anleitung hierzu finden Sie aber auch unter dem angebenden Link. "

Friday, September 01, 2006

The Volano Report

The Volano Report

MoTechno : IBM - JavaCard JCOP

MoTechno : IBM - JavaCard JCOP: "JCOP-SmartCard as IBM implementation of the JavaCard 2.2.1 OS

with 32kB EEPROM, Triple-DES Coprozessor and RSA Coprozessor."

OpenReports

OpenReports: "OpenReports is a powerful, flexible, and easy to use open source web reporting solution that provides browser based, parameter driven, dynamic report generation and flexible report scheduling capabilities. OpenReports supports JasperReports, an excellent full featured open source reporting engine, and was developed using leading open source components including WebWork, Velocity, Quartz, and Hibernate. "

Tuesday, August 29, 2006

Codehaus XFire - Home

Codehaus XFire - Home: "Codehaus XFire is a next-generation java SOAP framework. Codehaus XFire makes service oriented development approachable through its easy to use API and support for standards. It is also highly performant since it is built on a low memory StAX based model.
Features & Goals

* Support for important Web Service standards - SOAP, WSDL, WS-I Basic Profile, WS-Addressing, WS-Security, etc.
* High performance SOAP Stack
* Pluggable bindings POJOs, XMLBeans, JAXB 1.1, JAXB 2.0, and Castor support
* JSR 181 API to configure services via Java 5 and 1.4 (Commons attributes JSR 181 syntax)
* Support for many different transports - HTTP, JMS, XMPP, In-JVM, etc.
* Embeddable and Intuitive API
* Spring, Pico, Plexus, and Loom support.
* JBI Support
* Client and server stub generation
* JAX-WS early access support"

Stripes - Home

Stripes - Home: "Stripes is a presentation framework for building web applications using the latest Java technologies. The main driver behind Stripes is that web application development in Java is just too much work! It seems like every existing framework requires gobs of configuration. Struts is pretty feature-light and has some serious architectural issues (see Stripes vs. Struts for details). Others, like WebWork 2 and Spring-MVC are much better, but still require a lot of configuration, and seem to require you to learn a whole new language just to get started."

JExcelApi

JExcelApi: "Java Excel API is a mature, open source java API enabling developers to read, write, and modifiy Excel spreadsheets dynamically. Now java developers can read Excel spreadsheets, modify them with a convenient and simple API, and write the changes to any output stream (e.g. disk, HTTP, database, or any socket).

Any operating system which can run a Java virtual machine (i.e., not just Windows) can both process and deliver Excel spreadsheets. Because it is Java, the API can be invoked from within a servlet, thus giving access to Excel spreadsheets over internet and intranet web applications."

Wednesday, August 23, 2006

opensso: Home

opensso: Home: "The Open Web SSO project (OpenSSO) provides core identity services to simplify the implementation of transparent single sign-on (SSO) as a security component in a network infrastructure. OpenSSO provides the foundation for integrating diverse web applications that might typically operate against a disparate set of identity repositories and are hosted on a variety of platforms such as web and application servers. This project is based on the code base of Sun JavaTM System Access Manager, a core identity infrastructure product offered by Sun Microsystems."

Friday, August 18, 2006

Java Plugin Framework (JPF) - Home

Java Plugin Framework (JPF) - Home: "The JPF framework is based around the concept of 'plug-ins'. A plug-in is a structured component that contributes code and resources to the system and describes them in a structured way. These plug-ins can further define extension points, well-defined method hooks that can be extended by other plug-ins. When one plug-in provides an implementation of an extension point defined by another plug-in, we say that it adds an extension to the system. This approach allows developers using JPF to build highly modular and easily extendible applications."

Wednesday, August 16, 2006

java.net: A Brief Introduction to IoC

java.net: A Brief Introduction to IoC: "The Theory of IoC

The best way to describe what IoC is about, and what benefits it can provide, is to look at a simple example. The following JDBCDataManger class is used to manage our application's accessing of the database. This application is currently using raw JDBC for persistence. To access the persistence store via JDBC, the JDBCDataManger will need a DataSource object. The standard approach would be to hard code this DataSource object into the class, like this:"

Wednesday, August 09, 2006

TestNG - Welcome

TestNG - Welcome: "TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as:

* JDK 5 Annotations (JDK 1.4 is also supported with JavaDoc annotations).
* Flexible test configuration.
* Support for data-driven testing (with @DataProvider).
* Support for parameters.
* Allows distribution of tests on slave machines.
* Powerful execution model (no more TestSuite).
* Supported by a variety of tools and plug-ins (Eclipse, IDEA, Maven, etc...).
* Embeds BeanShell for further flexibility.
* Default JDK functions for runtime and logging (no dependencies).
* Dependent methods for application server testing.

TestNG is designed to cover all categories of tests: unit, functional, end-to-end, integration, etc..."

Friday, August 04, 2006

Swingweb - Swingweb - Introduction

Swingweb - Swingweb - Introduction: "Swingweb is a web-application framework that enables AWT/Swing application to operate inside a web container and presented as a web application to the web browser, purely in HTML/CSS/javascript. The swing application will render and behave in the web-container the same as it would as a desktop application. There is little knowledge required for the developer to start developing swingweb application as long as they are familiar with swing UI development. "

Monday, July 24, 2006

Launch4j - Cross-platform Java executable wrapper

Launch4j - Cross-platform Java executable wrapper: "Launch4j is a cross-platform tool for wrapping Java applications distributed as jars in lightweight Windows native executables. The executable can be configured to search for a certain JRE version or use a bundled one, and it's possible to set runtime options, like the initial/max heap size. The wrapper also provides better user experience through an application icon, a native pre-JRE splash screen, a custom process name, and a Java download page in case the appropriate JRE cannot be found."

Wednesday, July 12, 2006

Webapplication Unit Tests - Watij

start - Watij: "Watij (pronounced wattage) stands for Web Application Testing in Java. Watij is a pure Java API created to allow for the automation of web applications. Based on the simplicity of Watir and enhanced by the power of Java, Watij automates functional testing of web applications through a real browser. Currently Watij supports automating Internet Explorer on Windows only. Future plans are in place to support others like Mozilla. "

Thursday, July 06, 2006

Commons VFS - Commons Virtual File System

Commons�VFS - Commons Virtual File System: "Commons VFS provides a single API for accessing various different file systems. It presents a uniform view of the files from various different sources, such as the files on local disk, on an HTTP server, or inside a Zip archive."

Tuesday, July 04, 2006

EJBCA - The J2EE Certificate Authority - Welcome

EJBCA - The J2EE Certificate Authority - Welcome: "EJBCA is a fully functional Certificate Authority. Based on J2EE technology it constitutes a robust, high performance and component based CA. Both flexible and platform independent, EJBCA can be used standalone or integrated in any J2EE application.

EJBCA is an enterprise class PKI, meaning that you can use EJBCA to build a complete PKI infrastructure for your organisation. If you only want to issue a few single certificates for testing, there are probably options that will get you started quicker, but if you want a serious PKI we recommend EJBCA.

You can use EJBCA to issue certificates for different purposes such as:

* Strong authentication for users accessing your intranet/extranet/internet resources.
* Secure communication with SSL servers and SSL clients.
* Smart card based login to Windows and/or Linux.
* Signing and enrypting email.
* VPN connections by issuing certificates to your VPN routers such as OpenVPN, Cisco, Juniper etc.
* Client VPN access with certificates in users VPN clients.
* Single sign-on by using a single certificate to secure logon to web applications.
* Creating signed documents.
* Issue citizen certificates for access to government resourses, used in passports etc.
* ... and many many more ..."

Sunday, July 02, 2006

contineo - Open Source Document Management

contineo - Open Source Document Management: "Contineo in a few words...

Contineo is a web based document management system. It supports its users by managing documents in most popular formats. Contineo aims to fulfill all phases of document lifecycle. You can create and develop documents by using office software. With contineo itself, you can publish, search, and manage the versions of documents. Further, you can communicate with some other users directly or via e-mail.
Contineo was founded as a pure Java project in 2003. It is the attempt of the conversion of an easy to use und easy to extend document management system. That's why contineo is developed under an open source license.
At the moment contineo finally exists in version 2.0. Version 2.1 will be coming soon."

Friday, June 30, 2006

atleap: Blandware AtLeap - multilingual free Java CMS with full text search

atleap: Blandware AtLeap - multilingual free Java CMS with full text search: "Blandware AtLeap is a multilingual free Java CMS (Content Management System) with full-text search engine. Blandware AtLeap is a framework which allows you to rapidly start your own Web application.

The idea of the AtLeap project is based on my many years’ experience of management in the area of the site development. Blandware AtLeap is destined to creating both content-based sites and web applications with complicated business logic.

The most part of the site development and maintenance processes is the content (mainly texts) modifications in accordance with changeable customer requirements. There is CMS necessity which can allow shifting this routine work from technical to content specialists (advertising manager, linguist, translator etc.) who usually has not HTML knowledge or even to the customer representative who possesses most up-to-date and precise information in application domain."

Alfresco Community Network - Open Source Content Management

Alfresco Community Network - Open Source Content Management: "The Alfresco Community Network is designed for developers to have access to the latest Enterprise Content Management technology. It is a freely downloadable version of the leading open source Enterprise Content Management system. It is supported by an active community of open source developers. Alfresco Community Network is for:"

How to sign a PDF using iText

How to sign a PDF using iText

Sunday, June 25, 2006

DataVision Home

DataVision Home: "DataVision is an Open Source reporting tool similar to Crystal Reports. Reports can be designed using a drag-and-drop GUI. They may be run, viewed, and printed from the application or exported as HTML, XML, PDF, LaTeX2e, DocBook, or tab- or comma-delimited text files. The output files produced by LaTeX2e and DocBook can in turn be used to produce PDF, text, HTML, PostScript, and more.

DataVision is written in Java and runs almost anywhere. It can generate reports from databases or text data files. Any database with an available JDBC driver should work: Oracle, PostgreSQL, MySQL, Informix, hsqldb, Microsoft Access, Progress, and more. Columns read from text files can be separated by any character.

Report descriptions are stored as XML files. This means you can not only use the DataVision GUI but you may also edit reports using your favorite text editor."

validation: Home

validation: Home: "The JGoodies Validation helps you validate user input in Swing applications and report validation errors and warnings. It has been designed to work with different architectures and programming flavors."

Saturday, June 24, 2006

JCCKit

JCCKit: "The JCCKit is a small (< 100Kb) library and a very flexible framework for creating scientific charts and plots.

JCCKit is written for the JDK™ 1.1.8 platform (except of a Graphics2D renderer). Thus, it is suitable for scientific Applets and for PDA's running a PersonalJava™ implementation."

Saturday, June 17, 2006

Google Answers: Protect/encrypt java class (jar) files from theft

Google Answers: Protect/encrypt java class (jar) files from theft: "Obfuscator can not help protect your Java code from decompilers. Obfuscator can hide valuable names but not hide your logic or algorithms. There are a number of Java de-compiler products on the market that do this task such as Mocha, DJ Java Decompiler, Jad, WingDis, DejaVu, open source decompiler Jreverse Pro, Cavaj Java Decompiler, JCavaj Java Decompiler, Decafe Pro, SourceAgain ... etc. They produce readable source code even though your classes have been obfuscated. http://www.excelsior-usa.com/jetprotection.html Excelsior JET JVM offers a solution but actually it recompile your java source code and that is not Java program anymore. The only solution is to create a java secure class loader which does encrypting/ decrypting classes in the memory. We got the solution and is preparing patent it. The secure class loader already apply to SETECS products written in JAVA. It is proven as secure and efficient solution so far."

Wednesday, June 14, 2006

NoUnit - Measure your JUnit Test Coverage and Effectiveness - Java XML Extreme Programming

NoUnit - Measure your JUnit Test Coverage and Effectiveness - Java XML Extreme Programming

JavaNCSS - A Source Measurement Suite for Java

JavaNCSS - A Source Measurement Suite for Java: "Ever wondered how many lines of code or how many classes there are in the Sun JDK? Curious about the size of your own projects - or do you want to keep track of your work-progress. That's what JavaNCSS is for.

JavaNCSS is a simple command line utility which measures two standard source code metrics for the Java programming language. The metrics are collected globally, for each class and/or for each function.

Here is an example about what JavaNCSS prints out for the Sun JDK 1.1.5 java.* source tree (update: JDK 1.5 api source tree consists of 569'830 ncss).

JavaNCSS can optionally present its output with a little graphical user interface. To interactively select Java source files for counting, Jacob (a Java class browser and project manager) can be used for this purpose.

JavaNCSS can also be used out of an Ant build.xml script as it comes bundled with an Ant task written by Steve Jernigan. The JavaNCSS Ant Task is documented on a separate page.

You can always find the newest version of this page at: http://www.kclee.de/clemens/java/javancss/"

CSDL - Software Tools and Services - LOCC

CSDL - Software Tools and Services - LOCC

Metrics 1.3.6

Metrics 1.3.6

Saturday, June 03, 2006

Checkstyle - Checkstyle 4.1

Checkstyle - Checkstyle 4.1: "Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard.

Checkstyle is highly configurable and can be made to support almost any coding standard. An example configuration file is supplied supporting the Sun Code Conventions. As well, other sample configuration files are supplied for other well known conventions.

A good example of a report that can be produced using Checkstyle and Maven can be seen here."

JGAP: Java Genetic Algorithms Package

JGAP: Java Genetic Algorithms Package

JGAP (pronounced "jay-gap") is a genetic algorithms component written in the form of a Java framework. It provides basic genetic mechanisms that can be easily used to apply evolutionary principles to problem solutions. The next version will introduce Genetic Programming!

JGAP has been written to be very easy to use "out of the box," while also designed to be highly modular so that more adventurous users can easily plug-in custom genetic operators and other sub-components.

Thursday, June 01, 2006

Home Page of Jad - the fast Java decompiler

Home Page of Jad - the fast Java decompiler

Die Homepage des Java Decompilers is offensichtlich von Tripod hierher umgezogen.

Wednesday, May 31, 2006

DBCopy Plugin Home Page

DBCopy Plugin Home Page: "DB Copy Plugin is a plugin for the SQuirreL SQL Client (1.2beta6 and 2.0 RC1 )
that allows copying database objects (schema def and data) from one session window to another.

The source and destination sessions can be different database vendors (Hibernate is
used internally for data type translation)."

HelpSetMaker - Ein Programm zur Erstellung von Online-Hilfe-Systemen

HelpSetMaker - Ein Programm zur Erstellung von Online-Hilfe-Systemen: "HelpSetMaker - Ein Programm zur Erstellung von Online-Hilfe-Systemen

Hinweis: HelpSetMaker richtet sich grunds�tzlich an Muttersprachler verschiedener Sprachen. Das Programm ist momentan mit deutscher und englischer Benutzeroberfl�che ausgestattet. Die Online-Hilfe und die Seiten bei SourceForge sind aber nur in Englisch verf�gbar."

JHelpDev

JHelpDev

This is an overview of all features that have been implemented in the respective current version of JHelpDev. The requested features section provides an outlook for the future.
Implemented

* creates the map file from existing HTML files in a directory including targets
* convenient TOC editor with a tree view, image support
* smart automatic TOC generation searches HTML files for "title-like" entries and preserves existing entries
* powerful index editor allowing for quickly jumping to the location in the helpset
* two synchronized views for convenient index creation
* HS Editor for the views and labels of the JHelpNavigator
* list of recently visited projects, starts browsing in last directory
* support of subhelpsets
* easy to use preview with the original helpviewer
* one click creation of search database
* a context-sensitive helpsystem created with JHelpDev
* configuration changes are stored in an XML format

Monday, May 22, 2006

XMLmind: Aptconvert

XMLmind: Aptconvert: "Aptconvert is a command-line tool that can be used to convert the APT format to HTML, XHTML, PDF, PostScript, (MS Word loadable) RTF, DocBook SGML and DocBook XML."

Terracotta - Enterprise-class clustering for Java

Terracotta - Enterprise-class clustering for Java: "Clustering the JVM, Not the Application
Terracotta DSO is a runtime solution for clustering JVMs, instead of the application. By extending the Java heap, Terracotta DSO creates one “clustered” JVM that shares object state and behavior. Tuning the clustering behavior can now be done at runtime without code changes. Developers can focus on business logic, not infrastructure."

Marthon User Guide

Marthon User Guide: "Marathon is a general purpose tool for both running and authoring acceptance tests geared at the applications developed using Java and Swing. Included with marathon is a rich suite of components to help you interact with your application at the User Interface Level (GUI).

Marathon tests are scripted using Jython, a 100% pure java implementation of the programming language Python -- the emphasis being on a extremely simple, highly readable syntax that customers, analysts, testers and developers can all be comfortable with. But don't let the simplicity fool you. Python is a mature, full-featured programming language, so testers and developers don't need to sacrafice anything in terms of the power and creativity with which they can express their tests.

To aid with the regression testing of existing applications, Marathon comes bundled with a recorder to capture events as you use and interact with your application. These events are then converted into a valid Marathon test which can subsequently be played back."

Thursday, May 18, 2006

JSqlParser - Home

JSqlParser - Home

BNF Grammars for SQL-92, SQL-99 and SQL-2003

BNF Grammars for SQL-92, SQL-99 and SQL-2003

BNF for Java: Project Home Page

BNF for Java: Project Home Page

jGuru: JaVaCC Grammar modification required.

jGuru: JaVaCC Grammar modification required.

jGuru: JaVaCC Grammar modification required.

jGuru: JaVaCC Grammar modification required.

JaVaCC Grammar modification required.
Topic: JavaLanguage
Vijendra Singh, Mar 14, 2006
Hi, If someone has good command over writing .jj or.jjt files. I need some help in writing code. I need to incorporate in my sqlParser.jj and ultimately sqlParser.java files; so that they can read and parse :- "create view as select * from tablename" statement. This sqlParser.jj files are generating ASCII_char_stream instead Simple_char_stream, but i don't think it will create any problem. So just like it parsers create table...statement,delete,alster tables etc. It sholud also parse view without giving any error. I am giving this file with some modification i tried to do for views but grammar is mistaken please give me some useful way to solve this Thanks Vijendra New Page 1

/**
* Creation date: July 19th, 2000
* This is the JavaCC grammar definition file for the DDL dialect used by
* ZeroCode.
*/


// options {
// DEBUG_PARSER = true;
// }


PARSER_BEGIN(SqlParser)

package zerocode.sqlParser;

import com.sun.java.util.collections.*;
import java.io.*;
import java.util.Enumeration;

import zerocode.dbSupport.*;
import zerocode.core.*;



/**
* The SqlParser class encapsulates parsing of SQL DDL statements to enable
* zeroCode to construct the schema-related data structures. Most of its
* implementation is generated using the
* JavaCC
* application.
*/
public class SqlParser {


public interface ConstraintType {

public static final int UNIQUE = 1;

public static final int PRIMARY_KEY = 2;

}


public static void main (String args[]) throws Exception {
Schema dbSchema = buildSchema (new InputStreamReader (System.in));
System.out.println (dbSchema.toString());
}



public static synchronized Schema buildSchema (Reader stream)
throws ZcException {
_fkConstraints = new ArrayList();
_errorList = new Vector();
_dbSchema = new Schema ("ZeroCodeSchema");
if (_parser == null)
_parser = new SqlParser (stream);
else
_parser.ReInit (stream);
try {
_parser.ddlSequence ();
} catch (ParseException e) {
throw new ZcException
(ErrorCode.INVALID_SCHEMA, "SQL syntax error: " + e.getMessage());
}
_dbSchema.setConstraints (_fkConstraints);


if (_errorList.size() > 0)
throw new ZcException
(ErrorCode.INVALID_SCHEMA,
"Schema errors:\n" + StringUtils.join (_errorList, "\n"));
return _dbSchema;
}



private static void addTable (DbTable table) {
_dbSchema.addTable (table);
}



private static void addSequence (String sequenceName) {
_dbSchema.addSequence (sequenceName);
}



private static int convertToken (String message)
throws ZcException {
try {
int val = Integer.parseInt (token.toString());
return val;
} catch (NumberFormatException e) {
throw new ZcException
(ErrorCode.INVALID_SCHEMA,
message + "token '" + token.toString() + "' line " +
token.beginLine + " column " + token.beginColumn);
}
}

private static void setConstraint (DbTable table, String constraintName,
int constraintType,
StringSet columnNameSet) {
if (constraintType == ConstraintType.PRIMARY_KEY) {
int nCols = columnNameSet.size();
if (nCols > 1) {
// _errorList.add ("Table " + table.name() + ": must have " +
// "exactly one column as primary key.");
// We set the pri key anyway, to inhibit the subsequent
// "No primary key defined" error message.
table.setPrimaryKey (columnNameSet);
} else if (nCols <= 0) {
// _errorList.add ("Table " + table.name() + ": must have " +
// "a primary key.");
} else {
String colName = (String) columnNameSet.asArray()[0];
DbColumn col = table.columnWithName (colName);
if (col == null)
_errorList.add ("Table " + table.name() + ": Column '" +
colName + "', specified in primary key " +
"constraint, is not a declared column.");
else
table.setPrimaryKey (col.name());
}
} else {
// It should be a UNIQUE constraint
table.addUniqueConstraint
(new UniqueConstraint (constraintName, table, columnNameSet));
}
}


private static void addForeignKeyConstraint (String constraintName,
DbTable table,
StringSet columnNameSet,
String toTableName,
String toColName) {
if (columnNameSet.size() != 1) {
// We now silently ignore this problem -- MAS 1/7/2003
// _errorList.add ("Table " + table.name() + ": must have " +
// "exactly one column in foreign key.");
return;
}
String fkColName = columnNameSet.asArray()[0];
DbColumn fkCol = table.columnWithName (fkColName);
if (fkCol == null) {
_errorList.add ("Table " + table.name() +
": Cannot add foreign key constraint: no " +
"foreign key column named '" + fkColName + "'");
return;
}
DbTable toTable = _dbSchema.tableWithName (toTableName);
if (toTable == null) {
_errorList.add ("Table '" + toTableName + "' not found in schema.");
return;
}
DbColumn toColumn = toTable.columnWithName (toColName);
if (toColumn == null) {
_errorList.add ("Attempting to add foreign key from " +
table.name() + "(" +
columnNameSet.joinString(",") + ") to table '" +
toTableName + "': the latter has no column " +
"named '" + toColName + "'");
} else {
String constraintId = constraintName != null
? constraintName
: ("zcFkConstraint" + (++zcFkCount));
ForeignKeyConstraint constraint = new ForeignKeyConstraint
(constraintId, fkCol, toColumn, _fkConstraints.size());
_fkConstraints.add (constraint);
}
}

private static Schema _dbSchema;
private static Vector _errorList;
private static List _fkConstraints;
private static SqlParser _parser;

private static int zcFkCount = 0;
}

PARSER_END(SqlParser)

SKIP :
{
" "
|
"\t"
|
"\n"
|
"\r"
|
"--" : IN_LINE_COMMENT
|
"/*" : IN_COMMENT

}

SKIP:
{
"\n" : DEFAULT
}

MORE:
{
< ~[] >
}

SKIP:
{
"*/" : DEFAULT
}

MORE:
{
< ~[] >
}



TOKEN [IGNORE_CASE] :
{
< ADD: "add" >
| < ALL: "all" >
| < ALTER: "alter" >
| < AND: "and" >
| < ANY: "any" >
| < AS : "as" >
| < ASC: "asc" >
| < BY: "by" >
| < CACHE: "cache" >
| < CASCADE: "cascade" >
| < CHECK: "check" >
| < COLUMN: "column" >
| < COMMENT: "comment" >
| < CONSTRAINT: "constraint" >
| < CONSTRAINTS: "constraints" >
| < CREATE: "create" >
| < CYCLE: "cycle" >
| < DEFAULT_TOK: "default" >
| < DELETE: "delete" >
| < DESC: "desc" >
| < DROP: "drop" >
| < FOREIGN: "foreign" >
| < IDENTITY: "identity" >
| < IN: "in" >
| < INCREMENT: "increment" >
| < INDEX: "index" >
| < IS: "is" >
| < KEY: "key" >
| < MAXVALUE: "maxvalue" >
| < MINVALUE: "minvalue" >
| < NOCACHE: "nocache" >
| < NOCYCLE: "nocycle" >
| < NOMAXVALUE: "nomaxvalue" >
| < NOMINVALUE: "nominvalue" >
| < NOORDER: "noorder" >
| < NOT: "not" >
| < NULL: "null" >
| < ON: "on" >
| < OR: "or" >
| < ORDER: "order" >
| < PRIMARY: "primary" >
| < REFERENCES: "references" >
| < SELECT: "select" >
| < SEQUENCE: "sequence" >
| < SOME: "some" >
| < START: "start" >
| < TABLE: "table" >
| < UNIQUE : "unique" >
| < UPDATE : "update" >
| < VIEW : "view" >
| < WITH: "with" >


| < COMMA: "," >
| < DOT: "." >
| < IDENTIFIER: ["a"-"z","A"-"Z", "_"] (["a"-"z", "_", "0"-"9", "$", "#"])* >
| < LPAREN: "(" >
| < NUMBER: (["0"-"9"])+ >
| < RPAREN: ")" >
| < SEMICOLON: ";" >
| < SLASH: "/" >
| < STRING_LITERAL:
(
"'"
(~["'","\\","\n","\r"])*
"'"
)+
>
}


String allowedColumnName () :
{}
{
(
LOOKAHEAD(2)
< IDENTIFIER >
| < ANY >
| < AS >
| < ASC >
| < BY >
| < CACHE >
| < CASCADE >
| < CHECK >
| < COLUMN >
| < COMMENT >
| < CONSTRAINTS >
| < CREATE >
| < CYCLE >
| < DEFAULT_TOK >
| < DELETE >
| < DESC >
| < DROP >
| < FOREIGN >
| < IDENTITY >
| < IN >
| < INCREMENT >
| < INDEX >
| < IS >
| < KEY >
| < MAXVALUE >
| < MINVALUE >
| < NOCACHE >
| < NOCYCLE >
| < NOMAXVALUE >
| < NOMINVALUE >
| < NOORDER >
| < NOT >
| < NULL >
| < ON >
| < OR >
| < ORDER >
| < PRIMARY >
| < REFERENCES >
| < SELECT >
| < SEQUENCE >
| < SOME >
| < START >
| < TABLE >
| < UNIQUE >
| < UPDATE >
| < VIEW >
| < WITH >
) { return token.toString(); }
}


void ddlSequence () throws ZcException :
{
DbTable table;
String sequenceName;
}

{
(
(
comment()
|
(

(
table = tableDefinition () {
addTable (table);
}

|
indexDefinition ()
|
sequenceName = sequenceDefinition ()
{
addSequence (sequenceName);
}
)
)
|
(

(
view = viewDefinition ()
)
)
|
alterTable ()
|
dropTable()

)
(

|

)+
)+

}


void comment () :
{ }
{


(
(


)
|
(




)
)


}


DbTable tableDefinition () throws ZcException :
{
DbTable table;
DbColumn col;
}
{
{
table = new DbTable
(token.toString(), _dbSchema);
}


col = columnDefinition (table)
(

(
LOOKAHEAD(2)
col = columnDefinition (table)
|
constraint (table)
)

)*


{return table;}
}

//for view modified one
DbTable viewDefinition () throws ZcException :
{
DbTable view;
String col;
}
{
{
view = new DbTable
(token.toString(), _dbSchema);
}

col = columnName (col)
(

(
LOOKAHEAD(2)
col = columnName (col)
)
)*

{return view;}
}
//for view modified one
String columnName (String column)
throws ZcException :
{
String columnName, columnType;
}
{
(
columnName = allowedColumnName()
{columnType = token.toString();}
( {
columnType += " " + token.toString();
}
)

)
{return col;}
}

//for table
DbColumn columnDefinition (DbTable table)
throws ZcException :
{
String columnName, columnType;
int size = 0, precision = 0;
boolean nullable = true;
DbColumn col;
}
{
(
columnName = allowedColumnName()
{columnType = token.toString();}
( {
columnType += " " + token.toString();
}
)?
(

{
size = convertToken ("Integer size expected");
}

(

{
precision = convertToken
("Integer precision expected");
}
)?

)? {
col = new DbColumn
(columnName, columnType, size, precision,
table.columnCount(), nullable, table);
table.addColumn (col);
}
(
columnConstraint(col)
)*
)
{return col;}
}



void columnConstraint (DbColumn col) throws ZcException:
{
boolean nullable = true;
String toTableName, toColumnName, constraintName;
int constraintType;
StringSet colNameSet = null;
}
{
(

{
constraintName = token.toString();
}
(
(

{
constraintType = ConstraintType.UNIQUE;
}
)
|

(

{
constraintType = ConstraintType.PRIMARY_KEY;
col.table().setPrimaryKey (col.name());
}
)

|

(
(


(

)? {
constraintName = token.toString();
}
)?

{
toTableName = token.toString();
DbTable toTable = _dbSchema.tableWithName
(toTableName);
if (toTable == null)
throw new ZcException
(ErrorCode.INTERNAL_ERROR,
"Foreign key reference to nonexistent " +
"table '" + toTableName + "': line " +
token.beginLine + ", column " + token.beginColumn);
toColumnName = toTable.primaryKeyName();
if (toColumnName == null)
throw new ZcException
(ErrorCode.INTERNAL_ERROR,
"Foreign key reference to table '" +
toTableName + "' with no primary key: line " +
token.beginLine + ", column " + token.beginColumn);
}
(

colNameSet = columnNameList()

)? {
DbTable table = col.table();
if (colNameSet != null && colNameSet.size() > 0){
if (colNameSet.size() > 1)
throw new ZcException
(ErrorCode.INVALID_SCHEMA,
"Column " + col + " refers to " +
"more than one column: line " +
token.beginLine + ", column " +
token.beginColumn);
toColumnName = colNameSet.asArray()[0];
}
StringSet colNames = new StringSet();
colNames.add (col.name());
addForeignKeyConstraint
(constraintName, table, colNames, toTableName, toColumnName);
}
)
)
)
|
(


checkCondition()

)
|
(
(
{
col.setNullable (false);
}
)?

)
|
(
defaultClause()
)
|
(

(





)?
{
col.setIdentity ();
}
)
}




void defaultClause () :
{}
{

defaultExpr()
}


void constraint (DbTable table) throws ZcException :
{
String constraintName = null;
int constraintType = 0;
StringSet colNameSet = null, refColNameSet = null;
String toTableName = null;
String toColumn = null;
}
{

(

{
constraintName = token.toString();
}
)?
(
(

(
{
constraintType = ConstraintType.UNIQUE;
}

|

(

{
constraintType = ConstraintType.PRIMARY_KEY;
}
)
)

colNameSet = columnNameList ()
{
setConstraint (table, constraintName,
constraintType, colNameSet);
}
)

|

(


(
{
constraintName = token.toString();
}
)?

colNameSet = columnNameList()


{
toTableName = token.toString();
DbTable toTable = _dbSchema.tableWithName (toTableName);
if (toTable == null)
throw new ZcException
(ErrorCode.INTERNAL_ERROR,
"Foreign key reference to nonexistent " +
"table '" + toTableName + "': line " +
token.beginLine + ", column " + token.beginColumn);
toColumn = toTable.primaryKeyName();
}
(

refColNameSet = columnNameList ()

)? {
if (refColNameSet != null && refColNameSet.size() > 0) {
toColumn = refColNameSet.asArray()[0];
}
addForeignKeyConstraint
(constraintName, table, colNameSet, toTableName, toColumn);
}
)
|
(


checkCondition()

)
)
}





StringSet columnNameList () :
{
StringSet columns = new StringSet();
}
{

{
columns.add (token.toString());
}
(

{
columns.add (token.toString());
}
)*

{return columns;}


}




void alterTable () throws ZcException :
{
String tableName = null;
DbTable table = null;
}
{


{
tableName = token.toString();
table = _dbSchema.tableWithName (tableName);
if (table == null)
throw new ZcException
(ErrorCode.INTERNAL_ERROR,
"Invalid ALTER TABLE: " +
"No table with name '" + tableName + "': line " +
token.beginLine + ", column " + token.beginColumn);
}

(
constraintClause (table)
(

constraintClause (table)
)*
|
(

constraintClause (table)

)
)
}



void constraintClause (DbTable table) throws ZcException:
{
}
{
constraint (table)
(

( | )

)?
}




void dropTable () :
{}
{



(


)?
}





void indexDefinition () :
{}
{
(

)?






(

|

)?
(


(

|

)?
)*

}


String sequenceDefinition () :
{
String name;
}
{

{ name = token.toString(); }
(
(

)
|
(

)
|
(

)
|

|

|

|

|
(

)
|

|
(

)
|

|

)*
{return name;}
}


void defaultExpr () :
{}
{

|

|
(

(

defaultExpr()
(

defaultExpr()
)*

)?
)
|
(

defaultExpr()

)
}


void checkCondition() :
{}
{
(

checkCondition()

)
|
(

checkCondition2()
)
|
(
checkCondition2()
(
(

|

)
checkCondition()
)?
)
}


void checkCondition2() :
{}
{
expr()
(
(
(
"="
|
"!="
|
">"
|
">="
|
"<"
|
"<="
)
(
expr()
|
(

|

|

)
exprList()
)
)
|
(

exprList()
)
)?
}


void expr () :
{}
{
(

|

|

)
(
(
"+"
|
"-"
|
"*"
|

)
expr()
)?
}

void exprList () :
{}
{

expr()
(

expr()
)*

}






JavaCC Grammar Repository

JavaCC Grammar Repository

Zql: a Java SQL parser

Zql: a Java SQL parser

Tuesday, May 16, 2006

Jxp - Introduction

Jxp - Introduction: "Jxp (Java scripted page) is a script-processor/template-engine that can execute template files containing text java code. It contains a parser to parse the script file into an abstract syntax tree and a tree processor (JxpProcessor) that will process the syntax tree to execute the code using reflection API to produce output. Some of the main features of Jxp include:

* Java as template language. Why learn another one? ;)
* support common java language 1.4 constructs (partial 1.5 syntax support on jdk 1.4)
* practical template sources management framework
* support caching of parsed syntax tree to eliminate reparse of template
* a servlet implementation to enable web-scripting
* extensible processing context for defining built-in function on the scripts

Below is an example of a script file"

Friday, May 12, 2006

MMBase: MMBase - Homepage

MMBase: MMBase - Homepage: "MMBase is a Web Content Management System with strong multi media features and advanced portal functionalities. MMBase has a large installed base in The Netherlands, and is used by major Dutch broadcasters, publishers, educational institutes, national and local governments. MMBase is written in Java, it is Open Source Software (MPL) and all standards used are as 'open' as possible. The system can be used with all major operating systems, application servers and databases. "

SVN for Eclipse : Polarion Community

Polarion Community: "About Subversive Project
The Subversive project is a brand new Eclipse plug-in that provides Subversion support. From a user point of view, Subversive provides Subversion support similar to CVS support, which is already part of the standard Eclipse platform. The main use cases, which are familiar to CVS users, are:

* Connection to the repository using different connection types
* Repository browsing
* Check-out
* Synchronization
* Commiting
* Update
* Resolving conflicts
* Adding to the list of ignored resources"

Sunday, May 07, 2006

GraphicPrinter (SAP Mobile Infrastructure 2.5 [API-JavaDoc])

GraphicPrinter (SAP Mobile Infrastructure 2.5 [API-JavaDoc])

Barbecue - Barbecue

Barbecue - Barbecue: "Barbecue

Barbecue is an open-source, Java barcode library that provides the means to create barcodes for printing and display in Java applications. A number of barcode formats are supported and many more can be added via the flexible barcode API. Barcodes can be outputted to Graphics objects, or used as a Swing component, or written out as SVG. Please use the links on the left to find out more about Barbecue."

Welcome to Barcode4J

Welcome to Barcode4J: "Barcode4J is a flexible generator for barcodes written in Java. It's free, available under the Apache License, version 2.0."

Thursday, May 04, 2006

iScreen - The Java Object Validation Framework

iScreen - The Java Object Validation Framework

iScreen is a Java Object Validation Framework, suitable for validating Java Objects (including JavaBeans) to ensure that they are "valid" according to some definition (usually via configuration). The term 'iScreen' means "information screen," where 'screen' means to protect or conceal. Information, represented by Java objects, are passed through the screen. If they are considered acceptable (i.e. valid), then nothing occurs. If not, then an exception is thrown, allowing the application to notify someone or something of the invalid information.

Friday, March 24, 2006

JAAS Tutorial: Single Sign-On mit Kerberos gegen Windows Domain

JAAS Tutorial: Single Sign-On mit Kerberos gegen Windows Domain

Ein Verzeichnisdienst ermöglicht die zentrale Verwaltung von Ressourcen und ein Single Sign-On über verschiedene Systeme. Die dafür notwendigen Schnittstellen bietet der Java Authentication and Authorization Service (JAAS) und der Java Naming and Directory Service (JNDI).

Dieses Tutorial beschreibt, wie ein Single Sign-On mit JAAS und dem Kerberos Version 5 Authentifizierungsprotokoll umgesetzt werden kann. Als Verzeichnisdienst wurde der Active Directory Service (ADS) von Microsoft verwendet. Mit dem Beispiel wurde das folgende Szenario abgebildet:

* Ein User authentifiziert sich über das Kerberos Version 5 Authentifizierungsprotokoll bei einer Applikation.
* Anschließend wird mittels LDAP aus dem Active Directory des Domänencontrollers die Benutzerrollen des Users ausgelesen.
* Als Beispiel für eine Autorisierung wird, abhängig von den Rollen des Users, die Umgebungsvariablen java.home und user.home ausgegeben.

Sunday, March 19, 2006

- openDBcopy - an open-source database migration utility (Java),database migration,open-source,dbcopy,db,copy any database,jdbc,migrate databases,onli

- openDBcopy - an open-source database migration utility (Java),database migration,open-source,dbcopy,db,copy any database,jdbc,migrate databases,online migration,open-source software GPL,Puzzle ITC: "openDBcopy is a universal database utility to migrate data from and to any database given a JDBC driver.

* Standard filters are included
* Custom plugins can be added and/or developed
* Complete migration project saved as XML for easy re-use
* Run with GUI or as batch process"

Saturday, March 18, 2006

Joda Time - Java date and time API - Home

Joda Time - Java date and time API - Home: "Joda-Time provides a quality replacement for the Java date and time classes. The design allows for multiple calendar systems, while still providing a simple API. The 'default' calendar is the ISO8601 standard which is used by XML. The Gregorian, Julian, Buddhist, Coptic and Ethiopic systems are also included, and we welcome further additions. Supporting classes include time zone, duration, format and parsing."

jNotes

jNotes: "jNotes is an application for personal information management. With jNotes, you can edit the diaries, schedule events and plan your personal projects.

Main features of jNotes:

* Calendar-based user interface for navigation through the date items
* Easy-to-use text editor for diary notes editing
* Support for the numerous collections of the notes (aka 'books')
* Scheduling the events with reminding in a time
* Lightweight ('minimal') alternative start mode for enabling the event notifications in background
* Scheduling the to-do tasks, grouped in the numerous project workflows
* Calculation of the projects execution progress
* Automatic background saving of the all data changes
* Publishing the notes in the various formats (with pluggable export filters)
* XML is the native format of the jNotes data
* Full I18N support. The program can be localized without a rebuilding the source code."

Tuesday, March 14, 2006

Tobago

Tobago: "The goal of Tobago is to provide the community with a well designed set of user interface components based on JSF and run on MyFaces.

Tobago is more than just a tag library. The following statements characterize Tobago and make it different from other frameworks:

* The focus of Tobago is to create business applications without the need for HTML design. The development of Tobago pages follows more the development of conventional user interfaces than the creation of web pages.
* The UI components are abstracted from HTML and any layout information that does not belong to the general page structure. The final output format is determined by the client/user-agent.
* A theming mechanism makes it easy to change the look and feel and to provide special implementations for certain browsers. A fallback solution ensures that as much code is reused for new themes as possible.
* A layout manager is used to arrange the components automatically. This means, no manual layouting with HTML tables or other constructs is needed.

The development of Tobago started in 2002."

taglibrarydoc: Documents & files

taglibrarydoc: Documents & files

Monday, March 13, 2006

Multithreaded Job Queue - The Code Project - Threads, Processes & IPC

Multithreaded Job Queue - The Code Project - Threads, Processes & IPC: "In many of our applications we just want to get some thing done asynchronously. This is where some times we prefer to use job queue. Where we can just assign or add a job to the job queue and then it is the job queue's responsibilities to complete the job. This gives the flexibility to the main thread to concentrate on some thing else where the jobs can be processed at the background. If the job queue can be multithreaded and can process multiple jobs at the same time, it is better.

This article describes such an implementation of job queue. This implementation has the following features :

* The job queue is multi threaded, so many jobs can be processed simultaneously. The job queue uses a pool of threads to execute the jobs.
* The job queue supports priorities. The jobs with high priority will be added before the jobs with lower priority, in the queue. So they will be processed before other lower priority jobs.
* The job queue can be paused, so that no new job can be processed from the time of pause. But the user still can add jobs to the queue. The jobs will be processed once the user choose to resume the job queue.
* The number of threads that will be used by the job queue to process the jobs can be increased or decreased at run time.

Background"

Friday, March 03, 2006

spawn JVM via RMI

Creating an Activatable Remote Object: "The RMI daemon, rmid, provides a Java virtual machine* (JVM) from which other JVM instances may be spawned."

This technique can be used to implement fail-over scenarios. Using the rmid to spawn a JVM you have to keep in mind that, if you are using just ONE rmid, this would be single point of failure (SPOF)!

Another possibility to start a NEW JVM is to use the classes provided in the ANT framework. If you have a look to the source code of the Ant Task and trace back to the point where a new JVM is startet you will find the class Execute, with which it is possible to start a completly new JVM (FORK).

java cluster server

JavaWeb_July_August_05Connections.pdf (application/pdf-Objekt)

JavaWeb_July_August_05Connections.pdf (application/pdf-Objekt)