jruby/src/jruby/java/java_package_module_template.rb does not include
an implementation of const_get().
AFAIK the solution is to add
JavaUtilities.get_proxy_class(@package_name + const.to_s)
The challenge is this file is in the jruby.jar so it makes it tough to
Any ideas ?
Leveraging extends and include`s, I’ve added ActiveModel support to
java pojos. This works well and I can now use pojos as full fledged
models in rails apps. This is quite useful for integration.
However, some gems (ActiveSupport) pass the class
in turn callsactive_support/inflector/methods.constantize() for each
module which finally calls constant.const_get().
I’ve added a few trace statements and have seen the following
constantize Object Java
constantize Java ComMyCoPocModel
constantize Java::ComMyCoPocModel CardApplicant
ArgumentError: Java package com.myco.poc.model’ does not have a
Looking at the code JavaPackageModuleTemplate, would an implementation
of const_get() be similar toconst_missing() ie call to
The const_missing already throws a NameError and is what you are
monkey patching in. Is it weird that this will try and force a load
of a new package or java Class? Not so much in the case that these
packages cannot know what constants they actually might have.
The only downside I can see to this is now people cannot have a class
or package called const_get, but this seems exceedingly unlikely to
me. Can you think of any other downsides to us just adding this to
I sort of feel the contract for constants should be
const_missing/const_get/const_set, but const_set does not seem to have
meaning for this scenario.