New plug-in: org.epic.source

jploski wrote on Thu Aug 10 19:28:16 MEST 2006:
I would like to make EPIC plug-ins importable with source code just like
the Eclipse plug-ins. It would become a lot easier for users to peek into
the source code and try out their hacks.

According to the PDE documentation, a new plug-in must be introduced, which
holds the source code and uses the org.eclipse.pde.core.source extension
point. I tried it, and it simply does not work - the source code is not
imported at all.

Based on my tests with a small example plug-in, it seems that the plug-ins
must be deployed as individual JARs rather than as directories. I don't
know why. This deployment option is called a "best practice" by the Eclipse
team, don't know why either.

Anyway, converting the EPIC plug-ins to this format appears necessary. Unfortunately,
this is not a trivial conversion for the following reasons:

1. We use some external libraries, such as ANTLR. The PDE page "Plug-Ins
as Jars" seems to imply that no such dependencies are supported and that
these libraries would have to reside in another plug-in (not deployed as
a jar?). My tests show otherwise.
2. The plug-ins themselves assume that they are deployed as directories
and access the resources directly through the file system rather than through
Bundle.getEntry (some of these accesses are unavoidable - as in case of
the brazil_mini.jar by the JVM spawned by the debugger).

In short, I am probably going to perform some refactorings toward Bundle.getEntry
and the single-jar deployment. I might also factor out the external libraries
into another plug-in (org.epic.core? org.epic.lib?)
jgangemi wrote on Fri Aug 11 01:57:11 MEST 2006:
i'm not sure i understand what this is accomplishing  (not that i am against
it though).

wouldn't the user already be using the epic source if they were trying out
a hack?

and when you talk about single jar deployment, do you mean a jar for each
plugin, or a single epic jar period? 
jploski wrote on Sun Aug 20 19:35:23 MEST 2006:
I mean a jar for each plug-in.

Also, my remark about the classpath working on jarred jars turned out to
be false - in order to be accessible, the external libraries must be in
a separate plug-in, which is not deployed as jar.

I was thinking about situations where an inclined user familiar with Java
and Eclipse/PDE spots a bug and wants to take a closer look at it. My assumption
is that it will be encouraging if she can just rely on the standard import-and-debug
mechanism and it just works rather than go looking for CVS, pondering what
to check out etc.
jgangemi wrote on Sun Aug 20 20:29:42 MEST 2006:
ahh - excellent idea. 
jploski wrote on Tue Aug 22 01:07:23 MEST 2006:
I committed the necessary code changes to HEAD - mostly changes resulting
from the fact that the Perl scripts are no longer accessible in the file
system by default when the plug-ins are deployed as jars.

You will have to check out org.epic.lib on which the other plug-ins depend
from now on. I also checked in org.epic.source. However, this plug-in's
content will be created automatically at release time, so the version in
CVS is a kind of placeholder only.

I am going to merge the changes into 'stable' next, mostly because I do
not want to keep around two different versions of scripts used for creating
releases (and to enable the 'import projects with source folders' feature
for 'stable', too).
jploski wrote on Thu Aug 24 00:08:31 MEST 2006:
I just released the current HEAD as 'testing 0.5.1' - includes the new plug-ins
(org.epic.source, org.epic.lib) and the new deployment format.
jgangemi wrote on Thu Aug 24 00:25:04 MEST 2006:
cool - i had to send my macbook in for repairs (grr!), so i'll give everything
a whirl once i get it back.
jgangemi wrote on Thu Aug 24 00:26:33 MEST 2006:
i assume this also includes the toggle breakpoint and initial folding stuff
as well? if so, that never made it into the Changelog, and i didn't look
to see if you added it w/ the release.
jploski wrote on Thu Aug 24 00:45:54 MEST 2006:
Yes, the mentioned features are included. Thanks for the reminder. I now
updated the Changelog accordingly (and moved the testing_0_5_1 tag).
jploski wrote on Sat Sep  2 15:56:02 MEST 2006:
I merged in the changes from HEAD, so the new plug-in deployment style is
now also used in 'stable' (just released as 0.4.5).

Note: The above is an archived snapshot of a forum thread. Use the original thread at to post comments.