Hi Andrea As correctly noticed by you Stanbol has adopted consumer (=++) and provider (==+) version range policies some time ago. This means that packages that are used allow all version until the next major release. Packages that are provided (e.g. a package of an Interface that is implemented by an module the provider policy needs to be used.
There is a good reason for those version ranges as * major version changes might break backward compatibility and * minor version changes might add additional methods to an interface and therefore break implementations Changing the [===,+++) to [===,+++] means that version 3.0.0 is allowed. as soon as version 3.0.1 is released it would again break. So if we come to the conclusion that all stanbol components are in fact compatible with version 3.0.0 of the servlet api, than we need to use [2.5.0,4.0.0). As this will be specific to the servlet api those annotations will need to be explicitly annotated in the Import-Package specification of the pom.xml files importing the servlet API. I am already working on the necessary changes. best Rupert On Wed, Dec 12, 2012 at 5:06 PM, Andrea Di Menna <[email protected]> wrote: > Hi, > > it seems like it is solved applying this change: > > --- a/source/parent/pom.xml > +++ b/source/parent/pom.xml > @@ -166,8 +166,8 @@ > <Bundle-Vendor>Apache Stanbol (Incubating)</Bundle-Vendor> > > <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> > <_versionpolicy>$${version;===;${@}}</_versionpolicy> > - > <_provider-policy>[$(version;===;$(@)),$(version;=+;$(@)))</_provider-policy> > - > <_consumer-policy>[$(version;===;$(@)),$(version;+;$(@)))</_consumer-policy> > + > <_provider-policy>[$(version;===;$(@)),$(version;=+;$(@))]</_provider-policy> > + > <_consumer-policy>[$(version;===;$(@)),$(version;+;$(@))]</_consumer-policy> > </instructions> > </configuration> > </plugin> > > Those policies have been added in rev 1399264 > (http://svn.apache.org/viewvc?view=revision&revision=1399264) and > discussed in https://issues.apache.org/jira/browse/STANBOL-774 > > However the change I applied locally should have an impact not only on > javax.servlet version ranges, but also on other bundles. > I am not sure this is the correct solution. > > WDYT? > > Regards > Andrea > > 2012/12/12 Fabian Christ <[email protected]>: >> Hi, >> >> I did not check if it is still working for a while. I have seen that there >> were changes in Stanbol POMs regarding the servlet-api version but I did >> not had a closer look. >> >> Maybe it is really broken with newer versions of Stanbol. >> >> Anybody with a working version out there? >> >> Best, >> - Fabian >> >> >> 2012/12/12 Andrea Di Menna <[email protected]> >> >>> Hi all, >>> >>> I am building a Stanbol full-war from SVN rev 1399264. >>> Building is successfully, and everything is working on my local >>> machine, which has Tomcat 6. >>> >>> When trying to deploy the same war file on a remote server which has >>> Tomcat 7 in it, I get failures with the following reasons: >>> >>> SEVERE: ERROR: Error starting >>> slinginstall:org.apache.stanbol.commons.ldviewable-0.10.0-SNAPSHOT.jar >>> (org.osgi.framework.BundleException: Unresolved constraint in bundle >>> org.apache.stanbol.commons.ldviewable >>> [90]: Unable to resolve 90.0: missing requirement [90.0] package; >>> (&(package=freemarker.cache)(version>=2.3.19)(!(version>=3.0.0))) >>> [caused by: Unable to resolve 112.0: missing requirement [112.0] >>> package; >>> (&(package=javax.servlet)(version>=2.5.0)(!(version>=3.0.0)))]) >>> org.osgi.framework.BundleException: Unresolved constraint in bundle >>> org.apache.stanbol.commons.ldviewable [90]: Unable to resolve 90.0: >>> missing requirement [90.0] package; >>> (&(package=freemarker.cache)(versio >>> n>=2.3.19)(!(version>=3.0.0))) [caused by: Unable to resolve 112.0: >>> missing requirement [112.0] package; >>> (&(package=javax.servlet)(version>=2.5.0)(!(version>=3.0.0)))] >>> at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3443) >>> at org.apache.felix.framework.Felix.startBundle(Felix.java:1727) >>> at >>> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1156) >>> at >>> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264) >>> at java.lang.Thread.run(Thread.java:679) >>> >>> ... >>> >>> Other bundles cannot be started mainly because of: >>> >>> missing requirement [112.0] package; >>> (&(package=javax.servlet)(version>=2.5.0)(!(version>=3.0.0)))]) >>> >>> Tomcat 7 is providing serlvet-api.3.0.jar while Tomcat 6 has >>> servlet-api.2.5.jar >>> >>> From past posts, I read people could use Stanbol with Tomcat 7 (e.g. >>> Fabian) so I cannot understand what is going wrong with my >>> installation. >>> >>> Can anybody help me? >>> >>> Thanks >>> Andrea >>> >> >> >> >> -- >> Fabian >> http://twitter.com/fctwitt -- | Rupert Westenthaler [email protected] | Bodenlehenstraße 11 ++43-699-11108907 | A-5500 Bischofshofen
