Hello Felix, *** This is my 2nd wiring of this posting, first one has been rejected as it was qualified as spam, so I intentionally put spaces into URIs and the word "sl ing". ***
Well, the exclamation mark in the Slin g-Bundle-Resources:/libs/fckeditor!/ did it, in fact! I actually thought about this definition rather like a traditional mount point than a path within the bundle. Great that both ways are possible. Now, looks like I need another of your very valuable tips with the taglib bundle... As mentioned, the taglib bundle installed fine. In the jsp (where I use the FCK:edit tag), I declared the recommended taglib directive: <%@ taglib uri="http://fckeditor .net/tags-fckeditor" prefix="FCK" %> At runtime, the jsp reacted with an error 500: org.apache.jasper.JasperException: This absolute uri (http://fckeditor .net/tags-fckeditor) cannot be resolved in either web.xml or the jar files deployed with this application. Well, to make a long story short, I combined then a Slin g-Bundle-Resources: /libs/fckeditor-taglib!/ header with the jsp taglib directive <[EMAIL PROTECTED] uri="/libs /fckeditor-taglib/META-INF/FCKeditor.tld" prefix="FCK" %> Now, the jsp seems to be a little happier, it just issues the following error: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/TagSupport at java.lang.ClassLoader.defineClass1(Native Method) ... May be a missing import? The manifest looks like this now: Manifest-Version: 1.0Bundle-Version: 1.0.0 Bundle-Name: FCKEditor-taglib Bundle-SymbolicName: net.proxymit.fck.fcktaglib Bundle-ManifestVersion: 2 Import-Package: org.slf4j Export-Package: net.fckeditor, net.fckeditor.handlers, net.fckeditor.tags, net.fckeditor.tool Bundle-ClassPath: /fckeditor-java-core-2.4.jar, /lib/commons-fileupload-1.2.1.jar, /lib/commons-io-1.3.2.jar Build-Jdk: 1.5.0_15 Sli ng-Bundle-Resources: /libs/fckeditor-taglib!/ Thanks, Juerg On Tue, 2008-08-26 at 08:43 +0200, Felix Meschberger wrote: > Hi Juerg, > > Juerg Meier schrieb: > > Hi Felix, > > > > Progress! Both bundles are now installed, visible in the console and > > started! > > Cool ! > > > > > However, there not yet doing what they supposed to do: for instance, I > > cannot retrieve resources from the resource bundle. E.g. the license > > file has path /license.txt within the bundle jar. So, in combination > > with the > > > > Sling-Bundle-Resources: /libs/fckeditor > > > > I would have guessed that the URI for it is: > > > > http://localhost:7402/libs/fckeditor/license.txt > > > > But I get a 404 instead. > > > > Any idea? > > Yes, the license file is expected to be at /libs/fckeditor/license.txt > in the bundle. So the path used to access the resource is looked up as > is in the bundle providing the resource. > > If you want to have the fckeditor in the root of your bundle, you might > want to use the path mapping feature: > > > Sling-Bundle-Resources/libs/fckeditor!/ > > This functionality cause the bundle resource provider top cut off > everything before the bang ("!") from the requested resource path and > only using the remaing path to access the bundle. > > Regards > Felix > > > > > Thanks so much, > > Juerg > > > > > > On Mon, 2008-08-25 at 08:15 +0200, Felix Meschberger wrote: > >> Hi Juerg, > >> > >> Juerg Meier schrieb: > >>> Hi Felix, > >>> > >>> Well. my first adventure into OSGi was not a very lucky one... I > >>> prepared two bundles, one for the resources, one for the taglib, but > >>> adding them with the mgmt console, they remained invisible. Looks like > >>> their falling in a black hole, because there wasn't an error message > >>> either... > >>> > >>> Perhaps the manifests are incomplete? Here the one for the static > >>> resources: > >>> > >>> Manifest-Version: 1.0 > >>> Bundle-Version: 1.0.0 > >>> Bundle-Name: FCKEditorResources > >>> Bundle-ManifestVersion: 2 > >>> Sling-Bundle-Resources: /libs/fckeditor > >> The problem with this manifest is, that the Bundle-SymbolicName header > >> is missing, which is required by OSGi R4. The same problem is with the > >> tag lib bundle. > >> > >>> I observed that > >>> in CRX quickstart there is bundle #33 that contains > >>> resources only. Howewver, its manifest does not contain a > >>> Sling-Bundle_Resources header, but something called > >>> Sling-Initial-Content. > >> These have different use cases: Sling-Bundle-Resources provides the > >> files (and folders) in the Sling Resource tree directly without any > >> traces in the repository. The main advantage of this is, that simply > >> updating the bundle also updates the files and folders in the reource tree. > >> > >> The Sling-Initial-Content header causes the addressed content to be > >> copied to the repository. The main advantage of this is, that you can > >> then directly manipulate these files in the repository without having to > >> redeploy a bundle -- but of course you loose the code management > >> functionality of the bundle in this case. > >> > >> So in the end, using Sling-Bundle-Resources in this case is supperior IMHO. > >> > >>> > >>> For the taglib bundle, I declared the following: > >>> > >>> Manifest-Version: 1.0 > >>> Bundle-Version: 1.0.0 > >>> Bundle-Name: FCKEditor-taglib > >>> Bundle-ManifestVersion: 2 > >>> Export-Package: net.fckeditor, net.fckeditor.handlers, > >>> net.fckeditor.tool > >>> Bundle-ClassPath: ., ./lib/commons-fileupload-1.2.1.jar, > >>> ./lib/commons-io-1.3.2.jar, ./lib/slf4j-api-1.5.2.jar > >>> Build-Jdk: 1.5.0_13 > >> You should not include the slf4j-api library in the tag lib bundle, > >> otherwise you get errors while running the library. Rather define an > >> Import-Package statement for the slf4j API: > >> > >> Import-Package: org.slf4j > >> > >> This works perfectly because the Sling log bundle provides this API for > >> use. > >> > >>> Do I need an activator, an import header or something else? > >> no, this is not needed as the JSP compiler recognizes the *.tld files in > >> the bundle's META-INF folders automatically and registers the respective > >> tag library from those files. > >> > >> > >> Hope this helps. > >> > >> Regards > >> Felix > > > >
