ere are listed some of the existing companion tools for Java™ development. We put the focus on the quality of the content. Boring marketing fluff is filtered out.
Although quite comprehensive, this list will never be exhaustive. You can submit new tools by using our submission form.
This site is in constant progress. New tools are added frequently. Use the RSS feeds to learn what's new or updated.
Search plug-ins for Firefox and Mozilla are available.
Willkommen in der iteraplan Community. iteraplan ist das erste Open Source Enterprise Architecture Management (EAM) Werkzeug für das strategische Management Ihrer Applikationslandschaft. Das Software- und Beratungshaus iteratec hat das Werkzeug iteraplan erstellt und übernimmt auch zukünftig die Führung in der Weiterentwicklung von iteraplan im Rahmen der Open Source Community.
cstream is a general-purpose stream-handling tool like UNIX dd, usually used in commandline-constructed pipes.
Features:
* Sane commandline switch syntax.
* Exact throughput limiting, on the incoming side. Timing variance in previous reads are counterbalanced in the following reads.
* Precise throughput reporting. Either at the end of the transmission or everytime SIGUSR1 is received. Quite useful to ask lengthy operations how much data has been transferred yet, i.e. when writing tapes. Reports are done in bytes/sec and if appropriate in KB/sec or MB/sec, where 1K = 1024.
* SIGHUP causes a clean shutdown before EOF on input, timing information is displayed.
* Build-in support to write its PID to a file, for painless sending of these signals.
* Build-in support for fifos. Example usage is a 'pseudo-device', something that sinks or delivers data at an appropriate rate, but looks like a file, i.e. if you test soundcard software. See the manpage for examples.
* Built-in data creation and sink, no more redirection of /dev/null and /dev/zero. These special devices speed varies greatly among operating systems, redirecting from it isn't appropriate benchmarking and a waste of resources anyway.
* Accepts 'k', 'm' and 'g' character after number for "kilo, mega, giga" bytes for overall data size limit.
* "gcc -Wall" clean source code, serious effort taken to avoid undefined behavior in ANSI C or POSIX, except long long is required. Limiting and reporting works on data amounts > 4 GB.
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.
VELO is an Open Source Identity and Access Provisioning server.
Features
* SPML V2 compliance. new!
* Role Based Access Control (RBAC)
* Consolidated Employee Identity Attributes repository
* Accounts Attribute Synchronization
* User and Access Reconciliations
* Integrated work-flow engine for complex business processes
* Self Service interfaces
* Support many resources
* Support Complete Account Operations
* Specific typed actions can be added easily
* Centralized Password Policy and Password Synchronization.
* Auditing & Compliance.
* Powerful scripting support for complex processes via Scripting expressions
* Supports more than 20 different scripting languages! new
* Remote services access via Web-Services.
* Extensible via Events.
* Advanced Report Designer & Web-based Reporting Manager.
* Pluggable Authentication Handlers.
* Jboss and Glassfish Support
JUG is a pure java UUID generator, that can be used either as a component in a bigger application, or as a standalone command line tool (a la 'uuidgen'). UUIDs are 128-bit Universally Unique IDentifiers (aka GUID, Globally Unique IDentifier used in Windows world).
JUG generates UUIDs according to the IETF UUID draft specification (and further clarified in UUID URN name space IETF draft ) – all 3 'official' types defined by the draft – is fast, portable and Open Source (as well as Free Software ).
You can use JUG in your application according to the license terms of LGPL (Lesser General Public License); or, from version 2.0 on, ASL . See Download page for more details.
From version 1.0.0 on, native code (invoked via JNI) for accessing Ethernet MAC address is included with Jug distribution. Big thanks to Paul Blankenbaker and DJ Hagberg (amongst others) for their code contributions!
Note that using this functionality is optional: only time+location - based generation needs MAC address, and even with it, one can just pass the address from a configuration file.
Currently JNI-based Ethernet MAC address support is available on following platforms:
* Linux / x86
* Windows (98, ME, NT, 2K, XP?) / x86
* Solaris / Sparc
* Mac OS X
* FreeBSD / x86
Note: if anyone can recompile Mac OS X JNI code on Open/NetBSD and try if if it works, that would be useful (FreeBSD JNI code was compiled this way).
Dozer is a Java Bean to Java Bean mapper that recursively copies data from one object to another. Typically, these Java Beans will be of different complex types.
Dozer supports simple property mapping, complex type mapping, bi-directional mapping, implicit-explicit mapping, as well as recursive mapping. This includes mapping collection attributes that also need mapping at the element level.
Please read the about page for detailed information on Dozer.
copSSH is an ssh server and client implementation for windows systems. It is a yet another packaging of portable openssh, cygwin, some popular utilites, plus implementation of some best practices regarding security. You can use COPSSH for remote administration of your systems or gathering remote information in a secure way.
MindTouch Deki Wiki is a free open source wiki and application platform for communities and enterprises. Deki Wiki is an easy to use and sophisticated wiki for authoring, aggregating, organizing, and sharing content. Deki Wiki is also a platform for creating collaborative applications, or adding wiki capabilities to existing applications.
TestabilityExplorer.org records the testability scores for many open source and commercial Java libraries.
The compiled bytecode for the library is analyzed and metrics are calculated for the testability of individual classes. Those classes fall into one of three categories - 'excellent', 'good' and 'needs work'. Generally speaking, injectability, mockabiliy and composition are good, and static state is bad. Figures are recursively calculated, but only inside the jar in question.
The metrics are a calculation of the skill of the development team in making their classes testable. You cannot use these metrics to say that Tomcat is better than Jetty or vice versa, as the features of each are not taken into account. These metrics will also not tell you whether a particular library will be easy to use or not. It just tells you how dedicated the development team was to making testable software. As we track the changing figures overtime, we can see whether the team in question was dedicated to improvement or not.
Testability-explorer is a tool which analyzes java byte-codes and computes how difficult it will be to write unit-test. It attempts to help you quantitatively determine how hard your code is to test and, where to focus to make it more testable.
Test metric tool can be used:
1. As a learning tool which flags causes of hard to test code with detailed breakdown of reasons.
2. To identify hard to test hair-balls in legacy code.
3. As part of your code analysis-toolset.
4. As a tool which can be added into continuous integration that can enforce testable code.
Espresso3D is a high performance real-time 3D engine for the Java(tm) programming language. E3D is not just a scene graph. It aims to be a complete solution for your application with OpenGL rendering, OpenAL audio, collision detection, input, and rendering support.
Espresso3D began as a free for non-commercial use library in October 2004. As of April 8, 2008 Espresso3D is available under the open source LGPL license.
The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming.
In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don't get a good understanding of the material or the ability to solve similar problems.
The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own.
The book covers the classical problems, including "Readers-writers", "Producer-consumer", and "Dining Philosophers". In addition, it collects a number of not-so-classical problems, some written by the author and some by other teachers and textbook writers. Readers are invited to create and submit new problems.
The goal of this project is to provide a small and cohesive set of powerful UI components that allow creating modern applications that provide visual functionality similar to or superseding that of Vista Explorer and Office 2007. The components provide consistent visuals under the existing core and third-party look-and-feels, respect the DPI settings of the user desktop and follow the core Swing guidelines in the external APIs and the internal implementation details.The component suite includes:
* Layer for defining and using resizable icons
* Command button component
* Command button panel component
* File viewer panel component
* Breadcrumb bar component
* Ribbon component
The project is licensed under BSD license and requires JDK 6.0
AjaxToaster is built on XMLToaster and inspired by the "guerrilla SOA" philosphy. It gives you the power to easily create JSON & XML based CRUD services for your web applications. It runs as a servlet in an app-server or with its own standalone server.
Metawidget takes your domain objects and automatically creates User Interface components for them, saving you handcoding your UIs and leaving you to concentrate on stitching together your application.
As much as possible, Metawidget does this without introducing new technologies. It inspects, at runtime, an application's existing back-end architecture (such as JavaBeans, annotations, XML configuration files) and creates components native to its existing front-end framework (such as Swing, Java Server Faces, Struts or Android).
Metawidget does not hide the power of your existing User Interface framework from you and guarantees that your investment in its technology and knowledge is as valid as always. The LGPL open source license allows the use of Metawidget in open source and commercial projects.
Data Architects, DBA's, Analysts and Designers rely on Data Modeling tools to facilitate and simplify their data Modeling efforts, while maximizing the use of their resources. The Power*Architect allows these busy highly technical resources to perform this most intricate part of their job in a fraction of the time.
The Power*Architect is a user-friendly data modeling tool created by data warehouse designers, and has many unique features geared specifically for the data warehouse architect. It allows users to reverse-engineer existing databases, perform data profiling on source databases, and auto-generate ETL metadata.
Plus, the Power*Architect has the ability to take snapshots of database structures, allowing users to design DW data models while working offline.
Whether you are building a Data Warehouse or using data models to communicate business rules, the Power*Architect will facilitate and automate your data modeling efforts.
JAutodoc is an Eclipse Plugin for automatic adding Javadoc and file headers to your source code. It optionally generates initial comments from element name. Starting with Release 1.3 of JAutodoc it is possible to define Velocity templates for Javadoc and file headers.
M. Glinz. IWSSD '00: Proceedings of the 10th International Workshop on Software Specification and Design, page 11. Washington, DC, USA, IEEE Computer Society, (2000)
O. Gotel, C. Scharff, and A. Wildenberg. PPPJ '07: Proceedings of the 5th international symposium on Principles and practice of programming in Java, page 3--12. New York, NY, USA, ACM, (2007)
L. Hunyadi, and I. Vajk. Proc. of the 15th International Conference on Systems, Signals and Image Processing (IWSSIP), page 197--200. Bratislava, Slovakia, (25--28 06 2008)
C. Krueger. PFE '01: Revised Papers from the 4th International Workshop on Software Product-Family Engineering, page 282--293. London, UK, Springer, (2002)
A. Martens, F. Brosch, and R. Reussner. QUASOSS '09: Proceedings of the 1st international workshop on Quality of service-oriented software systems, page 25--32. New York, NY, USA, ACM, (2009)
M. Moon, H. Chae, J. Park, and K. Yeom. ICIS '08: Proceedings of the Seventh IEEE/ACIS International Conference on Computer and Information Science (icis 2008), page 531--536. Washington, DC, USA, IEEE Computer Society, (2008)
Éric Piel, and A. Gonzalez-Sanchez. SINTER '09: Proceedings of the 2009 ESEC/FSE workshop on Software integration and evolution @ runtime, page 3--10. New York, NY, USA, ACM, (2009)