cbuschka / beanshell2

Automatically exported from code.google.com/p/beanshell2
0 stars 0 forks source link

classloader attempts to load java files #17

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
BshClassManager.loadSourceClass() tries to load *.java files.  Why?  This
isn't documented and makes no sense.  If no one objects, I will rip this out.

Original issue reported on code.google.com by fschm...@gmail.com on 12 May 2007 at 11:31

GoogleCodeExporter commented 9 years ago
Maybe this is for the java mode ? where its allowed to have .java classes as 
bsh 
scripts.

Original comment by dlee.cal...@gmail.com on 15 May 2007 at 2:23

GoogleCodeExporter commented 9 years ago
Where is java mode documented (URL)?

Original comment by fschm...@gmail.com on 15 May 2007 at 2:46

GoogleCodeExporter commented 9 years ago
This changelog mentions this as a feature.

http://www.beanshell.org/Changes.html

"Changes in 2.0 beta 1" ...

"BeanShell will now attempt to load classes from ".java" source files in 
  the classpath if the compiled class is not found."

Original comment by dlee.cal...@gmail.com on 29 May 2007 at 9:31

GoogleCodeExporter commented 9 years ago
My previous post is a more appropreate answer,
but when I was refering to "Java Mode"  I was thinking of this :

http://www.beanshell.org/manual/bshmanual.html#Strict_Java_Mode

setStrictJava(true);

On reading this again, I think it is not (as) relevent, but rather the "Changes 
in 
2.0 beta 1" ... is relevent.

Original comment by dlee.cal...@gmail.com on 29 May 2007 at 9:33

GoogleCodeExporter commented 9 years ago
I see the feature as mentioned in comment 3.  But what is the purpose of this?  
I
found it very confusing when this happened to me.  If no one sees value in this
feature, I would like to remove it.

Original comment by fschm...@gmail.com on 5 Sep 2007 at 5:23

GoogleCodeExporter commented 9 years ago
I removed this feature.

Original comment by fschm...@gmail.com on 29 Mar 2008 at 6:49

GoogleCodeExporter commented 9 years ago
This was a documented behavior of beanshell.  Maybe you don't agree with Pat N's
taste in language design, but this was not a bug.  By removing this feature you 
have
now made this fork incompatible with the old beanshell.  I think that small 
changes
that don't fix bugs but break compatibility are not a good thing and should be
avoided at all costs.

I just came across this website as a result of getting an email from the 
sourceforge
bugtracker.  I don't mind trying to fix bugs that cause me problems, and it is 
great
that there is a community (although perhaps small) that is going to try to 
carry the
maintenance on this great piece of software.  So in principle I would be happy 
to add
my small changes to the pool.

However, the time that I have to spend is quite limited, so I will have to make 
sure
I spend it wisely.  I am sure that everyone is on the same position.  This 
change 
means that I wont be able to use Beanshell2 without making a patch to restore 
the
previous behavior.  Now I have to decide if I want to join in your effort, or 
just
maintain my own patch set.

Maybe no one argued to keep this feature from Sept 2007 to March 2008, but how 
many
people are on this list?

Original comment by moor...@gmail.com on 31 Mar 2008 at 4:11

GoogleCodeExporter commented 9 years ago
I am not sure why it is so important to remain compatible with the old BeanShell
since the old BeanShell seems to be no longer supported.  We should remain 
compatible
with Java itself, of course.  But otherwise, I don't see a problem with changes 
that
users here want.  I personally wasted a lot of time trying to figure out what 
was
happening when I discovered that BeanShell was loading a java file from my 
classpath.
 Since changes are in subversion, it is very easy for me to restore this feature if
anyone here actually has a use for it.  If you use this feature, just tell me 
and I
will restore it.  (Also, to satisfy my curiosity, I would be interested to know 
how
you use it.)

Original comment by fschm...@gmail.com on 31 Mar 2008 at 4:29

GoogleCodeExporter commented 9 years ago
milestone=2.1b0

Original comment by pejob...@gmail.com on 25 Feb 2011 at 5:57

GoogleCodeExporter commented 9 years ago
I am planning to use beanshell2 to create an onboard development environment 
for android (after switching out asm for smali's dexlib).  I want to generate 
an environment that allows you to work on almost any aspect of a project 
on-the-go, but still bring it to a real computer and compile it down to 
standard dalvik classes (dex).  This requires interpretting any changes made 
on-the-go (since a full onboard compiler is beyond the capabilities of a cell 
phone), but then being able to compile those same files when you get to a full 
dev environment.  Thus, loading java files from the classpath is essential for 
my purposes.  In fact, I would need a way to cause beanshell2 to use a java 
file even if a class (dex) file already exists on the classpath (if that java 
file has been edited since it was last compiled).

Original comment by DPWhitta...@gmail.com on 4 Aug 2011 at 4:04

GoogleCodeExporter commented 9 years ago

Original comment by pejob...@gmail.com on 20 Oct 2011 at 7:12

GoogleCodeExporter commented 9 years ago
Hello, I want to request that a switch or something similar be added to 
re-enable this feature. We ship an old version of BeanShell (2.0b1) with our 
product and are now at a point where we'd like to upgrade to the latest 
version. We can't guarantee that none of our customers are using this feature, 
so we need it. Let me know if this will be possible. Thank you.

Original comment by ronak.a....@gmail.com on 29 Aug 2012 at 11:15

GoogleCodeExporter commented 9 years ago
I'll try to add a switch so that the feature could be enabled again.

Original comment by pejob...@gmail.com on 31 Aug 2012 at 2:13

GoogleCodeExporter commented 9 years ago
Re-added old code but with a switch in trunk.
Default is "switched off".
You may switch it on by calling "setCompatibility(true)" on interpreter 
instance or globally by setting bsh.Interpreter.COMPATIBIILTY to true.
There is also a system property "bsh.compatibility", when set to "true" default 
behaviour is "switched on".
Please comment, i plan to backmerge this to stable (v2.1) branch.

Original comment by pejob...@gmail.com on 31 Aug 2012 at 5:22

GoogleCodeExporter commented 9 years ago
Thank you very much, especially for the quick turnaround. This should work for 
us.

I'm not seeing a JAR download for the stable 2.1 build. Once you backmerge, 
does this mean I'd have to get the source and build it with the Ant build.xml 
script?

Original comment by ronak.a....@gmail.com on 31 Aug 2012 at 6:43

GoogleCodeExporter commented 9 years ago
You can do this always, but I plan to push an update in the next few weeks.

Original comment by pejob...@gmail.com on 31 Aug 2012 at 7:06

GoogleCodeExporter commented 9 years ago
Great, we have some time before our next release so that should be fine. Thanks 
again.

Original comment by ronak.a....@gmail.com on 31 Aug 2012 at 8:24