Skip to content

Commit a99e604

Browse files
authored
Update README.md
1 parent fc6a0eb commit a99e604

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

README.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
1-
# Java 8 Stream Optimization Refactorings
1+
# Optimize Java 8 Streams Refactorings
22
[![Build Status](https://travis-ci.com/ponder-lab/Java-8-Stream-Refactoring.svg?token=ysqq4ZuxzD688KNytWSA&branch=master)](https://travis-ci.com/ponder-lab/Java-8-Stream-Refactoring) [![Coverage Status](https://coveralls.io/repos/github/ponder-lab/Java-8-Stream-Refactoring/badge.svg?branch=master&t=mM9zgy)](https://coveralls.io/github/ponder-lab/Java-8-Stream-Refactoring?branch=master) [![GitHub license](https://img.shields.io/badge/license-Eclipse-blue.svg)](https://github.com/khatchadourian-lab/Java-8-Stream-Refactoring/raw/master/LICENSE.txt)
33

4-
## Screenshot
4+
<!-- TODO: ## Screenshot -->
55

66
## Introduction
77

8-
This prototype refactoring plug-in for [Eclipse](http://eclipse.org) represents ongoing work in developing an automated refactoring tool that would assist developers in optimizing their Java 8 stream client code.
8+
The Java 8 Stream API sets forth a promising new programming model that incorporates functional-like, MapReduce-style features into a mainstream programming language. However, using streams efficiently may involve subtle considerations.
9+
10+
This tool consists of automated refactoring research prototype plug-ins for [Eclipse](http://eclipse.org) that assists developers in writing optimal stream client code in a semantics-preserving fashion. Refactoring preconditions and transformations for automatically determining when it is safe and possibly advantageous to convert a sequential stream to parallel and improve upon already parallel streams are included. The approach utilizes both [WALA](wala) and [SAFE](safe).
911

1012
## Usage
1113

12-
### Installation
14+
<!-- TODO: ### Installation -->
1315

1416
### Marking Entry Points
1517

16-
Explicit entry points may be marked using the appropriate annotation found in the corresponding [annotation library][annotations].
18+
Explicit entry points may be marked using the appropriate annotation found in the corresponding [annotation library][annotations]. They can also be marked using a text file named `entry_points.txt`. The processing of this file is recursive; it will search for this file in the same directory as the source code and will traverse up the directory structure until one is found. As such, the file may be placed in, for example, package directories, subproject directories, and project roots. The format of the file is simply a list of method signatures on each line.
1719

18-
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 recognize the explicit entry points through the file automatically.
20+
<!-- It is also possible to have the tool generate the file from the entry points that are being used (either implicit or explicit entry points). If enabled, the file will appear in the working directory. -->
1921

2022
### Limitations
2123

@@ -25,20 +27,26 @@ In general, there is [an issue](https://github.com/wala/WALA/issues/281) with th
2527

2628
## Contributing
2729

28-
Please see [the wiki](http://github.com/ponder-lab/Java-8-Stream-Refactoring/wiki) for more information regarding development.
30+
Please see [the wiki](wiki) for more information regarding development.
2931

3032
### Installation
3133

3234
The project includes a maven configuration file using the tycho plug-in, which is part of the [maven eclipse plugin](http://www.eclipse.org/m2e/). 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.
3335

34-
#### Dependencies
36+
### Generating Entry Points Files
37+
38+
Each time we run the evaluation, a text file is generated in the working directory. Then, before the next time you run the evaluation on the same project, move or copy `entry_points.txt` into project directory or workspace directory of the project. While evaluating the project, if the file exists, the tool will ignore the explicit entry points that are added manually and recognize the explicit entry points through the file only.
39+
40+
### Dependencies
3541

3642
You should have the following projects in your workspace:
3743

3844
1. [WALA stream branch](https://github.com/ponder-lab/WALA/tree/streams). Though, not all projecst are necessary. You can close thee ones related to JavaScript and Android.
3945
1. [SAFE](https://github.com/ponder-lab/safe).
4046
1. [Common Eclipse Java Refactoring Framework](https://github.com/ponder-lab/Common-Eclipse-Java-Refactoring-Framework).
4147

48+
It's also possible just to use `mvn install` if you do not intend on changing any of the dependencies.
49+
4250
### Running the Evaluator
4351

4452
#### Configuring the Evaluation
@@ -55,3 +63,5 @@ See the [wiki][wiki] for further information.
5563

5664
[wiki]: https://github.com/ponder-lab/Java-8-Stream-Refactoring/wiki
5765
[annotations]: https://github.com/ponder-lab/edu.cuny.hunter.streamrefactoring.annotations
66+
[wala]: https://github.com/wala/WALA
67+
[safe]: https://github.com/tech-srl/safe

0 commit comments

Comments
 (0)