By Developers, For Developers

Historical errata for Modular Java

PDF PgPaper PgTypeDescriptionFixed onComments
9TYPO

«What Does It Mean to Be Modular?
Put simply, a module is a self-contained component of a much larger
system. Byond that trite definition, …»

Byond -> Beyond

2009-03-26
34SUGGEST

When installing the HelloWorld Sevice Bundle maybe it’s worth mentioning that you didn’t restart the Equinox container. An old school Java developer might miss this point wondering why the HelloWorld bundle installed before was still there.

2009-03-26
71TYPO

The book says:

“In this case, I’ve
specified the group ID (org.compass-project), the artifact ID (compass),
and the version number (2.1.1).”

But the code in page 70 uses the 2.1.0 version

“dude% pax-wrap-jar -g org.compass-project -a compass -v 2.1.0
[INFO] Scanning for projects…”

2009-03-26
65SUGGEST

When you try to run pax-embed-jar the first time you got a build error due to compass already being an dependency in pom.xml. You can bypass easily by using the -o option

I suggest to explain a litle why this happend.

Best Regards

2009-05-13I couldn't recreate this when I went back through the examples. But if it comes up again, I'll give it another try and write up an explanation. \n \nThis *might* be due to a slight shift in how I presented the example after making some edits...perhaps it was broken before, but after making some changes in how to perform the example, the problem goes away.
64TYPO

The book says “Actually, the Compass 2.1.1 JAR”

But the example code in previous page uses the 2.1.0 version

Best Regards
“”

2009-03-26
34TYPO

figure 2.3 HelloServiceActivator should be HelloServicePublisher

2009-03-26
1SUGGEST

I purchased this book mainly because I am doing Spring DM work at the moment, however I am disappointed with the lack of Spring DM “specific” stuff in it.

My suggestion (and only a suggestion) is to include far more specific Spring content (i.e. not all pax* commands), I think more of the starting Spring DM (out of the box “startup.sh” and connect to the OSGi console) not only pax and console interaction.

Also perphaps more Spring-orientated project setup (See Spring DM examples for the layouts / standard project configs) - I layout our projects this way and it matches the spring docs / examples (makes it easier for the developers here).

Overall, a lack of “spring-DM”ness I feel so far anyway. More a generic OSGi view but if that is the case why bother with Spring DM, you could simply use any of the others.

My 2100 cents….

Thanks, ~Patsy

On the plus side, saw some new tools (pax) nice - however from a SpringDM / bundle side not overly needed :(

2009-04-17I'm glad you noticed! \n \nMy goal for this book was *not* to write a Spring-DM only book. I wanted to cover some basic OSGi concepts and techniques. But I also wanted to cover Spring-DM. I didn't want a pure-OSGi book, but I also didn't want a pure Spring-DM book. \n \nInstead, I sought to write a book that best describes how I develop OSGi-based applications. Granted, it is not the only way to do it...but it is how I do it and I find it rather effective. \n \nAt the same time, I fought the urge to talk about things that strayed off of the main course of the story I was telling. There are *SO* many things that I could write about when writing about OSGi. But I wanted to stay focused and write a book that an OSGi newbie could pick up, work through, and walk away with a decent idea of how to work with OSGi, even if I didn't cover every nook and cranny of OSGi. \n \nI disagree that the Pax tools aren't needed so much with Spring-DM. The Pax tools (especially Pax Construct) are very useful whether you're using Spring-DM or not. I can't even imagine doing an OSGi project without Pax Construct. \n \nSo, you're right...Spring-DM is only *part* of the story. That was intentional.
44TYPO

Paragraph starting with “Along the way …”
“how to integration” should be “how to integrate”

2009-03-26
60ERROR

Link to “session-transcripts/domain-bundle-mvn-install.txt
” result in 404

2009-03-26It's a session transcript and shouldn't be linkable (or even show the filename). Fixed to not show the filename.
32TYPO

In french: the correct spelling of hello is:
“Bonjour !” instead of “Bon jour!”

2009-03-26
75TYPO

The correct spelling in French is:
“Voilà!” instead of “Voila!”

2009-03-26
70TYPO

“This means that you can’t upg*r*ade …” instead of “This means that you can’t upgade …”

2009-03-26
90ERROR

Although all bundles are ACTIVE, I had several exceptions of type:
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [xxx]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [xxx]

where xxx=
public void com.dudewheresmyjar.domain.JarFile.setRawUrl(java.lang.String)
public java.lang.String com.dudewheresmyjar.domain.JarFile.getRawUrl()
public java.lang.String com.dudewheresmyjar.domain.JarFile.getClassNames()]
public java.lang.String com.dudewheresmyjar.domain.JarFile.getPackageNames()
public com.dudewheresmyjar.domain.JarFile() (constructor)

If I remove the tag @SearchableId before the getRawId() accessor and put it before the rawId field declaration, I don’t have anymore the exception for the get & setRawId but still for the two other methods and constructor.

Any suggestion to solve this issue ?

2009-05-13I've seen this once before, but it seems to have gone away for me. I'll give it another look...if after getting the latest stuff it still happens, open another errata and I'll dig into it further. \n
96ERROR

Running the unit test related to the Bundle Context, I had the following exception:

Test set: com.dudewheresmyjar.index.test.IndexServiceBundleTest
———————————————————————————————————————-
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 14.893 sec <<< FAILURE!
testBundleContextExists(com.dudewheresmyjar.index.test.IndexServiceBundleTest) Time elapsed: 14.754 sec <<< ERROR!
java.rmi.UnmarshalException: invalid method hash
\tat sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:266)
\tat sun.rmi.transport.Transport$1.run(Transport.java:153)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat sun.rmi.transport.Transport.serviceCall(Transport.java:149)
\tat sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
\tat java.lang.Thread.run(Thread.java:613)

Any suggestion ?

2009-05-13I've never seen this happen...and, in fact, it's puzzling to me why RMI would've been involved at all. But, given the timing of this errata, it would seem that this is a Pax Drone-based test. I've since switched the book and example to use Pax Exam...not sure if the problem still exists in Pax Exam or not. If so, please feel free to open a new errata item and I'll check into it.
87ERROR

After importing the bundle for the pax-logging-api and pax-logging-service using the commands: “pax-import-bundle”
I had the following error when trying the perform a
“mvn clean install”

[INFO] ————————————————————————————————————
[ERROR] BUILD ERROR
[INFO] ————————————————————————————————————
[INFO] Failed to resolve artifact.

Missing:
—————
1) org.ops4j.pax.logging:pax-logging-api:jar:1.1.1

Try downloading the file manually from the project website.
…

