This prototype refactoring plug-in for Eclipse represents ongoing work in developing an automated refactoring tool that would assist developers in optimizing their Java 8 stream client code.
Explicit entry points may be marked using the appropriate annotation found in the corresponding annotation library.
Explicit entry points can also be marked using importing entry points from a txt file. Each time we run the tool, a txt file named "entry_points.txt" is generated and contained in the current directory of workspace. Then, before next time we run tool to evaluate the same project, move or copy "entry_points.txt" into project directory or workspace directory of the project. While evaluating the project, the tool will ignore the explicit entry points which are added manually and regonize the explicit entry points through the file automatically.
There are currently some limitations with embedded streams (i.e., streams declared as part of lambda expressions sent as arguments to intermediate stream operations). This is due to model differences between the Eclipse JDT and WALA. See #155 for details.
In general, there is an issue with the mapping between the Eclipse DOM and WALA DOM, particuarly when using Anonymous Inner Classes (AICs). We are currently working with the WALA developers to resolve this issue.
Please see the wiki for more information regarding development.
The project includes a maven configuration file using the tycho plug-in, which is part of the maven eclipse plugin. Running mvn install will install most dependencies. Note that if you are not using maven, this plugin depends on https://github.com/khatchad/edu.cuny.citytech.refactoring.common, the Eclipse SDK, Eclipse SDK tests, and the Eclipse testing framework. The latter three can be installed from the "Install New Software..." menu option under "Help" in Eclipse.
You should have the following projects in your workspace:
- WALA stream branch. Though, not all projecst are necessary. You can close thee ones related to JavaScript and Android.
- SAFE.
- Eclipse Java Refactoring Framework.
See the wiki for further information.