Looks good. I think it's worth thinking about the interface and what the expected usage of this would be.
There are two parts to this:
The general interface of the main library
How we expect people to use the library in a Play project
We don't necessarily need to make sure that these interfaces are the same (as I'd rather that the implementation in this case was more idiomatic to a Play project anyway.) But I think that we should always be considering the fact that in the long run we'd like to make it easy to integrate this with other libraries and frameworks. If nothing else it may dictate some of the internal interfaces too.
Given that we're intending this library to supersede the rhino based one and we may have a few early adoption cases it makes sense to strive for the interface which is used there. Also, if we segregate that interface in the play integration library it lets us change the interface of the main library as needed.
Looks good. I think it's worth thinking about the interface and what the expected usage of this would be.
There are two parts to this:
We don't necessarily need to make sure that these interfaces are the same (as I'd rather that the implementation in this case was more idiomatic to a Play project anyway.) But I think that we should always be considering the fact that in the long run we'd like to make it easy to integrate this with other libraries and frameworks. If nothing else it may dictate some of the internal interfaces too.
Given that we're intending this library to supersede the rhino based one and we may have a few early adoption cases it makes sense to strive for the interface which is used there. Also, if we segregate that interface in the play integration library it lets us change the interface of the main library as needed.
</essay>