2) org.ops4j.pax.logging:pax-logging-service:jar:1.1.1

…


2 required artifacts are missing.

I had the repository directive inside the root pom.xml file:


ops4j
h_t_t_p:/_/repository.ops4j.org

false

but it doesn’t work …

So I download and install manually the two artifacts.

How to solve correctly this issue ?

2009-05-13You're right...for that to work, you'll need to have the OPS4J Maven repo in your project's pom.xml or in your .m2/settings.xml file. \n \nYou can either manually add it to the base pom.xml file (see the top of page 90 where I show what it should look like...I do have you add it later) or you can use pax-add-repository. The effect is the same either way. \n \n
114TYPO

referenced XML file (Download dude-spring/index/src/main/resources/META-INF/spring/index-context.xml) (same for the source code) contains invalid directives:
“END:spider.beans —>”
" END:cm.properties —>"

Also for:

pagee 115: Download dude-spring/index/src/main/resources/META-INF/spring/index-osgi.xml

page 124: Download dude-spring/spider/src/main/resources/META-INF/spring/spider-context.xml

2009-05-13I'm using some special directives to extract certain pieces of XML for insertion into the book. For some reason the Prag magic that removes those comments from the code before the code is made available leaves part of them in place. I may need to provide a separate (non-marked-up) XML file for these or have the cleanup process fixed.
124SUGGEST

If we modify the example from previous chapters to add Spring features, perhaps it should important to notice to add a setter for the ‘repositoryUrl’ property

2009-03-26Good point...I switched gears slightly with how MavenSpider is constructed. I decided to use a setter method because later in the configuration chapter, we use Spring's support for property overrides...which needs a setter method and doesn't work with constructor args. \n \nSo that there's no confusion, I've gone back to the non-Spring MavenSpider and swapped the constructor argument for a setter method. It feels a little dirty to do so...after all, that seems like just the kind of thing you'd want to set at constructor time. But it is consistent, which I think is more important.
133SUGGEST

" … then point your browser to localhost:8080, you’d see a blank page."

but instead of a blank page, I have as explained for the Jetty server a Error 404 - Not found

2009-03-26
133TYPO

#38186 -> to remove
Sorry it works as described in the book
(my OSGi server had: Jetty and Tomcat)

2009-03-26
145TYPO

There is no link to the file for SearchController.java

2009-03-26
35SUGGEST

The last word on page 35 is a Java class name, “HelloServiceImpl”, which is wrapped. Probably wrapping should be disabled for class names.

2009-04-17I can't find that in my copy of the beta and it certainly isn't in the latest drafts. Even so, I suspect that this kinda thing will get caught and corrected during typesetting and/or copy-editing.
51ERROR

In the pax-plugin plugin snippet the version is 1.3 but on page 48 you wrote that you updated to version 1.4

2009-03-26
60TYPO

The first line should read “with Compass added as a dependency…”

2009-03-26
86TYPO

The first sentence should read “…, but failed to start”, not “…, but failed to resolve”. At least the log output on page 85 says that the index bundle is resolved.

2009-03-26
51TYPO

2nd listing lacks a surrounding

2009-03-26
9TYPO

Byond instead of Beyond in second sentence of the “What does it mean to be modular?” paragraph.

2009-03-26
26ERROR

Manifest at the bottom ofthe page is missing a line:
Manifest-Version: 1.0

2009-04-17Strictly speaking...that line isn't required. And, had I left it in there I would have had to explain it...which would've distracted a bit from the coverage of the OSGi-related headers.
11TYPO

Modula-2 and MIL were created… not creating…

2009-03-26
138TYPO

The second “the” should be “that” (?) in sentence “In fact, the OSGi Services Compendium defines an HTTP Service the enables deployment of servlets in an OSGi framework”

2009-04-17
73TYPO

Incorrect version number given: 2.1.1 should be 2.1.0

2009-05-13You're right...the book's in typesetting now, so it may be difficult to fix this, but I'll see what I can do.
61TYPO

At the time I ran the examples, Compass had been added to the central Maven repository, however, it is nice to see how to update pom.xml to deal with the situation where a dependency can’t be found.

2009-05-13Yeah...The Compass guys waited until *after* the writing had been completed to move their stuff to the central repo. I'm glad that they did it, but now that they did, the book's a bit out-dated on that subject. \n \nEven if I could adjust the book to reflect this news, I don't have another example of dealing with that kind of situation, so...that's why the text says "at the time I am writing this" (or something to that effect).
47TYPO

“Pax ConfMan—An implementation of the OSGi Configration
Admin Service.” should read “Pax ConfMan—An implementation of the OSGi Configuration
Admin Service.”

2009-05-13
70TYPO

“To do that, we can add the following directive to the domain
bundle BND instruction file (osgi.bnd):” should read “To do that, we can add the following directive to the domain
bundle BND instruction file (osgi-embedded.bnd):”

2009-05-13Well...this is a problem with how the example is zipped up for distribution vs. how it is presented in the book. I couldn't make changes to the real osgi.bnd file because then it would be wrong in the book when that file is presented. So, I made a separate osgi-embedded.bnd file to illustrate this situation. If you want to use it, you'll have to rename it to osgi.bnd...or just pretend that the changes were really made to osgi.bnd (as the book implies). \n
73SUGGEST

Somewhere in the Wrapping JARs section should you have the reader remove the Embedded-Dependency and Import-Package lines from the Domain osgi.bnd file?

2009-05-13Yeah...that would've been a good idea. I probably should've made it more clear that those were two separate approaches and should not be taken together. Since the book is in typesetting now, making such a change would be difficult. Perhaps in a followup printing...
93ERROR

The pom.xml file refers to package “com.dudewheresmyjar.dude” and the code examples previously used “com.dudewheresmyjar.dwmj”. Also, my version for com.dudewheresmyjar.dwmj/org.compass-project.compass had a different version. Could you explain this or make a note to the reader?

Thanks,
Gordon Dickens

