Re: [VOTE] Release Apache UIMA Ruta 2.2.0 RC5

2014-04-08 Thread Peter Klügl
Am 07.04.2014 15:26, schrieb Marshall Schor:
 On 4/7/2014 8:29 AM, Peter Klügl wrote:
 ...
 Advice would be greatly appreciated.
 I looked at the license file in that jar and it seems to have a lot of
 additional licenses.  So, one thing to do is to copy those licenses into the 
 top
 level license file for your distribution.

That would be the engine plugin artifact.


 Another thing to possibly do is to filter the Jar to remove the parts you're
 not using, and drop the notices/licenses for those parts (since the jar you'll
 be distributing won't have those).

 There are tools out there for figuring out what can be dropped, and doing the
 filtering - I don't have a link at this moment, but I remember coming across
 them when looking at Android packaging tooling.

I'd rather remove the complete dependency. It is only used in the addons
plugin in one view of the cde framework, but we actually have been
thinking about using more functionality in the future. This would cause
us to do the filtering each time.

So, I will cancel the RC and create a new one with an extended LICENSE
file, right?

Just to mention a reason why this did not happen before:
https://www.apache.org/dev/licensing-howto.html#alv2-dep

quote
Bundling an Apache-2.0-licensed Dependency
Assuming once again that that the dependency subtree contains no bundled
subcomponents under other licenses and thus the ALv2 applies uniformly
to all files, there is no need to modify LICENSE.

If the dependency supplies a NOTICE file, its contents must be analyzed
and the relevant portions bubbled up into the top-level NOTICE file.
/quote

Reading this with the fact in mind that the dependency is a library
developed and released by ASF, one can easily think that the license
file does not need to be changed. Isn't there only one license for a
released artifact at ASF?

Peter

 -Marshall
 Best,

 Peter

 -Marshall






Re: [VOTE] Release Apache UIMA Ruta 2.2.0 RC5

2014-04-08 Thread Peter Klügl
Am 08.04.2014 09:40, schrieb Peter Klügl:
 ...Reading this with the fact in mind that the dependency is a library
 developed and released by ASF, one can easily think that the license
 file does not need to be changed. Isn't there only one license for a
 released artifact at ASF? Peter 

Let me reword it. I thought the license file is for licenses, not for
copyright notices. Those should go to the notice file as we do with the
IBM or University notices.

Peter



[jira] [Created] (UIMA-3724) Adding (J)CasUtil.selectCoveredSingle()

2014-04-08 Thread Ofer Bronstein (JIRA)
Ofer Bronstein created UIMA-3724:


 Summary: Adding (J)CasUtil.selectCoveredSingle()
 Key: UIMA-3724
 URL: https://issues.apache.org/jira/browse/UIMA-3724
 Project: UIMA
  Issue Type: Improvement
  Components: uimaFIT
Reporter: Ofer Bronstein
Priority: Minor


JCasUtil (and its equivalent CASUtil) have two very useful methods:

- {{selectSingle(JCas jCas, ClassT type)}}, retrieving all T type annotations 
from the CAS, making sure only one exists, and returning it
- {{selectCovered(JCas jCas, final ClassT type, AnnotationFS 
coveringAnnotation)}}, retrieving all T type annotations from the CAS, that 
exist in the span defined by the covering annotation.

My request is to add a {{selectCoveredSingle}} method (I already implemented 
and tested, written below). It would retrieve all T type annotation in the span 
of the covering annotation, make sure there is only one, and return it.
The uses for such a method would be really common, as this assists in 
performing something very basic in UIMA - once you have some annotation, you 
want to retrieve other information on it, and if it is a small unit, then you 
know in advance that many types of information should only appear once for that 
annotation. Otherwise, it's an error.
For instance, say I have linguistically annotated text, and I hold some 
intersting annotation of a Token. Then I want to find out what is its Part Of 
Speech. Then I would simply call: {{selectCoveredSingle(jcas, 
PartOfSpeech.class, token)}}, and get exactly one PartOfSpeech annotation as I 
expected. If there is none or more then one, an exception is thrown.

One could also use a method like {{selectCoveredSingleOptional}} (not 
implemented yet), that does exactly the same, but returns null when no such 
annotation exists, instead of throwing an exception. This makes sense when a 
token can have some optional attribute. In linguistics, it could be when a 
Token may be a NamedEntity, but not necessarily.

the implementation is made out of two methods - the first should be in 
JCasUtil, the second should be in CASUtil.
===
Implementation:
===

/**
 * Get the annotation of the given annotation type constrained by a 
'covering' annotation.
 * Iterates over all annotations of the given type to find the covered 
annotations.
 * Does not use subiterators.
 *
 * @param T
 *the JCas type.
 * @param jCas
 *a JCas containing the annotation.
 * @param type
 *a UIMA type.
 * @param coveringAnnotation
 *the covering annotation.
 * @return the single instance of the given type.
 * @throws IllegalArgumentException if not exactly one instance if the 
given type is present
 * under the covering annotation.
 * @see Subiterator
 * 
 * @author Ofer Bronstein
 * @since April 2014
 */
@SuppressWarnings(unchecked)
public static T extends Annotation T selectCoveredSingle(JCas jCas, 
final ClassT type,
AnnotationFS coveringAnnotation) {
return (T) selectCoveredSingle(jCas.getCas(), 
JCasUtil.getType(jCas, type),
coveringAnnotation);
}

/**
 * Get the annotation of the given annotation type constrained by a 
'covering' annotation.
 * Iterates over all annotations of the given type to find the covered 
annotations.
 * Does not use subiterators.
 *
 * @param cas
 *a cas containing the annotation.
 * @param type
 *a UIMA type.
 * @param coveringAnnotation
 *the covering annotation.
 * @return the single instance of the given type.
 * @throws IllegalArgumentException if not exactly one instance if the 
given type is present
 * under the covering annotation.
 * @see Subiterator
 * 
 * @author Ofer Bronstein
 * @since April 2014
 */
public static AnnotationFS selectCoveredSingle(CAS cas, Type type,
AnnotationFS coveringAnnotation) {
ListAnnotationFS annotations = CasUtil.selectCovered(cas, 
type, coveringAnnotation);

if (annotations.isEmpty()) {
throw new IllegalArgumentException(CAS does not 
contain any [ + type.getName() + ]);
}
if (annotations.size()  1)  {
throw new IllegalArgumentException(CAS contains more 
than one [ + type.getName()
+ ]);
}

return annotations.get(0);
}





--
This message was sent by 

[jira] [Updated] (UIMA-3724) Adding (J)CasUtil.selectCoveredSingle()

2014-04-08 Thread Richard Eckart de Castilho (JIRA)

 [ 
https://issues.apache.org/jira/browse/UIMA-3724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Richard Eckart de Castilho updated UIMA-3724:
-

Fix Version/s: 2.0.1uimaFIT

 Adding (J)CasUtil.selectCoveredSingle()
 ---

 Key: UIMA-3724
 URL: https://issues.apache.org/jira/browse/UIMA-3724
 Project: UIMA
  Issue Type: Improvement
  Components: uimaFIT
Reporter: Ofer Bronstein
Priority: Minor
  Labels: patch
 Fix For: 2.0.1uimaFIT

   Original Estimate: 5m
  Remaining Estimate: 5m

 JCasUtil (and its equivalent CASUtil) have two very useful methods:
 - {{selectSingle(JCas jCas, ClassT type)}}, retrieving all T type 
 annotations from the CAS, making sure only one exists, and returning it
 - {{selectCovered(JCas jCas, final ClassT type, AnnotationFS 
 coveringAnnotation)}}, retrieving all T type annotations from the CAS, that 
 exist in the span defined by the covering annotation.
 My request is to add a {{selectCoveredSingle}} method (I already implemented 
 and tested, written below). It would retrieve all T type annotation in the 
 span of the covering annotation, make sure there is only one, and return it.
 The uses for such a method would be really common, as this assists in 
 performing something very basic in UIMA - once you have some annotation, you 
 want to retrieve other information on it, and if it is a small unit, then you 
 know in advance that many types of information should only appear once for 
 that annotation. Otherwise, it's an error.
 For instance, say I have linguistically annotated text, and I hold some 
 intersting annotation of a Token. Then I want to find out what is its Part Of 
 Speech. Then I would simply call: {{selectCoveredSingle(jcas, 
 PartOfSpeech.class, token)}}, and get exactly one PartOfSpeech annotation as 
 I expected. If there is none or more then one, an exception is thrown.
 One could also use a method like {{selectCoveredSingleOptional}} (not 
 implemented yet), that does exactly the same, but returns null when no such 
 annotation exists, instead of throwing an exception. This makes sense when a 
 token can have some optional attribute. In linguistics, it could be when a 
 Token may be a NamedEntity, but not necessarily.
 the implementation is made out of two methods - the first should be in 
 JCasUtil, the second should be in CASUtil.
 ===
 Implementation:
 ===
   /**
* Get the annotation of the given annotation type constrained by a 
 'covering' annotation.
* Iterates over all annotations of the given type to find the covered 
 annotations.
* Does not use subiterators.
*
* @param T
*the JCas type.
* @param jCas
*a JCas containing the annotation.
* @param type
*a UIMA type.
* @param coveringAnnotation
*the covering annotation.
* @return the single instance of the given type.
* @throws IllegalArgumentException if not exactly one instance if the 
 given type is present
* under the covering annotation.
* @see Subiterator
* 
* @author Ofer Bronstein
* @since April 2014
*/
   @SuppressWarnings(unchecked)
   public static T extends Annotation T selectCoveredSingle(JCas jCas, 
 final ClassT type,
   AnnotationFS coveringAnnotation) {
   return (T) selectCoveredSingle(jCas.getCas(), 
 JCasUtil.getType(jCas, type),
   coveringAnnotation);
   }
   /**
* Get the annotation of the given annotation type constrained by a 
 'covering' annotation.
* Iterates over all annotations of the given type to find the covered 
 annotations.
* Does not use subiterators.
*
* @param cas
*a cas containing the annotation.
* @param type
*a UIMA type.
* @param coveringAnnotation
*the covering annotation.
* @return the single instance of the given type.
* @throws IllegalArgumentException if not exactly one instance if the 
 given type is present
* under the covering annotation.
* @see Subiterator
* 
* @author Ofer Bronstein
* @since April 2014
*/
   public static AnnotationFS selectCoveredSingle(CAS cas, Type type,
   AnnotationFS coveringAnnotation) {
   ListAnnotationFS annotations = CasUtil.selectCovered(cas, 
 type, coveringAnnotation);
   
   if (annotations.isEmpty()) {
   throw new IllegalArgumentException(CAS does not 
 contain any [ + type.getName() + ]);
   }
   if 

[jira] [Assigned] (UIMA-3724) Adding (J)CasUtil.selectCoveredSingle()

2014-04-08 Thread Richard Eckart de Castilho (JIRA)

 [ 
https://issues.apache.org/jira/browse/UIMA-3724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Richard Eckart de Castilho reassigned UIMA-3724:


Assignee: Richard Eckart de Castilho

 Adding (J)CasUtil.selectCoveredSingle()
 ---

 Key: UIMA-3724
 URL: https://issues.apache.org/jira/browse/UIMA-3724
 Project: UIMA
  Issue Type: Improvement
  Components: uimaFIT
Reporter: Ofer Bronstein
Assignee: Richard Eckart de Castilho
Priority: Minor
  Labels: patch
 Fix For: 2.0.1uimaFIT

   Original Estimate: 5m
  Remaining Estimate: 5m

 JCasUtil (and its equivalent CASUtil) have two very useful methods:
 - {{selectSingle(JCas jCas, ClassT type)}}, retrieving all T type 
 annotations from the CAS, making sure only one exists, and returning it
 - {{selectCovered(JCas jCas, final ClassT type, AnnotationFS 
 coveringAnnotation)}}, retrieving all T type annotations from the CAS, that 
 exist in the span defined by the covering annotation.
 My request is to add a {{selectCoveredSingle}} method (I already implemented 
 and tested, written below). It would retrieve all T type annotation in the 
 span of the covering annotation, make sure there is only one, and return it.
 The uses for such a method would be really common, as this assists in 
 performing something very basic in UIMA - once you have some annotation, you 
 want to retrieve other information on it, and if it is a small unit, then you 
 know in advance that many types of information should only appear once for 
 that annotation. Otherwise, it's an error.
 For instance, say I have linguistically annotated text, and I hold some 
 intersting annotation of a Token. Then I want to find out what is its Part Of 
 Speech. Then I would simply call: {{selectCoveredSingle(jcas, 
 PartOfSpeech.class, token)}}, and get exactly one PartOfSpeech annotation as 
 I expected. If there is none or more then one, an exception is thrown.
 One could also use a method like {{selectCoveredSingleOptional}} (not 
 implemented yet), that does exactly the same, but returns null when no such 
 annotation exists, instead of throwing an exception. This makes sense when a 
 token can have some optional attribute. In linguistics, it could be when a 
 Token may be a NamedEntity, but not necessarily.
 the implementation is made out of two methods - the first should be in 
 JCasUtil, the second should be in CASUtil.
 ===
 Implementation:
 ===
   /**
* Get the annotation of the given annotation type constrained by a 
 'covering' annotation.
* Iterates over all annotations of the given type to find the covered 
 annotations.
* Does not use subiterators.
*
* @param T
*the JCas type.
* @param jCas
*a JCas containing the annotation.
* @param type
*a UIMA type.
* @param coveringAnnotation
*the covering annotation.
* @return the single instance of the given type.
* @throws IllegalArgumentException if not exactly one instance if the 
 given type is present
* under the covering annotation.
* @see Subiterator
* 
* @author Ofer Bronstein
* @since April 2014
*/
   @SuppressWarnings(unchecked)
   public static T extends Annotation T selectCoveredSingle(JCas jCas, 
 final ClassT type,
   AnnotationFS coveringAnnotation) {
   return (T) selectCoveredSingle(jCas.getCas(), 
 JCasUtil.getType(jCas, type),
   coveringAnnotation);
   }
   /**
* Get the annotation of the given annotation type constrained by a 
 'covering' annotation.
* Iterates over all annotations of the given type to find the covered 
 annotations.
* Does not use subiterators.
*
* @param cas
*a cas containing the annotation.
* @param type
*a UIMA type.
* @param coveringAnnotation
*the covering annotation.
* @return the single instance of the given type.
* @throws IllegalArgumentException if not exactly one instance if the 
 given type is present
* under the covering annotation.
* @see Subiterator
* 
* @author Ofer Bronstein
* @since April 2014
*/
   public static AnnotationFS selectCoveredSingle(CAS cas, Type type,
   AnnotationFS coveringAnnotation) {
   ListAnnotationFS annotations = CasUtil.selectCovered(cas, 
 type, coveringAnnotation);
   
   if (annotations.isEmpty()) {
   throw new IllegalArgumentException(CAS does not 
 contain any [ + 

[jira] [Commented] (UIMA-3724) Adding (J)CasUtil.selectCoveredSingle()

2014-04-08 Thread Richard Eckart de Castilho (JIRA)

[ 
https://issues.apache.org/jira/browse/UIMA-3724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13962938#comment-13962938
 ] 

Richard Eckart de Castilho commented on UIMA-3724:
--

Sounds reasonable. The implementation could be made more efficient though by 
not resorting internally to selectCovered(). An exception could already be 
thrown when the count hits 2 without checking if there are any more. I'm 
considering adding a method like selectCovered(jcas, type, covering, count).

 Adding (J)CasUtil.selectCoveredSingle()
 ---

 Key: UIMA-3724
 URL: https://issues.apache.org/jira/browse/UIMA-3724
 Project: UIMA
  Issue Type: Improvement
  Components: uimaFIT
Reporter: Ofer Bronstein
Priority: Minor
  Labels: patch
 Fix For: 2.0.1uimaFIT

   Original Estimate: 5m
  Remaining Estimate: 5m

 JCasUtil (and its equivalent CASUtil) have two very useful methods:
 - {{selectSingle(JCas jCas, ClassT type)}}, retrieving all T type 
 annotations from the CAS, making sure only one exists, and returning it
 - {{selectCovered(JCas jCas, final ClassT type, AnnotationFS 
 coveringAnnotation)}}, retrieving all T type annotations from the CAS, that 
 exist in the span defined by the covering annotation.
 My request is to add a {{selectCoveredSingle}} method (I already implemented 
 and tested, written below). It would retrieve all T type annotation in the 
 span of the covering annotation, make sure there is only one, and return it.
 The uses for such a method would be really common, as this assists in 
 performing something very basic in UIMA - once you have some annotation, you 
 want to retrieve other information on it, and if it is a small unit, then you 
 know in advance that many types of information should only appear once for 
 that annotation. Otherwise, it's an error.
 For instance, say I have linguistically annotated text, and I hold some 
 intersting annotation of a Token. Then I want to find out what is its Part Of 
 Speech. Then I would simply call: {{selectCoveredSingle(jcas, 
 PartOfSpeech.class, token)}}, and get exactly one PartOfSpeech annotation as 
 I expected. If there is none or more then one, an exception is thrown.
 One could also use a method like {{selectCoveredSingleOptional}} (not 
 implemented yet), that does exactly the same, but returns null when no such 
 annotation exists, instead of throwing an exception. This makes sense when a 
 token can have some optional attribute. In linguistics, it could be when a 
 Token may be a NamedEntity, but not necessarily.
 the implementation is made out of two methods - the first should be in 
 JCasUtil, the second should be in CASUtil.
 ===
 Implementation:
 ===
   /**
* Get the annotation of the given annotation type constrained by a 
 'covering' annotation.
* Iterates over all annotations of the given type to find the covered 
 annotations.
* Does not use subiterators.
*
* @param T
*the JCas type.
* @param jCas
*a JCas containing the annotation.
* @param type
*a UIMA type.
* @param coveringAnnotation
*the covering annotation.
* @return the single instance of the given type.
* @throws IllegalArgumentException if not exactly one instance if the 
 given type is present
* under the covering annotation.
* @see Subiterator
* 
* @author Ofer Bronstein
* @since April 2014
*/
   @SuppressWarnings(unchecked)
   public static T extends Annotation T selectCoveredSingle(JCas jCas, 
 final ClassT type,
   AnnotationFS coveringAnnotation) {
   return (T) selectCoveredSingle(jCas.getCas(), 
 JCasUtil.getType(jCas, type),
   coveringAnnotation);
   }
   /**
* Get the annotation of the given annotation type constrained by a 
 'covering' annotation.
* Iterates over all annotations of the given type to find the covered 
 annotations.
* Does not use subiterators.
*
* @param cas
*a cas containing the annotation.
* @param type
*a UIMA type.
* @param coveringAnnotation
*the covering annotation.
* @return the single instance of the given type.
* @throws IllegalArgumentException if not exactly one instance if the 
 given type is present
* under the covering annotation.
* @see Subiterator
* 
* @author Ofer Bronstein
* @since April 2014
*/
   public static AnnotationFS selectCoveredSingle(CAS cas, Type type,
   AnnotationFS 

[jira] [Created] (UIMA-3725) DUCC Job Driver (JD) hangs if an Error occurs during initialize phase

2014-04-08 Thread Lou DeGenaro (JIRA)
Lou DeGenaro created UIMA-3725:
--

 Summary: DUCC Job Driver (JD) hangs if an Error occurs during 
initialize phase
 Key: UIMA-3725
 URL: https://issues.apache.org/jira/browse/UIMA-3725
 Project: UIMA
  Issue Type: Bug
  Components: DUCC
Reporter: Lou DeGenaro
Assignee: Lou DeGenaro
 Fix For: 1.0-Ducc


07 Apr 2014 16:45:24,544 36 INFO jd.JobDriver initialize N/A jd.step:initialize
07 Apr 2014 16:45:24,558 36 ERROR jd.JobDriverComponent process N/A
java.lang.NoClassDefFoundError: 
org.apache.uima.resourceSpecifier.factory.ServiceContext
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:93)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:170)
at 
org.apache.uima.ducc.transport.uima.dd.generator.DeploymentDescriptorGenerator.generateDeploymentDescriptor(DeploymentDescriptorGenerator.java:216)
at 
org.apache.uima.ducc.transport.uima.dd.generator.DeploymentDescriptorGenerator.generate(DeploymentDescriptorGenerator.java:102)
at org.apache.uima.ducc.jd.JobDriver.initialize(JobDriver.java:149)
at 
org.apache.uima.ducc.jd.JobDriverComponent.process(JobDriverComponent.java:145)
at 
org.apache.uima.ducc.jd.JobDriverComponent.evaluateJobDriverConstraints(JobDriverComponent.java:252)
at 
org.apache.uima.ducc.jd.event.JobDriverEventListener.onOrchestratorAbbreviatedStateDuccEvent(JobDriverEventListener.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:613)
at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:341)
at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:238)
at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)
at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at 
org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at 
org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
at 
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at 
org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at 
org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at 
org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
at 
org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
at 
org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at 
org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at 
org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
at 
org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
at 
org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:104)
at 
org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:560)
at 
org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:498)
at 
org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:467)
at 

