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)

Tuesday, February 28, 2006

FProfiler - the fast alterantive

FProfiler - the fast alterantive: "FProfiler is a very fast profiler for Java. It uses BCEL and log4j to log every methodstart and -end. FProfiler can be used to find hotspots in your Java Applications, Servlets, Applets... - whatever."

Sunday, February 19, 2006

HA-JDBC: High-Availability JDBC

HA-JDBC: High-Availability JDBC: "HA-JDBC is a JDBC driver proxy that provides light-weight, transparent, fault tolerant clustering capability to any underlying JDBC driver."

Friday, February 17, 2006

ant build File beispiel mit vielen guten Tricks

FishEye: file checkstyle/checkstyle/build.xml: "emma report"

EMMA: a free Java code coverage tool

EMMA: a free Java code coverage tool: "EMMA: a free Java code coverage tool

Code coverage for free: a basic freedom?



Until recently, the world of Java development had been plagued by an absurd discrepancy: Java developers had excellent free IDEs, free compilers, free test frameworks but had to rely on code coverage tools that charged an arm and a leg in license fees. As a Java pro, I would like to use the same free coverage tool regardless of whether it is a massive commercial project at work or a small fun project at home. I've created EMMA to be that tool.

EMMA is an open-source toolkit for measuring and reporting Java code coverage. EMMA distinguishes itself from other tools by going after a unique feature combination: support for large-scale enterprise software development while keeping individual developer's work fast and iterative. Every developer on your team can now get code coverage for free and they can get it fast!

Chances are, you've come here already knowing what coverage is all about and are, in fact, wondering what EMMA offers and why it is worth checking out. Explore the rest of this site to see why."

Sunday, February 12, 2006

EJB fundamentals and session beans

EJB fundamentals and session beans: "Summary
In this article, an excerpt from Beginning Java EE 5 (Apress, October 2005; ISBN: 1590594703), authors Jim Crume, Kevin Mukhar, James Weaver, and Chris Zelnak describe the benefits of using EJBs and focus specifically on how to develop a session bean. (5,500 words; February 13, 2006)"

Friday, February 10, 2006

Home - jstripe.com

Home - jstripe.com: "Welcome to the home of Tomcat Probe. Tomcat Probe is the ultimate tool to manage and monitor your Tomcat instance. Lightweight web user interface, killer features, no-fuss installation and weekly updates. Tomcat Probe gives you total control over live Tomcat instances and applications. For more information please visit the overview section."

OSWorkflow - OSWorkflow Overview

OSWorkflow - OSWorkflow Overview: "OSWorkflow is fairly different from most other workflow systems available, both commercially and in the open source world. What makes OSWorkflow different is that it is extremely flexible. This can be hard to grasp at first, however. For example, OSWorkflow does not mandate a graphical tool for developing workflows, and the recommended approach is to write the xml workflow descriptors 'by hand'. It is up to the application developer to provide this sort of integration, as well as any integration with existing code and databases. These may seem like problems to someone who is looking for a quick 'plug-and-play' workflow solution, but we've found that such a solution never provides enough flexibility to properly fulfill all requirements in a full-blown application."

Friday, February 03, 2006

jarjarclassloader: Home

jarjarclassloader: Home: "The JarJarClassLoader is a program I've wrote to clean up application deployments. The main idea is to be able to include third party JAR files inside a main JAR file instead of having them floating around in the users file system. So far this class loader works well but I'm looking for testing, input, and help from the community to make it, less britile, faster. I'd also love to hear from folks if they find this useful."

JUnit PDF Report

JUnit PDF Report: "The project generates a PDF report from JUnit test results.
It uses Apache Ant to execute the generation, and Apache FOP to render the PDF document.

The project is hosted on SourceForge.net."

Tuesday, January 31, 2006

Coldbeans Software - your store for web components

Coldbeans Software - your store for web components

1. Calendar-servletWAP/WML Live demo
2. ForumWAP/WML Live demo
3. NewsWAP/WML Live demo
4. wwwboardWAP/WML Live demo
5. MessageBoardWAP/WML Live demo

6. ChatServletWAP/WML Live demo
7. Co-browse Servlet
8. Community ServletWAP/WML

