You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Marshall Schor (JIRA)" <ui...@incubator.apache.org> on 2008/03/06 15:45:02 UTC
[jira] Created: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Change startup of framework to support versioned Jars and simplified classpath
------------------------------------------------------------------------------
Key: UIMA-857
URL: https://issues.apache.org/jira/browse/UIMA-857
Project: UIMA
Issue Type: Improvement
Components: Build, Packaging and Test
Reporter: Marshall Schor
Priority: Minor
Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by "Marshall Schor (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marshall Schor closed UIMA-857.
-------------------------------
Resolution: Fixed
Fix Version/s: 2.3
> Change startup of framework to support versioned Jars and simplified classpath
> ------------------------------------------------------------------------------
>
> Key: UIMA-857
> URL: https://issues.apache.org/jira/browse/UIMA-857
> Project: UIMA
> Issue Type: Improvement
> Components: Build, Packaging and Test
> Reporter: Marshall Schor
> Priority: Minor
> Fix For: 2.3
>
>
> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by "Marshall Schor (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12675425#action_12675425 ]
Marshall Schor commented on UIMA-857:
-------------------------------------
Here's another way to start things with long classpaths, some of which you want to be directories of jars, etc. Use Ant and its mechanisms to specify classpaths; see http://ant.apache.org/manual/using.html#path , and then use ant to call java either in the same process or in a new one.
We could add a sample uima-launch XML file that would show how to do this.
> Change startup of framework to support versioned Jars and simplified classpath
> ------------------------------------------------------------------------------
>
> Key: UIMA-857
> URL: https://issues.apache.org/jira/browse/UIMA-857
> Project: UIMA
> Issue Type: Improvement
> Components: Build, Packaging and Test
> Reporter: Marshall Schor
> Priority: Minor
>
> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by "Burn Lewis (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674349#action_12674349 ]
Burn Lewis commented on UIMA-857:
---------------------------------
Yes, with something like UIMA_JARPATH we could add the ActiveMQ libraries and the UIMA library to any user libraries of jar files.
Presumably we'd choose a predictable order, e.g. alphabetical, for the jars in a directory.
> Change startup of framework to support versioned Jars and simplified classpath
> ------------------------------------------------------------------------------
>
> Key: UIMA-857
> URL: https://issues.apache.org/jira/browse/UIMA-857
> Project: UIMA
> Issue Type: Improvement
> Components: Build, Packaging and Test
> Reporter: Marshall Schor
> Priority: Minor
>
> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by "Marshall Schor (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674253#action_12674253 ]
Marshall Schor commented on UIMA-857:
-------------------------------------
An extension of the above idea: allow for multiple directories to gather jars from. This then becomes like a load library path specification. One user has such a long classpath that debugging tools showing the command line are now chopping off arguments (line is too long).
> Change startup of framework to support versioned Jars and simplified classpath
> ------------------------------------------------------------------------------
>
> Key: UIMA-857
> URL: https://issues.apache.org/jira/browse/UIMA-857
> Project: UIMA
> Issue Type: Improvement
> Components: Build, Packaging and Test
> Reporter: Marshall Schor
> Priority: Minor
>
> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by "Adam Lally (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674351#action_12674351 ]
Adam Lally commented on UIMA-857:
---------------------------------
Personally, I still strongly dislike version numbers in jar file names, and it doesn't have anything to do with the setUimaClasspath script, which I don't really use. It has more to do with Eclipse - if I have lots of projects depending on uima jars, then every time I got a new version I'd have to go through them all and update their classpaths. It's not specifically
I think we are not in the same situation as Tomcat, because Tomcat is a container in which you embed things, whereas UIMA gets embedded in other things. Therefore, by changing our jar file names we are requiring those embedders to keep up with us. I would not want to have to use a special jar loader in my application just to use UIMA.
> Change startup of framework to support versioned Jars and simplified classpath
> ------------------------------------------------------------------------------
>
> Key: UIMA-857
> URL: https://issues.apache.org/jira/browse/UIMA-857
> Project: UIMA
> Issue Type: Improvement
> Components: Build, Packaging and Test
> Reporter: Marshall Schor
> Priority: Minor
>
> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by "Adam Lally (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674628#action_12674628 ]
Adam Lally commented on UIMA-857:
---------------------------------
I'm not sure if there's a way to check in the Eclipse library definitions to SVN and share them. If there is then this would probably be an okay way to deal with this. But so far the only experience I've had with the Eclipse libraries is checking out somebody's .classpath file that referred to library and not being able to compile anything because the library was undefined, which is not nice.
The bottom line for me is: The Java runtime doesn't have a native way to easily support jar file names that change all the time. Yes, various development environments and embedding applications have invented ways to add a level of abstraction on top of jar file names, but there's no standard way of doing so, and the existing solutions are sometimes not ideal.
It just seems simpler to me to avoid this whole issue by leaving our jar file names the way they are. I know, some people feel strongly that they like to see what version they have just by looking at the file name, but I don't happen to be one of those people.
I agree that the UIMA_JARPATH idea is separate from the file names and have no objection to implementing that.
> Change startup of framework to support versioned Jars and simplified classpath
> ------------------------------------------------------------------------------
>
> Key: UIMA-857
> URL: https://issues.apache.org/jira/browse/UIMA-857
> Project: UIMA
> Issue Type: Improvement
> Components: Build, Packaging and Test
> Reporter: Marshall Schor
> Priority: Minor
>
> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by "Marshall Schor (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674442#action_12674442 ]
Marshall Schor commented on UIMA-857:
-------------------------------------
Maybe we're confusing 2 things here - (a) ways of specifying jars to include in the classpath, and (b) whether or not to strip version numbers from the jars.
It seems these are independent - one can have a UIMA_JARPATH kind of thing with unversioned jars or not.
Regarding versioning the jars, if the issue is Eclipse, there's a feature in Eclipse to create user "libraries" which are like the UIMA_JARPATH idea - they are collections of jars with a name. If you wanted to, you could have a user library for UIMA and have your projects use this library in their classpath; then if you wanted to update the jars to a new level, you could just modify the user library definition once, and all the projects that used the library would get the new definition. Would this address the concern about Eclipse users?
I'm thinking that the thing that might set up a classpath based on UIMA_JARPATH kind of spec would be optional, and wouldn't be needed in Eclipse if the user library mechanism is used.
There are other mechanisms that people use, as well, such as "maven" - which sets up the class path for eclipse projects when the user executes the maven eclipse plugin. These would continue to work, as well.
> Change startup of framework to support versioned Jars and simplified classpath
> ------------------------------------------------------------------------------
>
> Key: UIMA-857
> URL: https://issues.apache.org/jira/browse/UIMA-857
> Project: UIMA
> Issue Type: Improvement
> Components: Build, Packaging and Test
> Reporter: Marshall Schor
> Priority: Minor
>
> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
Re: [jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by Thilo Goetz <tw...@gmx.de>.
Marshall Schor wrote:
> Thilo Goetz (JIRA) wrote:
>> [ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12675288#action_12675288 ]
>>
>> Thilo Goetz commented on UIMA-857:
>> ----------------------------------
>>
>> Let's not revisit the version-numbers-in-jar-names issue. Although I'm not of Adam's opinion, we have taken that decision in the past, and I don't think the world has changed enough to make us revisit that decision now.
>>
> OK.
>> On the UIMA_JARPATH: if you do this as an add-on that doesn't affect the core, I won't -1 it. UIMA is a library and as such should mess with class loading as little as possible. I never use the scripts that come with UIMA, so I don't know how big the pain is. Can't you just handle this on the scripting side?
>>
>>
> Yes, that would be the idea. We would add a new "main" class that would
> take some new -DuimaJarpath=xxxx and a new -DuimaRunThis=classToRun and
> would make up a URLClassLoader with these, and then would load the
> classToRun in this new loader and call its "main".
>
> See any issues with this?
The only issue I see with this is that you're giving people another
gun to shoot themselves in the foot with. People should be forced
to maintain their classpath manually for their own good :-)
--Thilo
Re: [jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by Marshall Schor <ms...@schor.com>.
Thilo Goetz (JIRA) wrote:
> [ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12675288#action_12675288 ]
>
> Thilo Goetz commented on UIMA-857:
> ----------------------------------
>
> Let's not revisit the version-numbers-in-jar-names issue. Although I'm not of Adam's opinion, we have taken that decision in the past, and I don't think the world has changed enough to make us revisit that decision now.
>
OK.
> On the UIMA_JARPATH: if you do this as an add-on that doesn't affect the core, I won't -1 it. UIMA is a library and as such should mess with class loading as little as possible. I never use the scripts that come with UIMA, so I don't know how big the pain is. Can't you just handle this on the scripting side?
>
>
Yes, that would be the idea. We would add a new "main" class that would
take some new -DuimaJarpath=xxxx and a new -DuimaRunThis=classToRun and
would make up a URLClassLoader with these, and then would load the
classToRun in this new loader and call its "main".
See any issues with this?
-Marshall
>
>> Change startup of framework to support versioned Jars and simplified classpath
>> ------------------------------------------------------------------------------
>>
>> Key: UIMA-857
>> URL: https://issues.apache.org/jira/browse/UIMA-857
>> Project: UIMA
>> Issue Type: Improvement
>> Components: Build, Packaging and Test
>> Reporter: Marshall Schor
>> Priority: Minor
>>
>> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
>> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
>>
>
>
[jira] Commented: (UIMA-857) Change startup of framework to support
versioned Jars and simplified classpath
Posted by "Thilo Goetz (JIRA)" <ui...@incubator.apache.org>.
[ https://issues.apache.org/jira/browse/UIMA-857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12675288#action_12675288 ]
Thilo Goetz commented on UIMA-857:
----------------------------------
Let's not revisit the version-numbers-in-jar-names issue. Although I'm not of Adam's opinion, we have taken that decision in the past, and I don't think the world has changed enough to make us revisit that decision now.
On the UIMA_JARPATH: if you do this as an add-on that doesn't affect the core, I won't -1 it. UIMA is a library and as such should mess with class loading as little as possible. I never use the scripts that come with UIMA, so I don't know how big the pain is. Can't you just handle this on the scripting side?
> Change startup of framework to support versioned Jars and simplified classpath
> ------------------------------------------------------------------------------
>
> Key: UIMA-857
> URL: https://issues.apache.org/jira/browse/UIMA-857
> Project: UIMA
> Issue Type: Improvement
> Components: Build, Packaging and Test
> Reporter: Marshall Schor
> Priority: Minor
>
> Our approach to the framework classpath is to (a) strip version info from our Jar names, and (b) have a setUimaClassPath script that adds lots of these (unversioned) jars to the classpath.
> Other systems use a different approach - usually putting all the jars that should be in the classpath into a directory, and then having a small wrapper jar (with an unversioned name) that adds all the jars it finds in this dir to the classpath. (See for instance, ActiveMQ startup, or the way things like Tomcat work). Change UIMA to use this approach. (Not for 2.2.2, but for following release, perhaps).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.