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.
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.
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.
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.
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 Pager Tag Library is the easy and flexible way to implement paging of large data sets in JavaServer Pages (JSP). It can emulate all currently known paging styles with minimal effort. It also includes re-usable index styles that emulate the search result navigators of popular web sites such as GoogleSM, AltaVista® and Yahoo!. The Pager Tag Library does most of the work for you by dynamically organizing your data set into pages and generating a browsable index with virtually any look desired.
Jawr is a tunable packaging solution for Javascript and CSS which allows for rapid development of resources in separate module files. Developers can work with a large set of split javascript files in development mode, then Jawr bundles all together into one or several files in a configurable way.
By using a tag library, Jawr allows you to use the same, unchanged pages for development and production. Jawr also minifies and compresses the files, resulting in reduced page load times.
This article demonstrates a brand new open source library for unit testing, called Unitils. Unitils helps you in writing simple and maintainable unit tests with JUnit or TestNG . It glues together some widely used test libraries like DbUnit and EasyMock and offers integration with Spring and Hibernate . Unitils encourages applying good practices and unit testing guidelines. The ideas behind the code are based on the authors' concrete experience on enterprise projects.
Unitils offers following features
* Equality assertion through reflection, with options like ignoring Java default/null values and ignoring order of collections
* Support for database testing involving test data management with DbUnit, automatic maintenance of unit test databases and automatic constraints disabling
* Hibernate integration features such as session management and testing the mapping with the database
* Integration with Spring, involving ApplicationContext management and injection of spring managed beans
* Integration with EasyMock and injection of mocks into other objects
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.
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.
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
A. Textor, M. Schmid, J. Schaefer, and R. Kroeger. QUASOSS '09: Proceedings of the 1st international workshop on Quality of service-oriented software systems, page 47--54. New York, NY, USA, ACM, (2009)
A. Santos, A. Lopes, and K. Koskimies. AOSD '07: Proceedings of the 6th international conference on Aspect-oriented software development, page 14--24. New York, NY, USA, ACM, (2007)
E. Sekerinski, and R. Zurob. &\#171;UML&\#187; '01: Proceedings of the 4th International Conference on The Unified Modeling Language, Modeling Languages, Concepts, and Tools, page 376--390. London, UK, Springer-Verlag, (2001)
É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)
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)
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)
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)
R. Tiella, A. Villafiorita, and S. Tomasi. PPPJ '07: Proceedings of the 5th international symposium on Principles and practice of programming in Java, page 93--102. New York, NY, USA, ACM, (2007)
C. Krueger. PFE '01: Revised Papers from the 4th International Workshop on Software Product-Family Engineering, page 282--293. London, UK, Springer, (2002)
G. Shroff, P. Agarwal, and P. Devanbu. ISEC '09: Proceeding of the 2nd annual conference on India software engineering conference, page 3--12. New York, NY, USA, ACM, (2009)
M. Glinz. IWSSD '00: Proceedings of the 10th International Workshop on Software Specification and Design, page 11. Washington, DC, USA, IEEE Computer Society, (2000)
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)