olingo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johannes Hoenger (JIRA)" <j...@apache.org>
Subject [jira] [Created] (OLINGO-1140) Support of OSGi architecture
Date Thu, 15 Jun 2017 14:56:00 GMT
Johannes Hoenger created OLINGO-1140:
----------------------------------------

             Summary: Support of OSGi architecture 
                 Key: OLINGO-1140
                 URL: https://issues.apache.org/jira/browse/OLINGO-1140
             Project: Olingo
          Issue Type: New Feature
          Components: odata2-core
    Affects Versions: (Java) V4 4.3.0
            Reporter: Johannes Hoenger


*Context*
We as OSGi developers face a challenge when using third-party libraries like Olingo that OSGi
bundles may not be provided. 
Since Olingo does also not provide a bundle we opted for the most common solution. We wrapped
the Olingo library using [Apache Felix|http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html].

For more details about wrapping please refer to this link [Wrapping Libraries to OSGi Bundles|http://bnd.bndtools.org/chapters/390-wrapping.html].

*Request*
An inherent property of the wrapping is that the namespace of the wrapped artifact changes.
This is usually not an issue. 
However, when in the code is a package name hardcoded which leads to issue in our software
component.

The issue occurs at line 63 in the class RuntimeDelegate. Please refer to the following like
https://github.com/apache/olingo-odata2/blob/b33cdc411ac8731162266ebb19ae97a90ca88be9/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/rt/RuntimeDelegate.java#L51-L76

The aforementioned lined throws in our OSGi components the following exception
{code:title=exception.log|borderStyle=solid}
Exception: org.apache.olingo.odata2.api.rt.RuntimeDelegate$RuntimeDelegateException: java.lang.ClassNotFoundException:
org.apache.olingo.odata2.core.rt.RuntimeDelegateImpl cannot be found by <wrapping container
name>
org.apache.olingo.odata2.api.rt.RuntimeDelegate$RuntimeDelegateException: java.lang.ClassNotFoundException:
org.apache.olingo.odata2.core.rt.RuntimeDelegateImpl cannot be found by <wrapping container
name>
	at org.apache.olingo.odata2.api.rt.RuntimeDelegate.getInstance(RuntimeDelegate.java:73)
	at org.apache.olingo.odata2.api.rt.RuntimeDelegate.extractExceptionMessage(RuntimeDelegate.java:236)
	at org.apache.olingo.odata2.api.exception.ODataMessageException.getMessage(ODataMessageException.java:127)
	at java.lang.Throwable.getLocalizedMessage(Throwable.java:391)
	at java.lang.Throwable.toString(Throwable.java:480)
	at java.lang.Throwable.<init>(Throwable.java:311)
	at java.lang.Exception.<init>(Exception.java:102)
	at org.apache.olingo.odata2.api.exception.ODataException.<init>(ODataException.java:42)
	at org.apache.olingo.odata2.api.exception.ODataMessageException.<init>(ODataMessageException.java:75)
	at org.apache.olingo.odata2.api.exception.ODataMessageException.<init>(ODataMessageException.java:63)
	at org.apache.olingo.odata2.api.edm.EdmException.<init>(EdmException.java:48)
	at org.apache.olingo.odata2.api.edm.EdmLiteralException.<init>(EdmLiteralException.java:43)
	at org.apache.olingo.odata2.core.edm.EdmSimpleTypeFacadeImpl.parseUriLiteral(EdmSimpleTypeFacadeImpl.java:76)
	at org.apache.olingo.odata2.core.uri.expression.Tokenizer.checkForLiteral(Tokenizer.java:171)
	at org.apache.olingo.odata2.core.uri.expression.Tokenizer.tokenize(Tokenizer.java:153)
	at org.apache.olingo.odata2.core.uri.expression.FilterParserImpl.parseFilterString(FilterParserImpl.java:89)
	at org.apache.olingo.odata2.core.uri.expression.FilterParserImpl.parseFilterString(FilterParserImpl.java:80)
{code}

This line is, as far as we can tell, the only line which is incompatible with the OSGi wrapping
approach. Is is possible to provide a solution for this case?



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message