Poplar: A Java Extension for Evolvable Component Integration
Johan Nystr\"om-Persson, Shinichi Honiden

TL;DR
Poplar is a Java extension that simplifies component integration by using declarative queries and generated linking code, enabling evolvable, static, and automatic component composition.
Contribution
It introduces a novel Java extension with declarative dependencies, planning-based code generation, and a minimal specification language to improve component evolution and integration.
Findings
Enables fully automatic component integration.
Reduces breaking changes in component evolution.
Simplifies object-oriented software development.
Abstract
The Java programming language contains many features that aid component-based software development (CBSD), such as interfaces, visibility levels, and strong support for encapsulation. However, component evolution often causes so-called breaking changes, largely because of the rigidity of component interconnections in the form of explicit method calls and field accesses. We present a Java extension, Poplar, which we are currently developing. In Poplar, inter-component dependencies are expressed using declarative queries; concrete linking code, generated using a planning algorithm, replaces these at compile time. Poplar includes a minimal specification language based on typestate-like protocols and labels, and a lightweight effect system, which ensures the absence of unwanted interference between hand-written code and generated code. We give several examples of fully automatic component…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Advanced Software Engineering Methodologies · Logic, programming, and type systems
