Re: Proposed New Structure (starter for 10)
Troy Daniels <[email protected]> Wed, 26 Aug 2015 17:40:15 -0400
| Newsgroups | gmane.emacs.jdee.devel |
|---|---|
| Message-ID | <CALSS3zMj70ky7pA0njP7QiO4kr4XLN4uQigtpo0qJssqt1L64Q@mail.gmail.com> |
--===============7982543037273617835== Content-Type: multipart/alternative; boundary=001a113de14e6dcf05051e3db3f0 --001a113de14e6dcf05051e3db3f0 Content-Type: text/plain; charset=UTF-8 On Wed, Aug 26, 2015 at 12:36 PM, Paul Landes <[email protected]> wrote: > On Aug 26, 2015, at 11:19 AM, Phillip Lord <[email protected]> > wrote: > > > Paul Landes <[email protected]> writes: > > > >> On Aug 26, 2015, at 9:25 AM, Phillip Lord <[email protected]> > wrote: > >>>> This is why I wanted to find a way to use the Java source itself (not > >> the .class file with reflection/introspection) for all class > >> generation, wizard etc code JDEE currently uses beanshell for. Clojure > >> seems to do a good job of handling this, but I'm not sure what they do > >> with old versions of classes for functions/files that get recompiled. > >> That said, they're going directly for Clojure to byte code so it's a > >> little different. I started to look at Clojure's dynamic class loader > >> but got lost in the weeds and no documentation made it more difficult. > > > > Ironically, I had a quick peak at the JDEE source and discovered that it > > actually includes a DynamicClassLoader that is supposed to reload from > > file every time. > > Yes, the beanshell dynamic class loader, which loads byte codes generated > by the ASM library. > > One use case that I frequently run into is this: Attempt to do a clean build. Encounter an error because a.b.C does not import a.d.E. Open C.java, do M-x jde-import-all E is not imported, because E is built after C, and the build stopped on the error building C, so src/a/d/E.java exists, but classes/a/d/E.class does not. I think we need some level of source-parsing to handle this. Even if it can't find a.d.E.InnerClass, something to search the source-path for E.java would be good. Troy --001a113de14e6dcf05051e3db3f0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo= te">On Wed, Aug 26, 2015 at 12:36 PM, Paul Landes <span dir=3D"ltr"><<a = href=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>>= </span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .= 8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">On Aug 26= , 2015, at 11:19 AM, Phillip Lord <<a href=3D"mailto:phillip.lord@russet= .org.uk">[email protected]</a>> wrote:<br> <br> > Paul Landes <<a href=3D"mailto:[email protected]">[email protected]</= a>> writes:<br> ><br> >> On Aug 26, 2015, at 9:25 AM, Phillip Lord <<a href=3D"mailto:ph= [email protected]">[email protected]</a>> wrote:<br> >></span><span class=3D"">>> This is why I wanted to find a way= to use the Java source itself (not<br> >> the .class file with reflection/introspection) for all class<br> >> generation, wizard etc code JDEE currently uses beanshell for. Clo= jure<br> >> seems to do a good job of handling this, but I'm not sure what= they do<br> >> with old versions of classes for functions/files that get recompil= ed.<br> >> That said, they're going directly for Clojure to byte code so = it's a<br> >> little different. I started to look at Clojure's dynamic class= loader<br> >> but got lost in the weeds and no documentation made it more diffic= ult.<br> ><br> > Ironically, I had a quick peak at the JDEE source and discovered that = it<br> > actually includes a DynamicClassLoader that is supposed to reload from= <br> > file every time.<br> <br> </span>Yes, the beanshell dynamic class loader, which loads byte codes gene= rated by the ASM library.<br> <span class=3D""><br></span></blockquote><div><br></div><div>One use case t= hat I frequently run into is this:</div><div><br></div><div>Attempt to do a= clean build.</div><div>Encounter an error because a.b.C does not import a.= d.E.</div><div>Open C.java, do M-x jde-import-all</div><div>E is not import= ed, because E is built after C, and the build stopped on the error building= C, so src/a/d/E.java exists, but classes/a/d/E.class does not.</div><div><= br></div><div>I think we need some level of source-parsing to handle this.= =C2=A0 Even if it can't find a.d.E.InnerClass, something to search the = source-path for E.java would be good. =C2=A0</div><div><br></div><div>Troy<= /div><div><br></div><div>=C2=A0</div></div></div></div> --001a113de14e6dcf05051e3db3f0-- --===============7982543037273617835== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ --===============7982543037273617835== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ jdee-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jdee-devel --===============7982543037273617835==--