As said by Marcel, you need to also deploy the OSGi compendium On Android, I use: http://repo2.maven.org/maven2/org/apache/felix/org.osgi.compendium/1.4.0/org.osgi.compendium-1.4.0.jar
Clement On 15.02.2010, at 16:52, Jackson, Bruce wrote: > What other bundles do you have installed when running this? > I've added the following: > > -> ps > START LEVEL 1 > ID State Level Name > [ 0] [Active ] [ 0] System Bundle (2.0.3) > [ 1] [Active ] [ 1] Apache Felix Shell Service (1.0.2) > [ 2] [Active ] [ 1] Apache Felix Shell TUI (1.0.2) > [ 4] [Active ] [ 1] Apache Felix Log Service (1.0.0) > [ 5] [Active ] [ 1] Apache Felix Configuration Admin Service (1.2.4) > [ 7] [Installed ] [ 1] HTTP Service (1.0.0) > [ 9] [Active ] [ 1] Servlet API Bundle (2.5.0.v200806031605) > > but I still find that the HTTP service 1.0 complains that: > > org.osgi.framework.BundleException: Unresolved constraint in bundle > org.apache.felix.http.jetty [7]: package; > (&(package=org.osgi.service.http)(version>=1.2.0)) > > when I start the http service? > > On 15/02/2010 13:14, "Clement Escoffier" <[email protected]> wrote: > >> >> On 15.02.2010, at 13:31, Jackson, Bruce wrote: >> >>> Clement, when you say 'I use the HTTP Service 1.0.0. Could you try with that >>> one ?' which one do you mean? >> >> I use a older version of the HTTP service implementation (the version 1.0.0 >> which use an older version of Jetty). >> http://archive.apache.org/dist/felix/org.apache.felix.http.jetty-1.0.0-project >> .zip >> http://archive.apache.org/dist/felix/org.apache.felix.http.jetty-1.0.0.jar >> >> Try with this bundle. But for sure, use on of the latest Felix framework. We >> did a couple of fixes to support android correctly. >> >> Regards, >> >> Clement >> >> >> >> >>> >>> Thanks >>> Bruce >>> >>> >>> On 12/02/2010 18:57, "Clement Escoffier" <[email protected]> >>> wrote: >>> >>>> >>>> On 12.02.2010, at 17:27, Jackson, Bruce wrote: >>>> >>>>> I've got the Felix framework installed on my Nexus. If I download the >>>>> org.apache.felix.http.jetty-2.0.4.jar bundle from the Felix site, dx it >>>>> (which generates piles of warnings) push it to the phone, start Felix and >>>>> then install the jetty bundle, Felix just hangs: >>>>> >>>>> -> ps >>>>> START LEVEL 1 >>>>> ID State Level Name >>>>> [ 0] [Active ] [ 0] System Bundle (1.4.0) >>>>> [ 1] [Active ] [ 1] Apache Felix Shell Service (1.0.2) >>>>> [ 2] [Active ] [ 1] Apache Felix Shell TUI (1.0.2) >>>>> [ 3] [Active ] [ 1] JDOM (1.0.0.v200803070505) >>>>> -> install file:bundle/org.apache.felix.http.jetty-2.0.4.jar >>>>> Feb 12, 2010 4:15:03 PM java.io.BufferedWriter <init> >>>>> INFO: Default buffer size used in BufferedWriter constructor. It would be >>>>> better to be explicit if an 8k-char buffer is required. >>>>> Feb 12, 2010 4:15:03 PM java.io.BufferedWriter <init> >>>>> INFO: Default buffer size used in BufferedWriter constructor. It would be >>>>> better to be explicit if an 8k-char buffer is required. >>>>> Feb 12, 2010 4:15:03 PM java.io.BufferedWriter <init> >>>>> INFO: Default buffer size used in BufferedWriter constructor. It would be >>>>> better to be explicit if an 8k-char buffer is required. >>>>> Feb 12, 2010 4:15:04 PM java.io.BufferedWriter <init> >>>>> INFO: Default buffer size used in BufferedWriter constructor. It would be >>>>> better to be explicit if an 8k-char buffer is required. >>>>> Feb 12, 2010 4:15:04 PM java.io.BufferedWriter <init> >>>>> INFO: Default buffer size used in BufferedWriter constructor. It would be >>>>> better to be explicit if an 8k-char buffer is required. >>>>> Feb 12, 2010 4:15:04 PM java.io.BufferedWriter <init> >>>>> INFO: Default buffer size used in BufferedWriter constructor. It would be >>>>> better to be explicit if an 8k-char buffer is required. >>>>> Bundle ID: 5 >>>>> -> ps >>>>> START LEVEL 1 >>>>> ID State Level Name >>>>> [ 0] [Active ] [ 0] System Bundle (1.4.0) >>>>> [ 1] [Active ] [ 1] Apache Felix Shell Service (1.0.2) >>>>> [ 2] [Active ] [ 1] Apache Felix Shell TUI (1.0.2) >>>>> [ 3] [Active ] [ 1] JDOM (1.0.0.v200803070505) >>>>> [ 5] [Installed ] [ 1] Apache Felix Http Jetty (2.0.4) >>>>> -> start 5 >>>>> Feb 12, 2010 4:15:08 PM java.io.BufferedWriter <init> >>>>> INFO: Default buffer size used in BufferedWriter constructor. It would be >>>>> better to be explicit if an 8k-char buffer is required. >>>>> DEBUG: WIRE: 5.0 -> javax.xml.parsers -> 0 >>>>> DEBUG: WIRE: 5.0 -> org.xml.sax -> 0 >>>>> DEBUG: WIRE: 5.0 -> javax.servlet.resources -> 5.0 >>>>> DEBUG: WIRE: 5.0 -> javax.servlet -> 5.0 >>>>> DEBUG: WIRE: 5.0 -> javax.security.cert -> 0 >>>>> DEBUG: WIRE: 5.0 -> org.osgi.util.tracker -> 0 >>>>> DEBUG: WIRE: 5.0 -> org.osgi.framework -> 0 >>>>> DEBUG: WIRE: 5.0 -> javax.servlet.jsp.resources -> 5.0 >>>>> DEBUG: WIRE: 5.0 -> javax.net.ssl -> 0 >>>>> DEBUG: WIRE: 5.0 -> org.xml.sax.helpers -> 0 >>>>> DEBUG: WIRE: 5.0 -> org.osgi.service.http -> 5.0 >>>>> DEBUG: WIRE: 5.0 -> org.apache.felix.http.api -> 5.0 >>>>> DEBUG: WIRE: 5.0 -> javax.servlet.http -> 5.0 >>>>> >>>>> At this point, I have to CTRL-C to kill Felix. The same thing happened >>>>> before >>>>> I compiled JDOM with 1.5+. I might be missing something, but my >>>>> assumption, >>>>> perhaps wrong, was that it was the compiler version that was causing this >>>>> behavior? >>>> >>>> Hum interesting, >>>> >>>> Potentially this is very slow, or there is an issue with the NIO. >>>> I use the HTTP Service 1.0.0. Could you try with that one ? >>>> >>>> >>>> Clement >>>> >>>>> >>>>> Thanks >>>>> >>>>> Bruce >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On 12/02/2010 15:51, "Clement Escoffier" <[email protected]> >>>>> wrote: >>>>> >>>>>> >>>>>> On 12.02.2010, at 16:45, Jackson, Bruce wrote: >>>>>> >>>>>>> Whenever you dx a bundle which has been built with a pre-1.5 compiler >>>>>>> you >>>>>>> will usually get a pile of: >>>>>>> >>>>>>> warning: Ignoring InnerClasses attribute for an anonymous inner class >>>>>>> that >>>>>>> doesn't come with an associated EnclosingMethod attribute. (This class >>>>>>> was >>>>>>> probably produced by a broken compiler.) >>>>>>> >>>>>>> ...messages (assuming that you do use inner classes in the bundle). >>>>>>> These >>>>>>> are generated because the bundle was compiled with a pre-1.5 compiler. >>>>>>> With >>>>>>> something like the org.jdom bundle, the bundle will not work correctly >>>>>>> if >>>>>>> it >>>>>>> was compiled with a pre-1.5 compiler and then dx-ed, while using a >>>>>>> post-1.5 >>>>>>> it does. >>>>>>> >>>>>>> It may a be a broad assessment of the situation, but I took this >>>>>>> experience >>>>>>> to indicate that it was required to build bundles with a post-1.5 >>>>>>> compiler. >>>>>>> Indeed if you look around the web, you'll see this warning mentioned in >>>>>>> relation to a number of problems people are having with getting apps >>>>>>> running >>>>>>> on Android, when using JARs that were compiled pre-1.5. >>>>>> >>>>>> Well, you got less messages if you compile with 1.5+, but that's does say >>>>>> that >>>>>> a bundle will not work. >>>>>> When dexifying iPOJO, I have a couple of message too, but the complete >>>>>> iPOJO >>>>>> test suite works on Android (except some features using on the fly >>>>>> bytecode >>>>>> generation). >>>>>> >>>>>> Regards, >>>>>> >>>>>> Clement >>>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> Thanks >>>>>>> >>>>>>> Bruce >>>>>>> >>>>>>> On 12/02/2010 15:25, "Karl Pauls" <[email protected]> wrote: >>>>>>> >>>>>>>> On Fri, Feb 12, 2010 at 4:22 PM, Jackson, Bruce <[email protected]> >>>>>>>> wrote: >>>>>>>>> I'm taking here about the ad-on bundles (like http, for example) >>>>>>>>> rather >>>>>>>>> than >>>>>>>>> the framework. The dx tool needs to have classes that were compiled >>>>>>>>> with >>>>>>>>> a >>>>>>>>> "new" compiler (i.e. greater than 1.5). >>>>>>>> >>>>>>>> Since when? Always worked for me. Again, the framework itself is >>>>>>>> compiled for 1.3... >>>>>>>> >>>>>>>> regards, >>>>>>>> >>>>>>>> Karl >>>>>>>> >>>>>>>>> Thanks >>>>>>>>> >>>>>>>>> Bruce >>>>>>>>> >>>>>>>>> >>>>>>>>> On 12/02/2010 13:33, "Karl Pauls" <[email protected]> wrote: >>>>>>>>> >>>>>>>>>> Why would you need 1.5 to be able to dex the bundle (the framework >>>>>>>>>> itself is build for 1.3 btw.)? >>>>>>>>>> >>>>>>>>>> regards, >>>>>>>>>> >>>>>>>>>> Karl >>>>>>>>>> >>>>>>>>>> On Fri, Feb 12, 2010 at 1:15 PM, Jackson, Bruce <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>>> Hi Pablo >>>>>>>>>>> >>>>>>>>>>> See the attached code. The biggest problem I've encountered is that >>>>>>>>>>> the >>>>>>>>>>> Felix distribution is a huge pain to build under JDK 1.5, and >>>>>>>>>>> therefore >>>>>>>>>>> to >>>>>>>>>>> be able to use some of the bundles (for example the http service) >>>>>>>>>>> that >>>>>>>>>>> are >>>>>>>>>>> part of the distribution. Its not a simple job of just changing a >>>>>>>>>>> couple >>>>>>>>>>> of >>>>>>>>>>> entries in POM files: some components download pre-built JAR files >>>>>>>>>>> from >>>>>>>>>>> the >>>>>>>>>>> web and explode these, thereby having classes built under 1.4 which >>>>>>>>>>> will >>>>>>>>>>> not >>>>>>>>>>> work when you dexify the bundles. >>>>>>>>>>> >>>>>>>>>>> This is something that would be great to see some work done on by >>>>>>>>>>> the >>>>>>>>>>> Felix >>>>>>>>>>> community, because while its true that the basic Felix core does and >>>>>>>>>>> will >>>>>>>>>>> support Android, most of the add-on bundles wont. >>>>>>>>>>> >>>>>>>>>>> For my part, the ideal solution would be to see the whole framework >>>>>>>>>>> be >>>>>>>>>>> based >>>>>>>>>>> on JDK 1.5 and not 1.4. >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> >>>>>>>>>>> Bruce >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On 12/02/2010 11:32, "pablomj" <[email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Hi Bruce, I am trying the same, but I don't have the solution yet. >>>>>>>>>>>> Do you have some advance? >>>>>>>>>>>> Salutations, thanks. >>>>>>>>>>>> Pablo. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Jackson, Bruce wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> The Felix site has a useful section on getting things going on >>>>>>>>>>>>> Android >>>>>>>> ( >>>>>>>>>>>>> http://felix.apache.org/site/apache-felix-and-google-android.html) >>>>>>>>>>>>> but >>>>>>>>>>>>> isn't >>>>>>>>>>>>> so clear about embedding the framework into an Android app" >>>>>>>>>>>>> >>>>>>>>>>>>> "Apache Felix can also be integrated with an Android application. >>>>>>>>>>>>> To >>>>>>>>>>>>> achieve >>>>>>>>>>>>> this, you need to embed Felix into onCreate() method of your >>>>>>>>>>>>> Activity >>>>>>>>>>>>> class >>>>>>>>>>>>> (see Android docs for more details on how to use an Activity) and >>>>>>>>>>>>> process >>>>>>>>>>>>> your bundles as shown above." >>>>>>>>>>>>> >>>>>>>>>>>>> Has anyone got an example of how you do this? I understand how to >>>>>>>>>>>>> write >>>>>>>>>>>>> the >>>>>>>>>>>>> Android app, and I get the point being made here. What I need to >>>>>>>>>>>>> understand >>>>>>>>>>>>> is: >>>>>>>>>>>>> >>>>>>>>>>>>> 1. How do you launch the Felix framework. What do I need to >>>>>>>>>>>>> instantiate? >>>>>>>>>>>>> 2. Where does the framework get its boot configuration (i.e. what >>>>>>>>>>>>> bundles >>>>>>>>>>>>> to >>>>>>>>>>>>> load, run levels, environment variables, etc) from in this case? >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>> >>> >>
