Friday, December 29, 2006

XUI: XuiWikka

XUI: XuiWikka: "XUI (pronounced Zoo'ey) is an Open Source, Rich Internet Application (RIA) framework for building applications in Java and XML. XUI supports Swing, AWT, SWT and HTML widget sets, letting you code in XML or Java or a mix of both. XUI used the well Model-View-Controller pattern to help separate the setup of user interfaces from business logic and data handling. The framework has been developed by Xoetrope∞, who also host the XUI Zone∞ where you will find more extensive documenation.

Welcome to the XUI Wikki. This Wiki is dedicated to all things XUI, and includes documentation of features, hints, tips and anything that might be of interest to users and developers of XUI applications."

Tuesday, December 26, 2006

The Hadoop Distributed File System: Architecture and Design

The Hadoop Distributed File System: Architecture and Design: "# Introduction
# Assumptions and Goals

* Hardware Failure
* Streaming Data Access
* Large Data Sets
* Simple Coherency Model
* Moving computation is cheaper than moving data
* Portability across Heterogeneous Hardware and Software Platforms

# Namenode and Datanode
# The File System Namespace
# Data Replication

* Replica Placement . The First Baby Steps
* Replica Selection
* SafeMode

# The Persistence of File System Metadata
# The Communication Protocol
# Robustness

* Data Disk Failure, Heartbeats and Re-Replication
* Cluster Rebalancing
* Data Correctness
* Metadata Disk Failure
* Snapshots

# Data Organization

* Data Blocks
* Staging
* Pipelining

# Accessibility

* DFSShell
* DFSAdmin
* Browser Interface

# Space Reclamation

* File Deletes and Undelete
* Decrease Replication Factor

# References"

Wednesday, December 06, 2006

FrontPage - Lucene-hadoop Wiki

FrontPage - Lucene-hadoop Wiki: "Hadoop DFS

Hadoop's Distributed File System is designed to reliably store very large files across machines in a large cluster. It is inspired by the [WWW] Google File System. Hadoop DFS stores each file as a sequence of blocks, all blocks in a file except the last block are the same size. Blocks belonging to a file are replicated for fault tolerance. The block size and replication factor are configurable per file. Files in HDFS are 'write once' and have strictly one writer at any time."

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)

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."