Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Applied skeletal implementation to interface migration automated refactoring #747

Closed
wants to merge 1 commit into from

Conversation

khatchad
Copy link

@khatchad khatchad commented Jul 6, 2016

This is a semantics-preserving refactoring that migrates existing method implementations in classes to the corresponding implemented interface methods as default methods. The tool does not add new code; it only rearranges existing code.

The current state of this code does not seem to compile as some of the migrated method implementations cross gradle module boundaries. Still, any feedback you can supply would be helpful. Also, please let us know if new module dependencies would be acceptable.

  • We are evaluating a research prototype automated refactoring Eclipse plug-in called Migrate Skeletal Implementation to Interface. We have applied the tool to your project in the hopes of receiving feedback.
  • The approach is very conservative. That may mean that not all changes that can be made were made. Please feel free to continue the refactoring manually if you wish.
  • We only migrated methods declared in abstract classes with the hopes of such methods being suitable default methods in corresponding interfaces.
  • The source code should be semantically equivalent to the original.

Thank you for your help in this evaluation! Any feedback you can provide would be very helpful. In particular, we are interested if each of the proposed changes are helpful or not.

@RichardHightower
Copy link
Member

Tests don't pass

@khatchad
Copy link
Author

Our apologies. It looks like some of the migrations crossed gradle module boundaries. In this case, we can choose whether to update the gradle build file dependencies or reject the problematic migrations (we have an outstanding bug to deal with gradle build files). We'll recommit the latter as it is less invasive in the case that is something you are interested in.

@khatchad
Copy link
Author

Revised version in pull request #767.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants