Java Core API Migration: Challenges and Techniques
2013
Abstract
The task of developing Java-based applications for embedded systems can be greatly enhanced by providing developers access to Java’s Core APIs such as java.lang and java.util. Oftentimes, platforms used in embedded systems are scaled back versions of the JVM. As a result, Core APIs must be migrated in order to be compatible with a particular platform. A significant portion of such migration centers around the removal of field, method, or constructor declarations. This paper describes the challenges and techniques associated with the automated removal-based modification of Java source code. Driving this research is the need to migrate selected Java Core APIs to an embedded platform called the SCore processor. This migration is being performed using a tool called Monarch.
References (14)
- T. Lindholm and F. Yellin, Eds., The Java Virtual Machine (Second Edition). Addison-Wesley, 1999.
- V. Winter, , C. Reinke, and J. Guerrero, "Using Program Transfor- mation, Annotation, and Reflection to Certify a Java Type Resolution Function," in Proceedings of the 15 th IEEE International Symposium on High Assurance Systems Engineering (HASE), January 2014.
- J. A. McCoy, "An Embedded System For Safe, Secure And Reliable Execution of High Consequence Software," in Proceedings of the 5 th IEEE International Symposium on High Assurance Systems Engineering (HASE). IEEE, 2000, pp. 107-114.
- G. L. Wickstrom, J. Davis, S. E. Morrison, S. Roach, and V. L. Winter, "The SSP: An Example of High-Assurance System Engineering," in HASE 2004: The 8 th IEEE International Symposium on High Assurance Systems Engineering.
- Tampa, Florida, United States: IEEE, 2004, pp. 167-177.
- V. L. Winter, H. Siy, J. McCoy, B. Farkas, G. Wickstrom, D. Dem- ming, J. Perry, and S. Srinivasan, "Incorporating Standard Java Libraries into the Design of Embedded Systems," in Java in Academia and Research, K. Cai, Ed. iConcept Press, 2011.
- M. Fowler, Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.
- J. Henkel and A. Diwan, "CatchUp! Capturing and Replaying Refac- torings to Support API Evolution," in Proceedings of the 27th In- ternational Conference on Software Engineering (ICSE'05), St.Louis, Missouri, USA, 2005.
- I. Balaban, F. Tip, and R. Fuhrer, "Refactoring Support for Class Library Migration," in Proceedings of OOPSLA 2005. San Diego, California, United States: ACM, 2005, pp. 265-279.
- A. Donovan, A. Kiezun, M. S. Tschantz, and M. D. Ernst, "Converting Java Programs to Use Generic Libraries," in Proceedings of OOPSLA 2004, Vancouver, BC, Canada, 2004, pp. 15 -34.
- W. Tansey and E. Tilevich, "Annotation Refactoring: Inferring Upgrade Transformations for Legacy Applications," SIGPLAN Not., vol. 43, no. 10, pp. 295-312, Oct. 2008. [Online]. Available: http://doi.acm.org/10.1145/1449955.1449788
- Oracle Sun Developer Network (SDN), "Java card technology. http://java.sun.com/products/javacard/."
- D. Rayside and K. Kontogiannis, "Extracting Java Library Subsets for Deployment on Embedded Systems," Science of Computer Program- ming, vol. 45, no. 2-3, pp. 245-270, November-December 2002.
- S. Morrison, "SSP Class Loader Responsibilities," Sandia National Laboratories, Tech. Rep., 2005, internal Report.