OnWorks favicon

Happy Java Library

Free download Happy Java Library Linux app to run online in Ubuntu online, Fedora online or Debian online

This is the Linux app named Happy Java Library whose latest release can be downloaded as happy-library-1.3.zip. It can be run online in the free hosting provider OnWorks for workstations.

Download and run online this app named Happy Java Library with OnWorks for free.

Follow these instructions in order to run this app:

- 1. Downloaded this application in your PC.

- 2. Enter in our file manager https://www.onworks.net/myfiles.php?username=XXXXX with the username that you want.

- 3. Upload this application in such filemanager.

- 4. Start the OnWorks Linux online or Windows online emulator or MACOS online emulator from this website.

- 5. From the OnWorks Linux OS you have just started, goto our file manager https://www.onworks.net/myfiles.php?username=XXXXX with the username that you want.

- 6. Download the application, install it and run it.

Happy Java Library



Helps to develop and test event-based multi-threaded Java application. Because of method called as API-Evolution the Happy Java Library is fully downward compatible. The library contains following functionality: MultiLock, Parallel loops, Collections, Controllers, Generators, Delegates, Streams.


  • MultiLock-MultiSynchronization - avoid deadlocks by synchronizing many locks in one atomic operation.
  • Parallel.For & Parallel.ForEach loops
  • Event based collections - register events like OnBeforeAddEvent or OnAfterRemoveEvent (java.util.Collection, -List, -Set, -Map)
  • Partly Unmodifiable - decorate the collection, list, set, map by allowing for example only add new elements but nor removing any existing (java.util.Collection, -List, -Set, -Map)
  • Cache collections - decorates java.util.Collection, -List, -Set, -Map which caches often used elements and improves the performance during searching of elements in many cases.
  • Synchronized collections - Happy synchronization-collections differs from standard java.util.Collections.synchronizedList(), -Map(), -Set() decorators by managing of synchronization lock inside public API. In that way hierarchical synchronization mechanisms which allows to synchronize the collections around foreign lock from outside.
  • Buffered Collections - You can revert any changes made to your collection since last commit. If you commit changes made to buffered collection decorator, the decorated collection will be modified.
  • Transient Collections - if stored elements in a transient collection will be not used for long period of time, they will be removed. This reduces the memory and processor requirements.
  • Data Collections - This map can adapt the data from data-sources like data-base or webservice and provide abstract management of elements in bounded data-source.
  • SortedList - the decorator which decorates java.util.List to be sorted. There are two strategies implemented: (1) Linked and (2) Divide and Conquer. The Sorted List can increase the performance of the List dramatically (more than 20 times),
  • SetList - decorates java.utli.List to be java.util.Set. Sometimes can be useful if you want use List methods like List.listIterator(int index) but don’t want allow duplicates in your List.
  • Controllers-control your processes, for example a download, upload or solving process.
  • Delegates-Observer Design Pattern implementation - similar to .NET Delegates.
  • Generators-Often you need to generate random data. For example random integer value between 35 and 60. Or a String of the length between 5 and 10 letters. The generator package is designed to simply generate such random values..
  • Event based Input-& OutputStreams - register events like getOnWriteEvent or getOnReadEvent to observe decorated input & output streams. Events will be fired after defined timeDelay or after specified number of readed or written bytes.
  • Cancelable Input-& OutputStreams - Decorated your streams to be cancleable, thus after cancel an IOException will be fired if anybody tries to use decoated streams.
  • Blocking Input-& OutputStreams - Blocking Input & OutputStreams adds new block() method which allows to wait until the write or read operations on the streasm are completed.
  • Stopable InputStreams - this stream allows to cancel the decorated stream. You can stop this stream at any time. The decorator waits for decorated Stream in extra thread and if you stop this stream returns immediately.
  • API-Evolution downwardly compatibility of API


Developers, Science/Research

Programming Language


This is an application that can also be fetched from https://sourceforge.net/projects/happy-guys/. It has been hosted in OnWorks in order to be run online in an easiest way from one of our free Operative Systems.