9. WebPop-servlet
10. WebMail-servlet
11. MailBoard-servlet

From our users: "Must commend you on a fantastic suite of servets etc.
Very very good."

12. Load balance
13. Protect servlets
14. HTTP proxy servlet
15. Error message servlet

16. File manager
17. ArcManager-servlet

18. ShellServletWAP/WML
19. WAPpingWAP/WML
20. WebTestWAP/WML
21. WAPHeadWAP/WML

From our users: "awesome support and awesome servlets!"

22. Mbox-servlet

23. WebLog-servlet Live demo

24. Slide servlet Live demo

25. TreeView-servlet

26. Classifieds
27. Portal servlet

Thursday, January 19, 2006

AgileTrack - Agile/Extreme Programming Iteration and Task Tracking Tool

AgileTrack - Agile/Extreme Programming Iteration and Task Tracking Tool: "AgileTrack is an open-source Java based application for tracking software development in agile development or extreme programming (XP) teams. It includes support for managing stories and other issues, sub-tasks, tracking time, managing multiple projects, planning iterations, and providing iteration reports. It provides a unique interface that is simple to use and allows software developers to have task information always at their fingertips."

Tuesday, January 17, 2006

subclipse.tigris.org

subclipse.tigris.org

There are three projects hosted on this site:

* Subclipse is an Eclipse plugin that adds Subversion integration to the Eclipse IDE. Subclipse is licensed under the terms of the Common Public License (CPL) 1.0.
* svnClientAdapter is a high-level Java API for Subversion and is used by Subclipse. svnClientAdapter is licensed under the terms of the Apache Software License 2.0
* svnAnt is an Ant task that uses svnClientAdapter and provides access to Subversion from Ant scripts. svnAnt is licensed under the terms of the Apache Software License 1.1

AntDoc web site

AntDoc web site: "AnDoc is an automatic Ant script documentation generation, in the same spirit as the must JavaDoc. This documentation enables to directly execute Ant build files. AntDoc is an Ant task.

AntDoc has now a GUI named AntDocGUI, which is a well featured Ant target runner."

Monday, January 16, 2006

Active JMS

Active JMS: "Activating Java Message Services!

The Java Message Service 1.0.2 API has become the standard for MOM products large and small and its implementation ranges from expensive commercial products to freeware and even open source projects. As its name suggests, however, it only provides a standard Java API. This means that:

* There are no widely accepted standardized, non-Java, non-proprietary messaging APIs.
* Support for non-Java access to many JMS systems is very limited.

These two facts often present a problem for an organization, as they often need to have non-Java clients participate in a JMS network. Until now these organizations had few choices—they could use the JMS vendor’s proprietary ActiveX client (if the vendor offered one), or they could use a general purpose 3rd party Java-ActiveX integration tool. Neither of these solutions is ideal, however, because they are contrary to the ‘open’ nature of the JMS specification itself. You get tied down to a particular vender once again!

The Active JMS open source project was created to solve this problem by offering a freely available, non-proprietary, open source ActiveX JMS client API. With it, you can access a large majority of the JMS functionality without compromise."

OpenJMS - OpenJMS

OpenJMS - OpenJMS: "OpenJMS is an open source implementation of Sun Microsystems's Java Message Service API 1.1 Specification
Features

* Point-to-Point and publish-subscribe messaging models
* Guaranteed delivery of messages
* Synchronous and asynchronous message delivery
* Persistence using JDBC
* Local transactions
* Message filtering using SQL92-like selectors
* Authentication
* Administration GUI
* XML-based configuration files
* In-memory and database garbage collection
* Automatic client disconnection detection
* Applet support
* Integrates with Servlet containers such as Jakarta Tomcat
* Support for TCP, RMI, HTTP and SSL protocol stacks
* Support for large numbers of destinations and subscribers"

Thursday, January 12, 2006

jManage - Web and Command Line Based JMX Client

jManage - Web and Command Line Based JMX Client: "jManage is a open source, web and command-line based JMX client, which provides a centralized console for managing application clusters and distributed-application environments. jManage goes beyond an ordinary JMX client by providing features like Alerts, Graphs, Security, SNMP support, etc. The jManage mission is to provide an open source management platform, which can be used to manage and monitor complete production environment.