2009-05-13This is most likely due to some post-beta changes, both in the versions of dependencies used and in the package names used throughout the book (apparently repeating the word "dude" seemed to campy, so I was asked to lessen the use of it..."dwmj" won out.
95ERROR

Had issues with setting up the tests. The links within the pdf do not resolve at PragProg.com. However I downloaded the code samples from PragProg and have those available. The test in the solution does not match what is in the text. I understand that it may be the final solution and I have may not have gotten there. The solution test class is using org.ops4j.pax.drone classes so I had to go to solution main pom and grab the dependencies and put them in my pom for it to work.

2009-05-13I've since switched from Pax Drone to the newer Pax Exam...perhaps that explains the differences?
87ERROR

Have same problem described above. Getting NoClassDefFound errors from Compass.

I’m haven’t used Compass before, but what kind of demands is this making on the classloader? I saw a blog post of yours from last year indicating that a DynamicImport-Package statement was necessary to get Compass working. Is this still the case?

Also, does Compass need visibility into the domain bundle to access methods via reflection? How are making this work?

Thanks for your help.

2010-06-13See my comments on #40442.
90ERROR

Sorry, the errata above about NoClassDefFound errors should be for page 90, not 87.

2010-06-13
63ERROR

I can’t get pax-provision call to work. I’m working behind a proxy and read that equinox won’t work… so predictably equinox fails on p. 56. Felix gets the farthest up to page 63 but then gives an unresolved bundle constraint on the compass stuff.

2010-06-13I'd be interested to know what problems are being encountered here. I know I've run Equinox (via Pax Runner) behind a firewall before. I'm not living behind a corporate firewall these days, so I can't try it out right now. But I did run it several times today while disconnected from the internet altogether and had no troubles. So, I'm at a loss as to how to proceed on this issue. \n \nAre there specific errors that you're encountering? \n
55SUGGEST

For the footnote, Windows users can substitute a caret (^) in place of the Unix backslash to allow continuation of lines.

2010-06-12Addressed for 2nd printing.
94TYPO

Hi,
All over the book you can’t seem to make up your mind over package name, some places you have it com.dudewheresmyjar.dude where as other places it is: com.dudewheresmyjar.dwmj. This caused significant heart ache especially when I was trying to redo the examples from the book and could not get them to work. Please correct this error.

Regards
Ravindar

2010-06-13I couldn't find any mismatched packages anywhere in the book, with the exception of a few non-central examples. There may, however, have been some of the example code left inconsistent with the last-minute decision to go from "dude" to "dwmj". \n \nIn any event, I'll be distributing a new set of example code for download as well as recommending some changes for the 2nd printing to address these concerns.
90ERROR

Hello,
For the index bundle, instead of having NoClassDefFoundError on IndexWriter I get NoClassDefFoundError on org.compass.core.config.CompassConfiguration (IndexServiceActivator.java:32).

When I investigate I get, :
osgi> bundle 5
…
Imported packages
org.compass.core.config; version=“0.0.0”<initial@reference:file:../bundles/org.compass-project.compass_2.1.0.jar/ [3]>
…

The compass wrapped bundle contains CompassConfiguration class. The jar is probably just not in the classpath. Did I miss something in the configuration ? How do I include It ?
Thanks

2010-06-13See comments for #40647 and #39997
85ERROR

Hi, I followed the book to build the dudewheresmyjar project and when I reached page 85, I managed to get all modules installed and running but I got the same exceptions mentioned in a previous post (#38158) by Renaud and the following periodic messages printed on the osgi console,

[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [0ms]

The same situation repeated when I tried the downloaded code from the website. Please suggest. Thank you.

2010-06-12I'll address the exceptions separately for a different errata item that also describes them. \n \nHowever, the messages you see that show up periodically should cause no concern. They are simply debug messages indicating that Compass is optimizing itself. This is a good thing...not an error.
55ERROR

In page 55 after we run pax-create-bundle it is suggested to delete the example codes. I do that and continue on with creating the domain class (JarFile). However, once I get to building the domain bundle by “mvn install” I get:

[ERROR] Error building bundle com.delete.me:delete:bundle:1.0-SNAPSHOT : Bundle-Activator not found on the bundle class
path nor in imports: dwmj.delete.internal.ExampleActivator
[ERROR] Error(s) found in bundle configuration
[INFO] ——————————————————————————————
[ERROR] BUILD ERROR
[INFO] ——————————————————————————-

Did I miss something?

Regards,
Kaz

2010-06-10Good catch...I should have also mentioned that the activator entry should be removed from the osgi.bnd file. \n \nFixed for the 2nd printing.
168TYPO

Hi, thanks for a well-written book.

Just like to highlight that web bundle and UI fragment ids should be 35 and 36 respectively instead of 32 and 33.

Thanks!

henry

2010-06-10Fixed for 2nd printing
92ERROR

running ‘mvn test’ from bundle-tests directory fails. I even tried from downloaded source code.

Missing:
—————
1) com.dudewheresmyjar.dude:org.compass-project.compass:jar:2.1.1-SNAPSHOT

The entries in pom.xml point to com.dudewheresmyjar.dude when it should be com.dudewheresmyjar.dwmj. Even after fixing it there seems to be package name resolve issues!

2010-06-13A last-minute decision was made to rename the "dude" directory to "dwmj". Apparently it was missed in a few places. \n \nI'll be distributing a new zip file with updated examples. I'll also be recommending changes for the 2nd printing to address these concerns.
49ERROR

Is the zip’d source code suppose to be fully functional or we need to modify it? Bundles are not configured correctly; i.e Missing imported package messages:

osgi> ss

Framework is launched.

id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.3.R34x_v20081215-1030
1 ACTIVE org.eclipse.osgi.util_3.1.300.v20080303
2 ACTIVE org.eclipse.osgi.services_3.1.200.v20070605
3 INSTALLED com.dudewheresmyjar.domain_1.0.0.SNAPSHOT
4 INSTALLED com.dudewheresmyjar.index_1.0.0.SNAPSHOT

osgi> diag 3
initial@reference:file:../bundles/com.dudewheresmyjar.domain_1.0.0.SNAPSHOT.jar/ [3]
Direct constraints which are unresolved:
Missing imported package dwmj.domain.internal_0.0.0.
Missing imported package org.compass.annotations_0.0.0.

osgi> diag 4
initial@reference:file:../bundles/com.dudewheresmyjar.index_1.0.0.SNAPSHOT.jar/ [4]
Direct constraints which are unresolved:
Missing imported package dwmj.domain.internal_0.0.0.
Missing imported package org.compass.core_0.0.0.
Missing imported package org.compass.core.config_0.0.0.
Leaf constraints in the dependency chain which are unresolved:
initial@reference:file:../bundles/com.dudewheresmyjar.domain_1.0.0.SNAPSHOT.jar/ [3]
Missing imported package org.compass.annotations_0.0.0.

osgi>

2010-06-13From the output shown here, it looks like the compass bundle wasn't installed. I can't say why exactly, as it installs fine for me. (I do have other issues with the downloaded code due to changes in Pax Runner since the book was published, but I do not have problems with the compass bundle not being loaded.) \n \nFWIW, I am working my way through the examples in the book step-by-step, as a reader would, noting all of the steps and output along the way. If I encounter a problem, I note it and document a resolution for it. Any changes necessary will be noted and fixed in a 2nd printing. \n \nSo far, I've only encountered small issues stemming from a new version of Pax Runner starting the OSGi runtime without the compendium bundle. Aside from that, I've currently got the example working right up through the middle of chapter 5. \n
112ERROR

As the book enters the portion for Spring DM and its setup it asks to perform a pax-import-bundle from dwmjs. There are no prior references to this directory.

2010-06-13I had used a separate dwmjs directory for the Spring version of the project. I'm recommending that all occasions of "dwmjs" be changed to "dwmj" for the 2nd printing.
85SUGGEST

Before importing ops4j pax logging bundles need to add repository $>pax-add-repository -i ops4j.releases -u <link http : // repository.ops4j.org/maven2/>

2010-06-12Noted to be addressed for the 2nd printing.
112ERROR

Need to add repository for spring bundles before importing the bundles.

pax-add-repository -i com.springsource.repository.bundles.external -u <link http repository.springsource.com/maven/bundles/external>

You may be right about this, but I need to dig into it a bit further to be sure that I'm not missing something else. (FWIW, I tried it without doing that and it worked fine, but I need to do more research to be sure).
61SUGGEST

pax-create-bundle created this line in osgi.bnd:
Bundle-Activator: ${bundle.namespace}.internal.ExampleActivator
but it needs to be removed to get the build to work. It would have been helpful to mention here:
The example service and activator Java files are great for educational
purposes. However, they serve no purpose in our domain bundle, so
when you’re finished looking around, go ahead and delete them. In
their place, we’ll need to create a domain class that represents a JAR
file within the index.

2010-06-12Addressed for 2nd printing.
37ERROR

Examples doesn’t work anymore due to inavailability of pax.drone. It seams, the latter has been renamed to pax.exam, but neither by maven nor by manual download the required files can be found!

2010-06-10I cannot find any references to Pax Drone anywhere in the book. I removed those references in favor of Pax Exam well before the book went to print. I do have some example code laying around that still has Pax Drone dependencies, however. If that code somehow made it into the downloadable examples, then I'll make sure that I remove it before packaging up any new examples for distribution.
92OK

I found that the tests wouldn’t pass without making the following correction in IndexServiceBundleTest/configuration():

Was:

mavenBundle().groupId(“com.dudewheresmyjar.dwmj”).
artifactId(“org.compass-project.compass”).version(“2.1.1-SNAPSHOT”)

Changed to:

mavenBundle().groupId(“com.dudewheresmyjar.dwmj”).
artifactId(“org.compass-project.compass”).version(“2.1.1-001-SNAPSHOT”)

Change was required because we moved from embedding Compass to wrapping it.

2010-09-13
32ERROR

To get the hello-service hello-consumer examples working, you have to do the following: In hello-service edit the pom.xml file and change the drone dependencies to pax-exam as follows:


org.ops4j.pax.exam
pax-exam
0.3.0
test


org.ops4j.pax.exam
pax-exam
0.3.0
test


org.ops4j.pax.exam
pax-exam
0.3.0
test

Compile the hello-service with: mvn install, or perhaps both mvn package install. Then install it under osgi as normal. If you don’t run mvn install for the hello-service, the mvn package command will fail for hello-consumer on a missing dependency error, but running mvn install put it into maven2 repository and hello-consumer then compiles and installs normally.

2010-06-10The Pax Drone dependencies should have never been there at all. In fact, they don't need to even be Pax Exam dependencies because that particular project never uses Pax Drone or Pax Exam. I've removed those dependencies in the latest example code that will soon be available for download (when I submit errata fixes for a 2nd printing). \n \nAs for the mvn install steps...that is basic Maven stuff. For the hello-consumer to be able to resolve its dependencies, the hello-service needs to be in the local Maven repo. I've specified a bit more explicit instructions in the text of the 2nd printing.
34ERROR

The example pom.xml file for hello-consumer is wrong. The correct dependencies section looks like this:



com.pragprog.osgi
hello-service
1.0.0

2010-06-10At one time the dependency was correct. But then I changed the service bundle's artifact and version. By that time I had the old version in my local Maven repo. So, when I forgot to change it in the consumer pom.xml it still worked because the old stuff was in my local repo. \n \nI've corrected this for the next distribution of the example code to go out along with the 2nd printing of the book.
66TYPO

The instructions for setting up the pax-embed-jar process were confusing, in large part because of the figure at the bottom of page 66.

What you need to do is run the pax-embed-jar command as stated on page 64, then add the Import-Package: *;resolution:=optional line to both osgi.bnd and osgi-embedded.bnd.

That works.

2010-06-12What you see there is an unfortunate artifact from how the book gets generated. The osgi-embedded.bnd file is really just a temporary duplicate of osgi.bnd so that I could have two versions side-by-side for book generation purposes. \n \nDon't concern yourself too much with what that means. Suffice it to say that there's no need for the osgi-embedded.bnd file in the real project. The change should only need to be made to osgi.bnd. \n \nI've noted that the header for the 1-line listing should be changed to "dwmj/domain/osgi.bnd" and this should be corrected in the 2nd printing.
85ERROR

I also get the infinite repetition issue with the pax-provision call on page 85. I cannot progress through Chapter 5 until this is explained. Here is the output listing:

osgi> org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling SLF4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Jakarta Commons Logging API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Log4J API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling Avalon Logger API support.
org.ops4j.pax.logging.pax-logging-api[org.ops4j.pax.logging.internal.Activator] : Enabling JULI Logger API support.
[Framework Event Dispatcher] DEBUG org.ops4j.pax.logging.pax-logging-service - BundleEvent STARTED
[Framework Event Dispatcher] DEBUG org.compass-project.compass - BundleEvent STARTED
[Framework Event Dispatcher] DEBUG com.dudewheresmyjar.domain - BundleEvent STARTED
[Start Level Event Dispatcher] INFO org.compass.core.config.CompassConfiguration - Mapping class [class dwmj.domain.JarFile]
[Start Level Event Dispatcher] DEBUG org.compass.core.converter.DefaultConverterLookup - Dynamic converter - MVEL found in the class path, registering it
[Start Level Event Dispatcher] DEBUG org.compass.core.converter.DefaultConverterLookup - Dynamic converter - JEXL found in the class path, registering it
[Start Level Event Dispatcher] DEBUG org.compass.core.converter.DefaultConverterLookup - Dynamic converter - OGNL found in the class path, registering it
[Start Level Event Dispatcher] DEBUG org.compass.core.converter.DefaultConverterLookup - Dynamic converter - GROOVY found in the class path, registering it
[Start Level Event Dispatcher] DEBUG org.compass.core.converter.mapping.xsem.XmlContentMappingConverter - Using xmlContentMapping [null] with wrapper [prototype] and settings [{}]
[Start Level Event Dispatcher] DEBUG org.compass.core.converter.mapping.json.JsonContentMappingConverter - Usign Json content converter [org.compass.core.json.impl.converter.DefaultJSONContentConverterImpl]
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for constructor [public dwmj.domain.JarFile()]
java.lang.NoSuchMethodException: Can’t create ASM constructor reflection helper for [public dwmj.domain.JarFile()]
\tat org.compass.core.util.reflection.asm.AsmReflectionConstructorGenerator.generateConstructor(AsmReflectionConstructorGenerator.java:83)
\tat org.compass.core.util.reflection.ReflectionFactory.getConstructor(ReflectionFactory.java:86)
\tat org.compass.core.util.reflection.ReflectionFactory.getDefaultConstructor(ReflectionFactory.java:80)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:62)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionConstructorGenerator.defineClass(AsmReflectionConstructorGenerator.java:113)
\tat org.compass.core.util.reflection.asm.AsmReflectionConstructorGenerator.generateConstructor(AsmReflectionConstructorGenerator.java:78)
\t… 20 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionConstructor
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 26 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionConstructor
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 29 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getPackageNames()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getPackageNames()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:215)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:211)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:93)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 24 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 30 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 33 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getPackageNames()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getPackageNames()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.setterMethod(BasicPropertyAccessor.java:189)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetterOrNull(BasicPropertyAccessor.java:163)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:155)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:94)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 25 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 31 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 34 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getPackageNames()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getPackageNames()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:215)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:211)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:93)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:99)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 25 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 31 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 34 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getPackageNames()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getPackageNames()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.setterMethod(BasicPropertyAccessor.java:189)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetterOrNull(BasicPropertyAccessor.java:163)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:155)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:94)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:99)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 26 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 32 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 35 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getClassNames()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getClassNames()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:215)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:211)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:93)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 24 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 30 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 33 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getClassNames()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getClassNames()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.setterMethod(BasicPropertyAccessor.java:189)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetterOrNull(BasicPropertyAccessor.java:163)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:155)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:94)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 25 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 31 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 34 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getClassNames()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getClassNames()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:215)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:211)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:93)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:99)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 25 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 31 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 34 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getClassNames()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getClassNames()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.setterMethod(BasicPropertyAccessor.java:189)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetterOrNull(BasicPropertyAccessor.java:163)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:155)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:94)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:99)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 26 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 32 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 35 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getRawUrl()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getRawUrl()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:215)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:211)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:93)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 24 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 30 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 33 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public java.lang.String dwmj.domain.JarFile.getRawUrl()]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public java.lang.String dwmj.domain.JarFile.getRawUrl()]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getGetterOrNull(BasicPropertyAccessor.java:235)
\tat org.compass.core.accessor.BasicPropertyAccessor.setterMethod(BasicPropertyAccessor.java:189)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetterOrNull(BasicPropertyAccessor.java:163)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:155)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:94)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 25 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 31 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 34 more
[Start Level Event Dispatcher] DEBUG org.compass.core.util.reflection.ReflectionFactory - Failed to generate ASM (should have worked…) for method [public void dwmj.domain.JarFile.setRawUrl(java.lang.String)]
java.lang.NoSuchMethodException: Can’t create ASM method reflection helper for [public void dwmj.domain.JarFile.setRawUrl(java.lang.String)]
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:89)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:45)
\tat org.compass.core.util.reflection.ReflectionFactory.getMethod(ReflectionFactory.java:50)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetterOrNull(BasicPropertyAccessor.java:170)
\tat org.compass.core.accessor.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:155)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.processMapping(PropertyAccessorMappingProcessor.java:94)
\tat org.compass.core.config.process.PropertyAccessorMappingProcessor.process(PropertyAccessorMappingProcessor.java:79)
\tat org.compass.core.config.CompassMappingProcessor.process(CompassMappingProcessor.java:60)
\tat org.compass.core.config.CompassConfiguration.buildCompass(CompassConfiguration.java:278)
\tat dwmj.index.internal.IndexServiceActivator.getCompass(IndexServiceActivator.java:36)
\tat dwmj.index.internal.IndexServiceActivator.start(IndexServiceActivator.java:22)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:782)
\tat java.security.AccessController.doPrivileged(Native Method)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:773)
\tat org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:754)
\tat org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
\tat org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
\tat org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
\tat org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
\tat org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:220)
\tat org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:330)
Caused by: java.lang.reflect.InvocationTargetException
\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
\tat java.lang.reflect.Method.invoke(Method.java:597)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.defineClass(AsmReflectionMethodGenerator.java:249)
\tat org.compass.core.util.reflection.asm.AsmReflectionMethodGenerator.generateMethod(AsmReflectionMethodGenerator.java:84)
\t… 23 more
Caused by: java.lang.NoClassDefFoundError: org/compass/core/util/reflection/ReflectionMethod
\tat java.lang.ClassLoader.defineClass1(Native Method)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:621)
\tat java.lang.ClassLoader.defineClass(ClassLoader.java:466)
\t… 29 more
Caused by: java.lang.ClassNotFoundException: org.compass.core.util.reflection.ReflectionMethod
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)
\tat org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)
\tat org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
\tat java.lang.ClassLoader.loadClass(ClassLoader.java:252)
\tat java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
\t… 32 more
[Start Level Event Dispatcher] DEBUG org.compass.core.executor.concurrent.ConcurrentExecutorManager - Using concurrent executor manager with core size [10], max size [30], and keep alive time [60000ms]
[Start Level Event Dispatcher] DEBUG org.compass.core.executor.concurrent.ConcurrentExecutorManager - Using concurrent executor manager scheduler with size [1]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using connection [C:\\DOCUME~1\\GARYMA~1\\LOCALS~1\\Temp\\/dudeindex][null]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using alias property [alias]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using extended alias property [extendedAlias]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using default all property [zzz-all]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using all property term vector [no]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - All property boost support is [true]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using default search property [zzz-all]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using transaction lock timeout [10000ms]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using lock poll interval [100ms]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using clear cache on commit [true]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Using cache invalidation interval [5000ms]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Wait for cahce invalidation on index operatrion is set to [false]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.LuceneSettings - Setting static Lucene BooleanQuery maxClauseCount to [1024]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.analyzer.DefaultLuceneAnalyzerFactory - Analyzer [default] uses Lucene analyzer [standard]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore - Using compound format [true]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.store.DefaultLuceneSearchEngineStore - Support concurrent operations [true]
[Start Level Event Dispatcher] INFO org.compass.core.lucene.engine.LuceneSearchEngineFactory - Not using highlighter - no highlighter jar included.
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Using optimizer [org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer@4204]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.queryparser.LuceneQueryParserManager - No default query parser found (under groupd [default]), registering a default one
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.queryparser.DefaultLuceneQueryParser - Query Parser configured with allowLeadingWildcard [true] and allowConstantScorePrefixQuery [true]
[Start Level Event Dispatcher] DEBUG org.compass.core.transaction.TransactionFactoryFactory - Using transaction factory [org.compass.core.transaction.LocalTransactionFactory@1e4a47e]
[Start Level Event Dispatcher] DEBUG org.compass.core.cache.first.FirstLevelCacheFactory - Using first level cache [org.compass.core.cache.first.DefaultFirstLevelCache]
[Start Level Event Dispatcher] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Starting Optimizer
[Start Level Event Dispatcher] INFO org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Starting scheduled optimizer [class org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer] with period [10000ms]
[Start Level Event Dispatcher] INFO org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager - Starting scheduled index manager with period [60000ms]
[Start Level Event Dispatcher] INFO org.compass.core.lucene.engine.manager.DefaultLuceneSearchEngineIndexManager - Starting scheduled refresh cache with period [5000ms]
[Start Level Event Dispatcher] DEBUG com.dudewheresmyjar.index - ServiceEvent REGISTERED
[Framework Event Dispatcher] DEBUG com.dudewheresmyjar.index - BundleEvent STARTED
[Framework Event Dispatcher] DEBUG com.dudewheresmyjar.spider - BundleEvent STARTED
[Framework Event Dispatcher] DEBUG org.eclipse.osgi - BundleEvent STARTED
[Framework Event Dispatcher] DEBUG org.eclipse.osgi - FrameworkEvent STARTED
[Framework Event Dispatcher] DEBUG org.eclipse.osgi - FrameworkEvent STARTLEVEL CHANGED
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [94ms]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [15ms]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [0ms]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [16ms]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [0ms]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [62ms]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [0ms]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [16ms]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.LuceneSearchEngineOptimizerManager - Checking for index optimization
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimizing sub-index [jar] with mergeFactor [10]
[Compass Scheduled Executor Thread] DEBUG org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer - Optimization of sub-index [jar] took [31ms]

