Files
fixminer_source/README.md
T
Martin Monperrus a855ea9fe6 Update README.md
2020-03-25 10:16:45 +00:00

47 lines
1.5 KiB
Markdown

# Code of FixMiner
Reference: [FixMiner: Mining Relevant Fix Patterns for Automated Program Repair](http://arxiv.org/pdf/1810.01791) (Empirical Software Engineering, [doi:10.1007/s10664-019-09780-z](https://doi.org/10.1007/s10664-019-09780-z))
## Prerequisites
redis should be installed on the machine.
## Build
Clone and install `edu.lu.uni:simple-utils`.
```
git clone https://github.com/SerVal-DTF/simple-utils
cd simple-utils
mvn install
```
Clone and install the modified version of Gumtree.
```
git clone https://github.com/SerVal-DTF/gumtree
cd gumtree
mvn install
```
Clone and install fixminer.
```
git clone https://github.com/SerVal-DTF/fixminer_source
cd fixminer_source
mvn install
```
## Main classes
* `src/main/java/edu/lu/uni/serval/fixminer/Launcher.java` computes the edit scripts from local file pairs and pushes them to a Redis database:
* first run `redis-server`
* edit `app.properties` in particular `portInner`, `portDumps`, `inputPath`
* `mvn exec:java -Dexec.mainClass=edu.lu.uni.serval.fixminer.Launcher -Dexec.args="../fixminer-core/python/data/app.properties RICHEDITSCRIPT dummy"`
* `src/main/java/edu/lu/uni/serval/utils/ClusterToPattern.java` extracts the Rich Edit Script from the Gumtree output from the database
* `src/main/java/edu/lu/uni/serval/utils/CallShell.java`
* `src/main/java/edu/lu/uni/serval/fixminer/TestTreeLoader.java`
* `src/main/java/edu/lu/uni/serval/fixminer/jobs/PatternExtractor.java`
* `src/main/java/edu/lu/uni/serval/fixminer/akka/compare/CompareTrees.java`