jManage is successfully being used by various companies, in Development, QA, Staging and Production environments. It is very easy to setup jManage. Download now and get started. "

JMX4Ant

JMX4Ant


Welcome to the JMX4Ant. JMX4Ant is a set of optional Ant tasks that allows interactions with JMX MBeans.

Like many other programmers, I find Ant to be an extremely handy tool to use in automating away the daily drudgery of routine development tasks. In J2EE development, one kind of drudgery that I have a special dislike for is the creation and management of J2EE resources that my applications depend upon.

My motivation therefore was to provide tasks for J2EE resource creation and management from Ant that I use to build/deploy application. (e.g. create my JDBC pool and JMS queues/topics before I deploy my entity and message driven beans...), but the tasks are general enough for much broader use (i.e. general purpose J2EE server and application administration).

If you have questions, comments, or suggestions for improvements please feel free to contact me directly, or post to one of the JMX4Ant lists on Sourceforge.

Version 1.2 of JMX4Ant contains a number of important new features and some bug fixes as well. One of the most requested enhancements for JMX4Ant that is now part of v1.2 is support for WebLogic's Targets property, and addTarget method. This enhancement allows JMX4Ant to deploy and undeploy the resources that are created to a particular target server. For more information on v1.2 features, refer to the Change History section of this document.

jvmstat

jvmstat: "The jvmstat technology adds light weight performance and configuration instrumentation to the HotSpot JVM and provides a set of monitoring APIs and tools for monitoring the performance of the HotSpot JVM in production environments. The instrumentation is designed such that it is 'always on', yet has negligible performance impact. The monitoring interfaces added to the HotSpot JVM are proprietary and may or may not be supported in future versions of the HotSpot JVM.

* Introduction
* HotSpot™ Monitoring Tools and Utilities
* Download
* Installation
* Instrumentation
* Support (including the jvmstat FAQ)"

The JTR Java Test Runner Project

The JTR Java Test Runner Project: "JTR, acronym for Java Test Runner, is a Java framework that helps developers in building stress test suites. JTR has been devised with some targets in mind:

*

ease of use
*

extendability
*

high configurability
*

modularity
*

rapid development
*

providing J2EE developers with those facilities they usually need
*

ready to use logging facilities
*

Inversion of Control: let the JTR framework inject runtime properties into your runners
*

complete control of the exceptions potentially raised during your test runs

I decided to start devising & coding JTR since I was looking for a framework that could have helped me in building a complex J2EE test environment. The need came out one day at work: I had to stress test a J2EE application and after looking around for suitable testing frameworks I simply decided to start out writing my own one. This approach does not means the JTR framework either is or will be closed with respect to other testing frameworks. Infact it is my firm willing to integrate it with the most popular ones out there nowadays in the next future.
More information covering the most interesting details of the aims sketched above is provided in the reminder of this document (Project Details)."

Tuesday, January 10, 2006

Quartz - Quartz Overview

Quartz - Quartz Overview: "Quartz is a full-featured, open source job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application - from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components or EJBs. The Quartz Scheduler includes many enterprise-class features, such as JTA transactions and clustering.

Quartz is freely usable, licensed under the Apache 2.0 license."

Monday, January 09, 2006

dbdoclet Homepage

dbdoclet Homepage: "The DocBook Doclet (dbdoclet) creates DocBook code from Java source documentation. It is helpful, if you want to print reference handbooks of your API. The program can be used as javadoc doclet or as standalone application. The standalone application can be used as a converter to transform HTML documents to DocBook documents. Additionally DocBookDoclet comes with a Swing application called dbdoclet.TiDBit, which helps you to manage your documentation projects and to create PDF files."

XStream - About XStream

XStream - About XStream: "XStream is a simple library to serialize objects to XML and back again.
Features

