In this paper, we discuss various aspects of the design, implementation, and use of JAPROSIM which is a general purpose discrete event simulation framework based on the Java programming language. JAPROSIM is an open source project developed for both academic and industrial purposes. It also merges processinteraction modeling structures with powerful java features in an intelligent way that encourages model simplicity, reusability and automatic statistics collection. Further motivations and aims are discussed. Java multithreading is a powerful built-in mechanism used to coordinate different entities in a coroutine-like mode. The main body of the paper is devoted for explaining the design of the framework in the context of Object Oriented Simulation. Finally, a summary of the proposed framework together with suggestions for improvements are given.