2010-06-13Notice that these stack traces are being logged at DEBUG level. They aren't a real problem...just an unfortunate way that Compass deals with a classloader gotcha. \n \nThe gist of it is that Compass tries one approach to do its work, but that approach depends on classloader tricks that won't work in OSGi's locked-down classloading. So, Compass falls back on a different approach. But before it does the fallback, it logs the stack trace, giving the impression that something bad happened. \n \nI'll be recommending a change in the 2nd printing to alert the reader to this strange circumstance. In the meantime, it's easy enough to either ignore it or set the logging levels to ignore DEBUG logging from Compass.
89ERROR

Having same problem as #39644, I applied advice given at #39997… and “ClassNotFoundException” on CompassConfiguration disappeared.

My 2 cents.

2010-06-13See my comment for #39997
90SUGGEST

When creating the first test class to run with PAX Exam, it would be wise to stress that unlike normal JUnit tests, this one should not be put in a package that is already used in the domain or index package. Using the same package will result in “ not found” because the PAX Exam drone will be overriden by the other bundles. In your example, the package in non-conflicting, but a note on why a different package name was chosen would be useful. It took me a complete afternoon to figure out why your tests would run and mine would not…

2010-06-13I am recommending a footnote to be added in the 2nd edition that reads: \n \nIt's important that IndexServiceBundleTest not be placed in the same package as the IndexService interface itself. Doing so would present a split-package situation where a package appears in multiple bundles--in this case, the index service bundle and the on-the-fly test bundle.
99ERROR