* Ease of use. A high level facade is supplied that simplifies common use cases.
* No mappings required. Most objects can be serialized without need for specifying mappings.
* Performance. Speed and low memory footprint are a crucial part of the design, making it suitable for large object graphs or systems with high message throughput.
* Clean XML. No information is duplicated that can be obtained via reflection. This results in XML that is easier to read for humans and more compact than native Java serialization.
* Requires no modifications to objects. Serializes internal fields, including private and final. Supports non-public and inner classes. Classes are not required to have default constructor.
* Full object graph support. Duplicate references encountered in the object-model will be maintained. Supports circular references.
* Integrates with other XML APIs. By implementing an interface, XStream can serialize directly to/from any tree structure (not just XML).
* Customizable conversion stategies. Strategies can be registered allowing customization of how particular types are represented as XML.
* Error messages. When an exception occurs due to malformed XML, detailed diagnostics are provided to help isolate and fix the problem."

ClassEncrypt Software

ClassEncrypt Software: "ClassEncrypt is a program that can encrypt a developer's class files to prevent malicious users from stealing the source code. The program uses a modular design to allow the developer to create different encryption modules for the program to use. This software does not prevent the developer's software from being pirated.

The software comes with a default module that encrypts and decrypts using the Blowfish algorithm that was created by Bruce Schneier. This software is meant to be a barrier of protection for Java developers who want to market their software. It is not at all foolproof since the software enables the encrypted class files to still run using the regular JVM. It does, however, slow down any reverse engineering that someone may try on the developer's software."

Sunday, January 08, 2006

jcoverage

jcoverage

At jcoverage we are about productivity. Our suite of tools and technologies aim to reduce the 'code - test - diagnose - fix' cycle.

If you are using code coverage tools, you are also writing tests. We believe that you can improve your test development productivity at the same time.

Once you have coded, your tests and coverage analysis should run quickly so you can check outcomes and deliver changes as required from test feedback. It should also be able to easily test units in isolation rather than testing system as a whole.

You can start by downloading jcoverage/gpl, our free code coverage tool. Get started and see how much of your code is being covered by tests.

Once you have seen what our free coverage tool can do for you, why not use the fully supported jcoverage commercial edition.

Where your testing is less than adequate, you can improve your test quality and coverage through the use of our mock object technologies, included in our flagship product jcoverage+.

jcoverage+ includes our standard jcoverage technologies and introduces more rigour and finer granularity to your testing, allowing you to simulate and test for scenarios that otherwise would be impossible to test automatically.

Enterprise Java Community: The Power of JAAS: Security System Alternatives

Enterprise Java Community: The Power of JAAS: Security System Alternatives

Purpose

I attended the CIO Forum a several months ago and sat in on a presentation on Identity Management, which is considered by C-level executives one of the hot technologies. From a C-level executive’s perspective, this presentation falls generally under the domain of Identity Management. At the Forum, the speaker briefly discussed RBAC (Role Base Access Control) and anecdotally mentioned that it is a “hard nut to crack.”

This article is an extension of a recent article I published on TheServerSide.com, Exploring J2EE Security for Applications using LDAP. That article identified key interfaces within a J2EE compliant application server that need to be configured in order to build secure applications focusing on RBAC, which is an integral part of Identity Management.

However, the article did not discuss, in detail, alternatives to using LDAP directly for Java Authentication and Authorization Service (JAAS) security, such as a Trust Association, one of the more popular system alternatives. Essentially, the power of JAAS is in its ability to use almost any underlying security system. One of those approaches is to use a Trust Association Interceptor (TAI) instead of direct LDAP access.

Eclipse BIRT Home

Eclipse BIRT Home: "BIRT is an open source, Eclipse-based reporting system that integrates with your application to produce compelling reports for both web and PDF.

BIRT provides core reporting features such as report layout, data access and scripting. The current released version is 1.0.1. Please try BIRT and tell us what you think by filling bugs reports & enhancement requests through Bugzilla as explained on the community page."

Saturday, January 07, 2006

aisland: Home

aisland: Home: "AIsland's goal is to provide a framework to build and distribute agents.

The framework exposes objects (graphic module, audio module, neural network, fuzzy logic ...)
to an agent developer, who can glue these modules together using a scripting language, initally JavaScript.

Mobile Agents travel between different AIslands. If an Agent requests a module unknown to an AIsland,
the platform will ask the user for permission to load code from another peer. AIslands can persist trust relationships.

