Open tfmorris opened 8 months ago
@tfmorris You're right, I guess the com.google.refine.sampleExtension.SampleUtil
Java package isn't correctly installed and accessible and stringArrayLength
can't be referenced as a function
I think a proposed solution is making sure SampleUtil
is getting compiled correctly and it's accessible,
or what do you think?
I'd be in favor of dropping the sample extension altogether. As mentioned in OpenRefine/OpenRefine#2300, the fact that it is hosted in our repository makes it of little use for third parties to develop their extensions outside of OpenRefine's repository. The development environment is quite different when working from another repository. Although we could migrate it to a separate repository indeed, I don't think it will be actively maintained if it doesn't implement things that people actually need.
We could take an existing extension (developed outside of the repository) and turn it into a model extension, following all best practices. I have proposed a GSoC internship on this subject, which also incorporates the feedback from @antoine2711 about the lack of tooling for Java debugging. @tfmorris I have re-centered the proposal on development, away from documentation, to make it more suitable for GSoC.
Change of mind: I think it's still good to drop it from this repo but I actually see some value in having a basic scaffold of extension as another repository. This could use GitHub's Template repository feature. We could enable Dependabot on it to keep it in sync with OpenRefine.
Not sure if this is still a problem, but transferring the issue from the main repo to the new one for verification.
It looks like there is still a problem with this page, but it's changed slightly. As currently configured, the new URL is
http://127.0.0.1:3333/extension/my-sample-extension/
(but should probably change to http://127.0.0.1:3333/extension/openrefine-sample-extension/)
The page doesn't error now, but also doesn't resolve template variables, so it outputs:
Here is someString: $someString, and someInt: $someInt
The About page for the sample extension fails to render.
To Reproduce
Steps to reproduce the behavior:
Current Results
(From new Butterfly error page for improve readability)
HTTP ERROR 500 Butterfly Error Butterfly caught the following error while processing the request:
500 Butterfly Error Butterfly caught the following error while processing the request: refine org.mozilla.javascript.EcmaError: TypeError: Cannot call property stringArrayLength in object [JavaPackage com.google.refine.sampleExtension.SampleUtil]. It is not a function, it is "object". (file:/Users/tfmorris/git/OpenRefine2/main/webapp/../../extensions/sample/module/MOD-INF/controller.js#75)
Caused by:
### Expected Behavior Velocity template renders correctly. ### Versions - OpenRefine: 3.7 and current HEAD of master (not sure how far back it goes) ### Additional context At first glance it looks like perhaps the `SampleUtil` class isn't getting compiled or packaged in the right place.