The code example for the SpiderActivator class uses an array of MavenSpider instances that is being looped through in the stop() method. This array is never filled, so no spider will ever be stopped. I assume there is a line missing in the for-loop of the start() method: “spiders[i] = spider;”. The downloadable code examples also contain this error.

2010-06-13Addressed for the 2nd printing.
100TYPO

The “Deploying the Spider Bundle” paragraph speaks of the ‘pax-add-dependency’ script, yet it should be the ‘pax-import-bundle’ script, as there is no ‘pax-add-dependency’ script (anymore?). The examples show the correct script name. This mistake is repeated on page 101.

2010-06-13Fixed for 2nd printing.
101ERROR

I had to also add the wrapped compass depdendency to get spider to compile.

spider% pax-import-bundle -g com.dudewheresmyjar.dwmj -a org.compass-project.compass -v 2.1.1-001-SNAPSHOT

2010-06-13I'm not sure why you had to do that, as importing the domain bundle should have pulled the compass bundle in transitively. In fact, I have just run through the examples again (by hand) and had no trouble building the spider bundle, so long as I added the domain and index bundles.
83ERROR

The pax-import-bundle here doesn’t work, and the output in the book shows it too! It says “problem resolving project”. I’m getting exactly the same error.

Also, when I add the dependency by hand, then I am unable to build the domain or the index bundle. The following is the error I get:

[INFO] Error building POM (may not be this project’s POM).

Project ID: com.dudewheresmyjar.dwmj:org.compass-project.compass:bundle:2.2.0-001-SNAPSHOT

Reason: Cannot find parent: com.dudewheresmyjar.dwmj.build:wrapper-bundle-settings for project: com.dudewheresmyjar.dwmj:org.compass-project.compass:bundle:2.2.0-001-SNAPSHOT for project com.dudewheresmyjar.dwmj:org.compass-project.compass:bundle:2.2.0-001-SNAPSHOT

2010-06-12The error shown in the book indicates that I had not yet built the wrapped compass bundle (the bundle produced in section 4.2 under "Wrapping JARs"). As long as I build that bundle, as recommended about 1/3 down the page on page 71), then I don't encounter the error. \n \nI have been reworking the examples by hand and will be submitting the results and output for a 2nd printing. The error that this issue describes should not have appeared in the printed book, as it represents a basic mistake that could have been avoided had I followed my own directions and built the wrapped compass bundle first. The 2nd printing should show the successful results. \n \nI also see that this issue speaks of version 2.2.0 of compass. While that may work, I used version 2.1.0, so your mileage will vary.
54TYPO

first line says:
dwmj% pax-create-bundle -p dwmj.domain -n domain \\
-g com.dudewheresmyjar -v 1.0.0-SNAPSHOTs
but later on this bundle is referenced as 1.0.0-SNAPSHOT - that is without the trailing ‘s’