The inital version builds on Java and fat clients, facilitating a Java Swing GUI and a BSF/ Rhino engine,
to script against modules sitting on an JMX component bus hosted by an Avalon based micro kernel.

A port to small devices (J2ME - Java phones) is a future option.

An Agent is represented by an XML document and is distributed as a JXTA Codat.
Agents contain script code, which is interpreted by an AIsland (a JXTA peer) in a secure manner.
Host file systems are protected against malicious agents.

Agents and AIslands communicate using JXTA.
Network access through proxies for HTTP (SOAP) and SMTP is supported as well."

Hive

Hive: "Hive is a Java software platform for creating distributed applications. Using Hive, programmers can easily create systems that connect and use data from all over the Internet. At its heart, Hive is an environment for distributed agents to live, communicating and moving to fulfill applications. We are trying to make the Internet alive."

AJANTA: Home Page

AJANTA: Home Page: "A software agent is a program that works on behalf of a human user. A mobile agent has the added ability to travel autonomously (under its own control) from machine to machine on a network. Ajanta is a mobile agent programming system being developed at the University of Minnesota. It allows agents written in Java to securely migrate from machine to machine on the Internet. The Ajanta project is aimed at building an infrastructure for mobile agent execution that incorporates security and robustness features as an integral part of the design. The system is being implemented using Java."

An introduction to agents

An introduction to agents: "Summary
Agents draw on and integrate many diverse disciplines of computer science, and although agent technology has not yet hit prime time, it is gathering its share of investment money. Find out what all the uproar is about in this month's column, which examines agents -- what they are and what problems they solve. Columnist Todd Sundsted also shows you how to lay the foundation for a simple agent architecture in Java, which you'll develop in upcoming installments of How-To Java. (2,200 words)"

Wednesday, January 04, 2006

MindTunnel - A java implementation of an SSHD

MindTunnel - A java implementation of an SSHD: "MindTunnel v0.96

MindTunnel, release 0.96 - Dec 06, 1998

MindTunnel is an entirely FREE(*) SSH (currently v1.5) server program
written in pure Java. It was implemented for fun (or for completeness
of the mindbright ssh-package :-) and is not intended to be a
replacement for 'the real thing'. However, it can be used as a minimal
sshd, supporting only tunneling (i.e. port-forwarding). It has
RSA-authentication as the only means of authentication, the
'authorized_keys' file has changed to be handled in a central place

for all users (hence you don't need to give the users shell-accounts
on the server-machine).

(*) Only restriction is that you can't derive commercial work from it
without our written permission."

JTOpen - Java Access Classes for iSeries

SourceForge.net:: "The IBM Toolbox for Java / JTOpen is a library of Java classes supporting the client/server and internet programming models to an iSeries or AS/400 server."

Monday, January 02, 2006

1.3 Proxies mit Java-Pipes

1.3 Proxies mit Java-Pipes: "Proxies mit Java-Pipes"

PipedOutputStream request = new PipedOutputStream(),
out = new PipedOutputStream();
PipedInputStream reply = new PipedInputStream(),
in = new PipedInputStream();
in.connect(request); out.connect(reply);

peer.out = new ObjectOutputStream(request);
this.out = new ObjectOutputStream(out);
peer.in = new ObjectInputStream(reply);
this.in = new ObjectInputStream(in);

VTSurvey

VTSurvey: "is a web-based tool which enables end users to autonomously create and run online surveys, feedback or registration forms. By providing a forms-based visual editor, the use of VTSurvey requires no programming knowledge or skills in HTML.

VTSurvey's built-in user management system enables it to serve large organizations and facilitates collaborative survey development and administration. For example, at Virginia Tech this software is used to implement survey.vt.edu a web-based service which is currently serving over 3000 Virginia Tech students, faculty and staff with their survey needs. Go and check out the public demo!"

openFJORD online survey tool

openFJORD: "openFJORD is a web-based tool for flexible survey creation based on an editable library of questions or on user produced questions. It provides the online realization of the survey and its evaluation.

View our Project Homepage.

Click here to download the required external libraries, including JBoss 3.0.4.

Click here for a java api documentation.

