Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[recommenders-dev] v0.5 branch merged back into master

Hi committers,

as my last action of the year, I merged back our refactoring branch v0.5 back into master. With v0.5 a quite large set of structural changes happened:

1. Project disk layout refactoring:
Disk layout now clearly separates between plugins, features, tests, dist, and etc projects. The new layout should be quite intuitive.

2. Namespace refactoring:
With the advent of snipmatch the old naming conventions didn't work anymore. Thus, we refactored the namespaces into several components such as org.eclipse.recommenders.completion, org.eclipse.recommenders.codesearch, org.eclipse.recommenders.snipmatch etc. There are also common submodules such as "server" and "rcp" which distinguish a server-side bundle from a rcp client-side one. Please read http://wiki.eclipse.org/Recommenders/CodingConventions#Naming_Conventions for more details on that.

3. Removal of project builder and nature.
Now, every project is "eligible" to get code recommendations. We replaced WALA bytecode toolkit by a slim JDT-based analyzer. This parser is fast enough for simple analyses but by far not that sophisticated as the old one. We'll have to spent a fair amount of time to make it work comparably good - but the first steps are done.

4. Extdoc Platform
Based on the lessons learned, Sebastian and I continued the work on the Extdoc platform. http://www.eclipse.org/recommenders/docbook/ch03.html has a brief summary of the architecture. With that API it should be quite easy to extend the platform with your own arbitrary extensions. Let me know, if you need more details on that. Thanks Sebastian and Stefan for their work on the Extdoc platform!

5. Workspace-wide EventBus
We are currently experimenting a lot with Guava's EventBus. I've built a little events-framework around it that informs subscribers about JavaElement selections in the UI (a modified version of Stefan's selection listener framework) as well as a JavaModelChange Events framework that, for example, informs subscribers whenever a compilation unit was saved, deleted, or added. This might be of particular interest for the two code search teams and their indexing efforts (subscribe to the bus to get informed about the changes). http://git.eclipse.org/c/recommenders/org.eclipse.recommenders.git/tree/plugins/org.eclipse.recommenders.rcp/src/org/eclipse/recommenders/rcp/events gives more details on the defined events. Let me know if you need more information. A documentation will follow in late January for M5.

6. Next drop: Code Recommenders 0.5
Initially planned for December, the decision to step onto the release train changed our plans significantly. We decided to release a new version of Code Recommenders with every milestone build of Eclipse 4.2/3.8, i.e., every six weeks. M5 is scheduled for end of January. Johannes is doing a good job cleaning our IP logs, integrating our builds to eclipse.org infrastructure, and bringing our 3rd-party dependencies to Orbit. We are confident that this will be done in mid of January. If we are 'clean' I'd like to request the first official project review by the EMO.

7. Testing framework for code completion engines:
There are probably lots of smaller changes in the code base. The APIs for testing code completion engines, however, is worth mentioning. I've experimented a bit with Xtend2 and wrote a small set of utility classes for integration testing code that relies on compilation units (i.e., need a workspace). With these classes it's quite easy to define tests for code completion engines, code analyzers etc. Students, if you are doing your own code analysis etc., please look at http://git.eclipse.org/c/recommenders/org.eclipse.recommenders.git/tree/tests/org.eclipse.recommenders.tests.completion.rcp.chain/src/org/eclipse/recommenders/tests/completion/rcp/chain/ScenariosTest.xtend for an example how this could be solved with relatively small effort. Send me an email if need more details.


That's it for 2011. Thanks for all your work you put into the project and see you again in 2012! We are the 'i' in IDE ;)

Best,
Marcel



Back to the top