You remember correctly. This was voted on way before Apache. We did have 
interest in this kind of distribution before. However, even though it may be 
easy to create an uber jar, perhaps we should step back and verify the 
definition of our users. I always thought there were 2 (user, developer) as 
defined in the current doc here: 
https://wiki.nci.nih.gov/display/VKC/cTAKES+2.5#cTAKES25-DownloadandInstall

Some of the other JIRA items being discussed make me think there may be these:
1) A "user" (researcher but non-programmer) wants value from cTAKES with no 
compiles, no dev env, just simple download/install/use.
2) A programmer new to cTAKES wants to take the whole, as quickly as possible, 
into some kind of dev env, hopes not to have to deal with any dependency or 
build issues (given that that take a stable release) and invoke the APIs. Kick 
the tires is the notion.
3) A programmer uses cTAKES as a black-box. They take cTAKES as a whole, 
perhaps minimal changes, include everything. Dictionaries could be replaced by 
them if they desire.
4) An experienced cTAKES developer - mash cTAKES into any form they want, 
change it, possibly contribute to Apache. Builds could be accomplished from a 
number of IDEs.

Questions that come to mind. These are meant to be food-for-thought questions:
Do we support all kinds of dev environments? Only a few? Is there a priority 
order, like Eclipse only, Eclipse plus Maven, command line, others. (Current 
doc recommends Eclipse but also documents command line. For anything else the 
programmer is expected to extrapolate.)
Do we require a developer to have Maven to build cTAKES?
Would an uber jar support the 2) and 3)?
Do we want to try to support all the user scenarios we come up with or only 
certain ones?
With only the UIMA CPE GUI, did we ever really support a non-programmer user? 
Will the new GUI in the sandbox be such support?

Would you all mind vetting out these user types via this email thread? If we 
can settle on who the users are, trying to keep it generalized to avoid 10s of 
variations, I think this will shed a lot of light on current and future JIRA 
items.

Thanks
Troy

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On 
Behalf Of Chen, Pei
Sent: Tuesday, October 09, 2012 11:14 AM
To: [email protected]
Subject: cTAKES uber jar distribution

If I recall correctly, I believe there was interest and a consensus to have an 
additional optional cTAKES binary distribution as an standalone executable jar 
with all of its dependencies included.
This is in additional to a simple cTAKES maven dependency or it's module jars 
for developers to include directly into their projects [geared towards 
end-users in addition to the future web configuration gui that is currently in 
sandbox now].  I believe the creation of some uber jar for deployment should be 
easily accomplished now using either the maven assembly plugin or shade plugin.
[May have to make some minor tweaks to the existing main pom such as separating 
out the inheritance vs the aggregator specific functions such as shading - 
which is probably a good idea anyway].

Does an uber jar still sound useful or should we wait until we create a war 
(with separate dependency jars in the standard WEB-INF/lib) which will be part 
of the web gui very soon anyway?
If anyone has any concerns/objections/suggestions, please let us  know- or 
better yet just open a jira and contribute to it :).

--Pei

Reply via email to