2010-06-10Corrected for 2nd printing.
95TYPO

Section 5.3, 1st paragraph, 4th line: “.. to look search for JAR files ..” should either be “to look for” or “to search for”

2010-06-10Fixed for 2nd printing
166TYPO

Same as #39847 (for PDF) Bundle IDs are referenced as 32 and 33 when they are listed as 35 and 36 respectively.

2010-06-10Fixed for 2nd printing.
192TYPO

index-context.xml has the “” tag in bold

2010-06-10Fixed for 2nd printing.
193TYPO

index-osgi.xml has the “” tag in bold

2010-06-10Fixed for 2nd printing
83ERROR

I am following dude, where is my jar! example. After importing pax-logging-api and pax-logging-service bundles, I was expecting to see the errors related to Lucene jar. But, I am getting errors for pax-logging bundles. Here are the errors:

osgi> ss

Framework is launched.

id State Bundle
0 ACTIVE org.eclipse.osgi_3.5.0.v20090520
1 INSTALLED org.ops4j.pax.logging.pax-logging-api_1.3.0
2 INSTALLED org.ops4j.pax.logging.pax-logging-service_1.3.0
3 ACTIVE com.dwmj.domain_1.0.0.SNAPSHOTs
4 ACTIVE org.compass-project.compass_2.2.0
5 RESOLVED com.dwmj.index_1.0.0.SNAPSHOT

osgi> diag 1
initial@reference:file:../bundles/org.ops4j.pax.logging.pax-logging-api_1.3.0.jar/ [1]
Direct constraints which are unresolved:
Missing imported package org.apache.avalon.framework.logger_4.3.0.
Missing imported package org.apache.commons.logging_1.1.1.
Missing imported package org.apache.commons.logging.impl_1.1.1.
Missing imported package org.apache.juli.logging_1.0.0.
Missing imported package org.apache.log_0.0.0.
Missing imported package org.apache.log4j_1.2.15.
Missing imported package org.apache.log4j.spi_1.2.15.
Missing imported package org.apache.log4j.xml_1.2.15.
Missing imported package org.knopflerfish.service.log_1.1.0.
Missing imported package org.ops4j.pax.logging_[0.9.5,2.0.0).
Missing imported package org.ops4j.pax.logging.avalon_[0.9.5,2.0.0).
Missing imported package org.osgi.service.event_[1.0.0,2.0.0).
Missing imported package org.osgi.service.log_[1.3.0,2.0.0).
Missing imported package org.slf4j_1.5.6.
Missing imported package org.slf4j.helpers_1.5.6.
Missing imported package org.slf4j.spi_1.5.6.

osgi> diag 2
initial@reference:file:../bundles/org.ops4j.pax.logging.pax-logging-service_1.3.0.jar/ [2]
Direct constraints which are unresolved:
Missing imported package com.sun.jdmk.comm_0.0.0.
Missing imported package javax.jms_0.0.0.
Missing imported package javax.mail_0.0.0.
Missing imported package javax.mail.internet_0.0.0.
Missing imported package org.knopflerfish.service.log_[1.1.0,2.0.0).
Missing imported package org.ops4j.pax.logging_[0.9.5,2.0.0).
Missing imported package org.ops4j.pax.logging.spi_1.3.0.
Missing imported package org.osgi.service.cm_[1.0.0,2.0.0).
Missing imported package org.osgi.service.event_[1.0.0,2.0.0).
Missing imported package org.osgi.service.log_[1.3.0,2.0.0).
Leaf constraints in the dependency chain which are unresolved:
initial@reference:file:../bundles/org.ops4j.pax.logging.pax-logging-api_1.3.0.jar/ [1]
Missing imported package org.apache.log_0.0.0.
initial@reference:file:../bundles/org.ops4j.pax.logging.pax-logging-api_1.3.0.jar/ [1]
Missing imported package org.osgi.service.event_[1.0.0,2.0.0).

Can you please suggest what am I missing? I am not able to proceed further because of these errors. Do I need to wrap these pax-logging bundles and set resolution:=optional?

Thanks
Shalandra

2010-06-12An earlier version of Pax Runner started the OSGi runtime along with the OSGi compendium bundle in place. But the newest Pax Runner (which was released *after* the book was printed) does not install the compendium bundle, which the Pax Logging bundles depend upon. \n \nTo fix the problem, you must simply install the compendium bundle with: \n \npax-import-bundle -g org.osgi -a org.osgi.compendium -v 4.2.0 \n \nI've noted this change and will request that it be added to the 2nd printing.
104ERROR

The actual code for Maven Spider, from a synchronized threading perspective, is potentially broken.

public void run() {
try {
active = true;
crawl(repositoryUrl);
}
catch (Exception e) {
// blah…
}
}

public void stop() {
active = false;
}