[jira] [Commented] (UIMA-3724) Adding (J)CasUtil.selectCoveredSingle()

2014-04-08 Thread Ofer Bronstein (JIRA)

[ 
https://issues.apache.org/jira/browse/UIMA-3724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13963004#comment-13963004
 ] 

Ofer Bronstein commented on UIMA-3724:
--

That would be good. Note that selectCovered(jcas, type, covering, count) won't 
allow for an equivalent to selectCoveredSingleOptional (like for a 
NamedEntity), unless this will be somehow explicitly treated (another parameter 
stating if count should be equal or is just an upper limit? replacing count 
with minCount and maxCount? having a parallel method where count is just an 
upper limit? probably other ways exist as well.)

 Adding (J)CasUtil.selectCoveredSingle()
 ---

 Key: UIMA-3724
 URL: https://issues.apache.org/jira/browse/UIMA-3724
 Project: UIMA
  Issue Type: Improvement
  Components: uimaFIT
Reporter: Ofer Bronstein
Assignee: Richard Eckart de Castilho
Priority: Minor
  Labels: patch
 Fix For: 2.0.1uimaFIT

   Original Estimate: 5m
  Remaining Estimate: 5m

 JCasUtil (and its equivalent CASUtil) have two very useful methods:
 - {{selectSingle(JCas jCas, ClassT type)}}, retrieving all T type 
 annotations from the CAS, making sure only one exists, and returning it
 - {{selectCovered(JCas jCas, final ClassT type, AnnotationFS 
 coveringAnnotation)}}, retrieving all T type annotations from the CAS, that 
 exist in the span defined by the covering annotation.
 My request is to add a {{selectCoveredSingle}} method (I already implemented 
 and tested, written below). It would retrieve all T type annotation in the 
 span of the covering annotation, make sure there is only one, and return it.
 The uses for such a method would be really common, as this assists in 
 performing something very basic in UIMA - once you have some annotation, you 
 want to retrieve other information on it, and if it is a small unit, then you 
 know in advance that many types of information should only appear once for 
 that annotation. Otherwise, it's an error.
 For instance, say I have linguistically annotated text, and I hold some 
 intersting annotation of a Token. Then I want to find out what is its Part Of 
 Speech. Then I would simply call: {{selectCoveredSingle(jcas, 
 PartOfSpeech.class, token)}}, and get exactly one PartOfSpeech annotation as 
 I expected. If there is none or more then one, an exception is thrown.
 One could also use a method like {{selectCoveredSingleOptional}} (not 
 implemented yet), that does exactly the same, but returns null when no such 
 annotation exists, instead of throwing an exception. This makes sense when a 
 token can have some optional attribute. In linguistics, it could be when a 
 Token may be a NamedEntity, but not necessarily.
 the implementation is made out of two methods - the first should be in 
 JCasUtil, the second should be in CASUtil.
 ===
 Implementation:
 ===
   /**
* Get the annotation of the given annotation type constrained by a 
 'covering' annotation.
* Iterates over all annotations of the given type to find the covered 
 annotations.
* Does not use subiterators.
*
* @param T
*the JCas type.
* @param jCas
*a JCas containing the annotation.
* @param type
*a UIMA type.
* @param coveringAnnotation
*the covering annotation.
* @return the single instance of the given type.
* @throws IllegalArgumentException if not exactly one instance if the 
 given type is present
* under the covering annotation.
* @see Subiterator
* 
* @author Ofer Bronstein
* @since April 2014
*/
   @SuppressWarnings(unchecked)
   public static T extends Annotation T selectCoveredSingle(JCas jCas, 
 final ClassT type,
   AnnotationFS coveringAnnotation) {
   return (T) selectCoveredSingle(jCas.getCas(), 
 JCasUtil.getType(jCas, type),
   coveringAnnotation);
   }
   /**
* Get the annotation of the given annotation type constrained by a 
 'covering' annotation.
* Iterates over all annotations of the given type to find the covered 
 annotations.
* Does not use subiterators.
*
* @param cas
*a cas containing the annotation.
* @param type
*a UIMA type.
* @param coveringAnnotation
*the covering annotation.
* @return the single instance of the given type.
* @throws IllegalArgumentException if not exactly one instance if the 
 given type is present
* under the covering annotation.
* @see Subiterator
* 
* @author Ofer Bronstein
  

Re: [VOTE] Release Apache UIMA Ruta 2.2.0 RC5

2014-04-08 Thread Marshall Schor

On 4/8/2014 3:47 AM, Peter Klügl wrote:
 Am 08.04.2014 09:40, schrieb Peter Klügl:
 ...Reading this with the fact in mind that the dependency is a library
 developed and released by ASF, one can easily think that the license
 file does not need to be changed. Isn't there only one license for a
 released artifact at ASF? Peter 

If the dependency is a library developed and released by the ASF, and it doesn't
require any license other than the Apache v2 license, then you don't need to
repeat that license.

However, in this case, the library artifact developers have decided (for reasons
I don't know) that they need to include licenses other than the Apache v2
license, for their distributed artifact (their JAR, which, we are, in turn,
redistributing), which, means, I think, that if we are (re)distributing their
artifact, we have to bubble up their licenses to our top level, or have an
alternative licensing statement / strategy that describes what re-bundlers of
our work would need to know/do.  

-Marshall
 Let me reword it. I thought the license file is for licenses, not for
 copyright notices. Those should go to the notice file as we do with the
 IBM or University notices.

 Peter






Re: [VOTE] Release Apache UIMA Ruta 2.2.0 RC5

2014-04-08 Thread Marshall Schor

On 4/8/2014 3:40 AM, Peter Klügl wrote:
 Am 07.04.2014 15:26, schrieb Marshall Schor:
 On 4/7/2014 8:29 AM, Peter Klügl wrote:
 ...
 Advice would be greatly appreciated.
 I looked at the license file in that jar and it seems to have a lot of
 additional licenses.  So, one thing to do is to copy those licenses into the 
 top
 level license file for your distribution.
 That would be the engine plugin artifact.

 Another thing to possibly do is to filter the Jar to remove the parts 
 you're
 not using, and drop the notices/licenses for those parts (since the jar 
 you'll
 be distributing won't have those).

 There are tools out there for figuring out what can be dropped, and doing the
 filtering - I don't have a link at this moment, but I remember coming across
 them when looking at Android packaging tooling.
 I'd rather remove the complete dependency. It is only used in the addons
 plugin in one view of the cde framework, but we actually have been
 thinking about using more functionality in the future. This would cause
 us to do the filtering each time.

 So, I will cancel the RC and create a new one with an extended LICENSE
 file, right?

 Just to mention a reason why this did not happen before:
 https://www.apache.org/dev/licensing-howto.html#alv2-dep

 quote
 Bundling an Apache-2.0-licensed Dependency
 Assuming once again that that the dependency subtree contains no bundled
 subcomponents under other licenses and thus the ALv2 applies uniformly
 to all files, there is no need to modify LICENSE.
But this doesn't seem to be the case here.  The dependency subtree (the Jar)
presumably has something licensed under those other licenses (not Apache-2.0)
included in their Jar?

 If the dependency supplies a NOTICE file, its contents must be analyzed
 and the relevant portions bubbled up into the top-level NOTICE file.
 /quote

 Reading this with the fact in mind that the dependency is a library
 developed and released by ASF, one can easily think that the license
 file does not need to be changed. Isn't there only one license for a
 released artifact at ASF?

Anytime we prepare convenience packaging that mixes work we do at the ASF (which
is licensed under the Apache v2 license) and other artifacts licensed under
other licenses (icons, etc.), we are releasing an artifact which has more than
just the Apache v2 license.  If others then incorporate our artifact, they have
to deal with those other licenses and notices, too.

This is something we need to consider when building artifacts.  Sometimes, it
not so great a concern if we bundle lots of other things having separate
notice/files (although it makes it a bit more difficult for end-users to
understand their obligations), but other times, for instance, if we expect other
developers to take our work and build other products of their own, then it
becomes more of a concern, because those other developers will be redistributing
their works, and they have to then do a careful analysis of all the licenses and
notices (much as we're having to do now ...).

-Marshall

 Peter

 -Marshall
 Best,

 Peter

 -Marshall







[jira] [Closed] (UIMA-3712) Improve DUCC's cleanup code on stop

2014-04-08 Thread Jerry Cwiklik (JIRA)

 [ 
https://issues.apache.org/jira/browse/UIMA-3712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jerry Cwiklik closed UIMA-3712.
---

Resolution: Fixed

removed unnecessary shutdown hook

 Improve DUCC's cleanup code on stop
 ---

 Key: UIMA-3712
 URL: https://issues.apache.org/jira/browse/UIMA-3712
 Project: UIMA
  Issue Type: Bug
  Components: DUCC
Affects Versions: 1.0-Ducc
Reporter: Jerry Cwiklik
Assignee: Jerry Cwiklik
Priority: Minor

 Remove unnecessary ShutdownHook in AbstractManagedService class. Prevent 
 executing AbstractDuccComponent.stop() multiple times.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (UIMA-3725) DUCC Job Driver (JD) hangs if an Error occurs during initialize phase

2014-04-08 Thread Lou DeGenaro (JIRA)

[ 
https://issues.apache.org/jira/browse/UIMA-3725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13963210#comment-13963210
 ] 

Lou DeGenaro commented on UIMA-3725:


Need to catch Error (Throwable) and clean-up.

 DUCC Job Driver (JD) hangs if an Error occurs during initialize phase
 -

 Key: UIMA-3725
 URL: https://issues.apache.org/jira/browse/UIMA-3725
 Project: UIMA
  Issue Type: Bug
  Components: DUCC
Reporter: Lou DeGenaro
Assignee: Lou DeGenaro
 Fix For: 1.0-Ducc


 07 Apr 2014 16:45:24,544 36 INFO jd.JobDriver initialize N/A 
 jd.step:initialize
 07 Apr 2014 16:45:24,558 36 ERROR jd.JobDriverComponent process N/A
 java.lang.NoClassDefFoundError: 
 org.apache.uima.resourceSpecifier.factory.ServiceContext
 at java.lang.J9VMInternals.verifyImpl(Native Method)
 at java.lang.J9VMInternals.verify(J9VMInternals.java:93)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:170)
 at 
 org.apache.uima.ducc.transport.uima.dd.generator.DeploymentDescriptorGenerator.generateDeploymentDescriptor(DeploymentDescriptorGenerator.java:216)
 at 
 org.apache.uima.ducc.transport.uima.dd.generator.DeploymentDescriptorGenerator.generate(DeploymentDescriptorGenerator.java:102)
 at org.apache.uima.ducc.jd.JobDriver.initialize(JobDriver.java:149)
 at 
 org.apache.uima.ducc.jd.JobDriverComponent.process(JobDriverComponent.java:145)
 at 
 org.apache.uima.ducc.jd.JobDriverComponent.evaluateJobDriverConstraints(JobDriverComponent.java:252)
 at 
 org.apache.uima.ducc.jd.event.JobDriverEventListener.onOrchestratorAbbreviatedStateDuccEvent(JobDriverEventListener.java:39)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
 at java.lang.reflect.Method.invoke(Method.java:613)
 at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:341)
 at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:238)
 at 
 org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
 at 
 org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
 at 
 org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
 at 
 org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
 at 
 org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
 at 
 org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
 at 
 org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
 at 
 org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:104)
 at 
 

[jira] [Closed] (UIMA-3725) DUCC Job Driver (JD) hangs if an Error occurs during initialize phase

2014-04-08 Thread Lou DeGenaro (JIRA)

 [ 
https://issues.apache.org/jira/browse/UIMA-3725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lou DeGenaro closed UIMA-3725.
--

Resolution: Fixed

code delivered.

 DUCC Job Driver (JD) hangs if an Error occurs during initialize phase
 -

 Key: UIMA-3725
 URL: https://issues.apache.org/jira/browse/UIMA-3725
 Project: UIMA
  Issue Type: Bug
  Components: DUCC
Reporter: Lou DeGenaro
Assignee: Lou DeGenaro
 Fix For: 1.0-Ducc


 07 Apr 2014 16:45:24,544 36 INFO jd.JobDriver initialize N/A 
 jd.step:initialize
 07 Apr 2014 16:45:24,558 36 ERROR jd.JobDriverComponent process N/A
 java.lang.NoClassDefFoundError: 
 org.apache.uima.resourceSpecifier.factory.ServiceContext
 at java.lang.J9VMInternals.verifyImpl(Native Method)
 at java.lang.J9VMInternals.verify(J9VMInternals.java:93)
 at java.lang.J9VMInternals.initialize(J9VMInternals.java:170)
 at 
 org.apache.uima.ducc.transport.uima.dd.generator.DeploymentDescriptorGenerator.generateDeploymentDescriptor(DeploymentDescriptorGenerator.java:216)
 at 
 org.apache.uima.ducc.transport.uima.dd.generator.DeploymentDescriptorGenerator.generate(DeploymentDescriptorGenerator.java:102)
 at org.apache.uima.ducc.jd.JobDriver.initialize(JobDriver.java:149)
 at 
 org.apache.uima.ducc.jd.JobDriverComponent.process(JobDriverComponent.java:145)
 at 
 org.apache.uima.ducc.jd.JobDriverComponent.evaluateJobDriverConstraints(JobDriverComponent.java:252)
 at 
 org.apache.uima.ducc.jd.event.JobDriverEventListener.onOrchestratorAbbreviatedStateDuccEvent(JobDriverEventListener.java:39)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
 at java.lang.reflect.Method.invoke(Method.java:613)
 at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:341)
 at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:238)
 at 
 org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
 at 
 org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330)
 at 
 org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220)
 at 
 org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
 at 
 org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
 at 
 org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
 at 
 org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
 at 
 org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73)
 at 
 org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99)
 at 
 org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:86)
 at 
 org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:104)
 at 
 

[jira] [Created] (UIMA-3726) DUCC SM Should support dynamic modification of all registration parameters

2014-04-08 Thread Jim Challenger (JIRA)
Jim Challenger created UIMA-3726:


 Summary: DUCC SM Should support dynamic modification of all 
registration parameters
 Key: UIMA-3726
 URL: https://issues.apache.org/jira/browse/UIMA-3726
 Project: UIMA
  Issue Type: Improvement
  Components: DUCC
Reporter: Jim Challenger
Assignee: Jim Challenger


Because services are forever it should be possible to dynamically change all 
registration options without the need to reregister.

Some such options will require service start.  In future work we will include a 
rolling restart to deploy updates with minimal disruption; for now manual 
stop and restart are required.

Some can be dynamically applied.

Some require restart of the ping/monitor only; this is done without service 
disruption.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (UIMA-3727) DUCC SM Doc updates for reworked SM

2014-04-08 Thread Jim Challenger (JIRA)
Jim Challenger created UIMA-3727:


 Summary: DUCC SM Doc updates for reworked SM
 Key: UIMA-3727
 URL: https://issues.apache.org/jira/browse/UIMA-3727
 Project: UIMA
  Issue Type: Improvement
  Components: DUCC
Reporter: Jim Challenger
Assignee: Jim Challenger


This jira will be used to cover the various documentation updates for the 
reworked and enhanced SM.



--
This message was sent by Atlassian JIRA
(v6.2#6252)