Click here for a preview of the web-frontend."

Sunday, January 01, 2006

A Java API to read, write and modify Excel spreadsheets

A Java API to read, write and modify Excel spreadsheets: "Java Excel API - A Java API to read, write and modify Excel spreadsheets

This is the home page of Java Excel API - open source Java API which allows Java developers to read Excel spreadsheets and to generate Excel spreadsheets dynamically. In addition, it contains a mechanism which allows java applications to read in a spreadsheet, modify some cells and write out the new spreadsheet.

This API allows non Windows operating systems to run pure Java applications which can both process and deliver Excel spreadsheets. Because it is Java, this API may be invoked from within a servlet, thus giving access to Excel functionality over internet and intranet web applications.

Features

# Reads data from Excel 95, 97, 2000 workbooks
# Reads and writes formulas (Excel 97 and later only)
# Generates spreadsheets in Excel 2000 format
# Supports font, number and date formatting
# Supports shading and colouring of cells
# Modifies existing worksheets
# Supports image creation
# Preserves macros on copy
# Customizable logging"

Phex - What is Phex? / Features

Phex - What is Phex? / Features: "Phex is a file sharing program running on the Gnutella Network. It will run on Windows, Mac OS X, Linux, Solaris, and other operating systems supporting Java 1.4.

* Phex is a FREE of spyware and adware
Phex never containd any kind of spyware, adware or any other kind of bundled software. (Softpedia award)

* Multi-plattform support
Whether you use Windows, MAC OS X, Linux (a gentoo-ebuild is avaible via portage) or Solaris Phex is able to run on them all. All you need is a operation system that offers a Java 1.4 Runtime Environment.

* Multi-source downloads (Swarming)
Often the file you like to download is available on several different hosts. Phex will request different segments of the file from each host in parallel. After successfully downloading a segment Phex will merge it with the other segments of that file. This results in a much higher download speed. If a host is too slow the segment is split during download and given to another host. To make sure you never run out of hosts Phex is able to find new download hosts by itself with the automatic search functionality and features the Download Mesh.
You can choose for each download whether the segments should be chosen according to their availability (rarest first, BitTorrent-Style), their place in the file (earlier segments first, useful for previewing the file) or randomly.

* Advanced configuration options
Phex offers very advanced configuration options. Much more than many other clients can offer. Especially advanced user can configure Phex according to their needs and are able to tune and see the effect of different settings.

* Passive searching and snooping for files
With the passive search functionality Phex is able to constantly monitor the traffic that goes through the network and collect search results that match your passive search term. Also Phex snoops the traffic for new download candidates you need to finish your downloads faster. This type of searching is also useful for longtime monitoring of available files on the network.

* Other features include:
o Multiple searches.
o Ultrapeer and compression technology for reduced bandwidth.
o Integrated chat.
o Browse host support.
o Bitzi metadata lookup.
o MAGMA support.

Last Updated ( Wednesday, 23 November 2005 )"

JavaThrottle, a pipe bandwidth limiter

JavaThrottle, a pipe bandwidth limiter: "JavaThrottle is a pipe bandwidth limiting throttle, with a gui to change the throttle on the fly.

(0.6 shown here)
Features

* Works via standard pipes.
* Changing settings never interrupts the stream.
* Shows the number of bytes sent and the current rate.
* Shows a graph of traffic flow through the window (--graph).
* Gives the ability to set the throttle to whatever you like whenever you like.
* Includes a good set of command line flags so you can start it in whatever mode you like.
* Throttle tries to be as smooth as possible at slow speeds and as efficient as possible at high speeds.
* Tested on streams in excess of 100GB and spanning many days."

yawiki

yawiki: "'''yawiki''' - yet another wiki

A wiki system is a perfect place for working together and sharing information.
The text syntax of a wiki system is really simple to learn. Getting started with
a wiki system is easy.

This is yet another Java implementation of such a wiki system. Besides the basic wiki features, it covers quite a lot more.

Here is a list of yawiki's basic features:

* versioning of every page
* view the history and restore old versions
* page can be restricted to be edited by users only
* supports different themes
* search engine (jakarta lucene) integrated
* compare different versions of a page
* list last recent updates"