private void crawl(final String baseUrl) throws Exception {
if (!active) return;
// blah

The problem with this code is that in the absence of synchronization there is no guarantee as to when, if ever, the stoppable thread will “see” a change in teh value of the “active” variable made by another thread - which is exactly what SpiderActivator tries to do:

public void stop(BundleContext context) throws Exception {
for (int i = 0; i < spiders.length; i) {
spiders[i].stop();

Using properly synchronized cooperative thread termination would use something like (pseudo code):

public synchronized void requestStop() {
active = false;
}

public synchronized boolean isActive() {
return active;
}

private void crawl(final String baseUrl) throws Exception {
if (!isActive()) return;
// blah

fixed by simply synchronizing all access to the active field.

2010-06-13Fixed as I work through stuff for a 2nd printing. This actual code doesn't appear in the book, but I will make a new download available with this fix in place.
1ERROR

The examples do not build out of the box. The root pom.xml along with the hello modules all have various issues, most of which have been reported. Please fix this, it reflects poorly on the Book.

2010-06-13A few things have changed since the examples were originally produced, such as some dependencies being removing from repositories and Pax Runner not starting the OSGi runtimes with the compendium bundle by default. The technology and tools moved while the printed book and published samples remained static. \n \nI will be providing a new zip file with current examples. \n
1SUGGEST

Please update the book to include references to the source for the book. While it does mention it with “Download hello/src/main/…” What? seriously. How about the Reference section mention the book source and then any mention of download should not be a path, but rather the url. The path should be used in something like “open this file”…

2010-06-12Addressed in 2nd printing
24ERROR

The MANIFEST.MF file for the HelloWorld bundle should begin with:

Manifest-Version: 1.0

When using Eclipse and exporting the HelloWord class as a Jar file with a specified manifest, Eclipse will ignore the manifest and use an empty one if the manifest does not specify the Manifest-Version header.

Not sure if the manifest is legal or not without this header, but even if it is legal without it, good practice is to include this header.

2010-06-10I do not believe that line is strictly required, but...if it makes things easier on Eclipse export, then I'll add it so that there's no confusion. \n \nCorrected for 2nd printing.
55ERROR

JarFile.java is missing import statements. The file contents should be:

package dwmj.domain

import java.util.Set;

public class JarFile {
…

2010-06-12Addressed for 2nd printing.
56ERROR

JarFile.java is missing imports statements (again). Should be:

package dwmj.domain;

import java.util.Set;
import org.compass.annotations.*;

@Searchable(alias = “jar”)
public class JarFile {
…

2010-06-12Addressed for 2nd printing.
59ERROR

The book describes how to use compass as a dependency, and then goes on to explain how to use PAX to add a repository. Adding the Compass project repository is unnecessary, because these artifacts are in the central repo. Furthermore, it’s generally not a good idea to put repositories in a project’s POM - this should be configured in settings.xml (for example, my settings.xml points all repos to my company’s Nexus installation).

While this does serve as an example of how to use pax-add-repository, I suggest removing it entirely (from “At the same time …” to the end of the page).

2010-06-12When the chapter was originally written, the Compass dependencies were not in the central repo. Now they are. So, I recommended that this entire bit be removed for the 2nd printing. However, since this is a sizable change, there's no certainty that it will be removed. The best I could do is recommend it.
54ERROR

Regarding the osgi.bnd file generated by pax-create-bundle, the book states “For the domain bundle, this file starts out empty.” This is incorrect - the file starts out with the Bundle-Activator set to the example that was generated.

On the following page the book says to delete the example Java files. It should also say to remove the contents of this file.

2010-06-12Addressed for 2nd printing
112OK

The Spring version has changed in the maven repository. 1.2.0 is not more accessible. Changing 1.2.0 by 1.2.6 works fine.
Maybe this has already be fixed.

2010-08-15I'm not sure why you had trouble with 1.2.0...I just tried that for myself and it worked fine. 1.2.6 is not even a valid Spring-DM version (1.2.1 is the latest GA version for Spring-DM). \n
118OK

Both ss and bundle outputs are different.
Especially there is no entry under registered service …
No sure it is a technical error.

3 ACTIVE org.ops4j.pax.logging.pax-logging-api_1.3.0
4 ACTIVE org.springframework.transaction_2.5.6
5 ACTIVE com.springsource.slf4j.org.apache.commons.logging_1.5.0
6 ACTIVE com.springsource.slf4j.api_1.5.0
Fragments=7
7 RESOLVED com.springsource.slf4j.log4j_1.5.0
Master=6
8 ACTIVE com.springsource.org.aopalliance_1.0.0
9 ACTIVE com.springsource.edu.emory.mathcs.backport_3.1.0
10 ACTIVE com.springsource.org.apache.log4j_1.2.15
11 ACTIVE com.springsource.javax.jms_1.1.0
12 ACTIVE com.springsource.javax.transaction_1.1.0
13 ACTIVE com.dudewheresmyjar.domain_1.0.0.SNAPSHOT
14 ACTIVE org.compass-project.compass_2.2.0
15 ACTIVE com.dudewheresmyjar.index_1.0.0.SNAPSHOT
16 ACTIVE com.dudewheresmyjar.spider_1.0.0.SNAPSHOT

osgi> bundle 15
com.dudewheresmyjar.index_1.0.0.SNAPSHOT [15]
Id=15, Status=ACTIVE Data Root=E:\\workspace\\java\\osgi\\dwmj\\runner\\equinox\\org.eclipse.osgi\\bundles\\15\\data
No registered services.
No services in use.
Exported packages
dwmj.index; version=“1.0.0.SNAPSHOT”[exported]
Imported packages
dwmj.domain; version=“1.0.0.SNAPSHOT”<com.dudewheresmyjar.domain_1.0.0.SNAPSHOT [13]>
org.apache.lucene; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.apache.lucene.document; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.apache.lucene.index; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.apache.lucene.queryParser; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.apache.lucene.search; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.apache.lucene.store; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.apache.lucene.util; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.cache.first; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.config; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.config.binding.metadata; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.engine.naming; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.executor.concurrent; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.json.impl.converter; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.lucene.engine.analyzer; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.lucene.engine.optimizer; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.compass.core.transaction; version=“0.0.0”<org.compass-project.compass_2.2.0 [14]>
org.osgi.framework; version=“1.5.0”<org.eclipse.osgi_3.5.1.R35x_v20090827 [0]>
No fragment bundles
Named class space
com.dudewheresmyjar.index; bundle-version=“1.0.0.SNAPSHOT”[provided]
No required bundles

2010-08-15If you see no published services under the index service bundle, then it's clear that something went wrong. That bundle should publish a service. \n \nI can't say for certain what went wrong...but if you "ss" commend lists a different set of bundles, that's probably it. In fact, looking at the list of bundles you have installed, I don't see the Spring-DM bundles...so that'd certainly explain why your service isn't published. Now, the question is...why were the Spring-DM bundles installed for you? \n \nI can't say, as I don't know what steps you followed up to this point. But page 112 shows what you need to do to get the Spring-DM bundles installed. I also see that you tried version 1.2.0 and had trouble, so you switched to 1.2.6. I'm not so sure that's the right answer. I just tried it with 1.2.0 and it worked for me. 1.2.6 is not even a valid Spring-DM version number (the latest GA version is 1.2.1).
40TYPO

The output examples from Equinox’s console are not consistent with having followed the book’s examples. The com.pragprog.HelloWorld_1.0.0 is in a RESOLVED state. This is all but trivial—but maybe a quick walk through of the uninstallation console command after executing the Hello World would have removed the issue for later examples?

osgi> ss

Framework is launched.

id\tState Bundle
0\tACTIVE org.eclipse.osgi_3.6.1.R36x_v20100806
1\tRESOLVED com.pragprog.HelloWorld_1.0.0
2\tACTIVE com.pragprog.HelloWorldService_1.0.0

osgi>

78ERROR

I am following the book and everything works until I get to Page 78. I am getting the same error, as on Page 78 - Problem resolving project, when I try to import either compass or domain. My head is nearly exploding!!! And if I run pax-provision, without the coding in dwmj.index everything works as expected. Please help!!!

245TYPO

nice

Categories: