On 5/4/10 10:25 AM, Richard S. Hall wrote:
> On 5/4/10 10:19, Jackson, Bruce wrote:
>> Yes, that's easier said than done!
>> I seem to remember that the was no single place where you could set the
>> compiler version to use for building Felix. Is that correct?
>>    
> 
> You should just be able to edit the Event Admin pom.xml file to include
> this in its plugins section, no?
> 
> -> richard
You can actually do it from the command line:

mvn package -Dmaven.compiler.compilerVersion=1.4
-Dmaven.compiler.executable=[path to javac] -Dmaven.compiler.fork=true
-Dmaven.compiler.verbose=true

See
http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#compilerVersion

Justin


> 
>>
>> On 04/05/2010 12:54, "Karl Pauls"<karlpa...@gmail.com>  wrote:
>>
>>   
>>> And like before, make sure you don't have other messages like "class
>>> resolved by unexpected dex" in the log ...
>>>
>>> regards,
>>>
>>> Karl
>>>
>>> On Tue, May 4, 2010 at 1:33 PM, Karl Pauls<karlpa...@gmail.com>  wrote:
>>>     
>>>> Well, this should be easy enough to test, right? Just re-compile the
>>>> eventadmin and see whether that fixes the issue or not - if it does,
>>>> that would be really useful to know :-)
>>>>
>>>> regards,
>>>>
>>>> Karl
>>>>
>>>> On Tue, May 4, 2010 at 1:23 PM, Jackson, Bruce<bru...@qualcomm.com> 
>>>> wrote:
>>>>       
>>>>> Hi All
>>>>>
>>>>> Some time back, we had a discussion about the default compiler
>>>>> version used
>>>>> to build Felix, and whether this was compatible with the
>>>>> requirements of
>>>>> Android.
>>>>>
>>>>> I noted that when you dx the bundle jars produced by the regular Felix
>>>>> build, you get a whole collection of warning of the the form:
>>>>>
>>>>> $ dx --dex --output=classes.dex org.apache.felix.eventadmin-1.2.2.jar
>>>>> 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.)
>>>>>
>>>>> ...for example. We debated this, and decided that these were just
>>>>> warning
>>>>> and not a real problem. However, now that I have a working Felix
>>>>> framework
>>>>> on Android, I find that when I load and start the EventAdmin
>>>>> bundle, I find
>>>>> that it fails to start with the following message in the log:
>>>>>
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):
>>>>> org.osgi.framework.BundleException: Activator start error in bundle
>>>>> org.apache.felix.eventadmin [5].
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.framework.Felix.activateBundle(Felix.java:1807)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.framework.Felix.startBundle(Felix.java:1682)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:905)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:892)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> com.skifta.android.client.SkiftaService.startOSGi(SkiftaService.java:437)
>>>>>
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> com.skifta.android.client.SkiftaService.init(SkiftaService.java:174)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> com.skifta.android.client.SkiftaService.onCreate(SkiftaService.java:166)
>>>>>
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> android.app.ActivityThread.handleCreateService(ActivityThread.java:2894)
>>>>>
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> android.app.ActivityThread.access$3200(ActivityThread.java:126)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1986)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> android.os.Handler.dispatchMessage(Handler.java:99)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> android.os.Looper.loop(Looper.java:123)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> android.app.ActivityThread.main(ActivityThread.java:4595)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> java.lang.reflect.Method.invokeNative(Native Method)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> java.lang.reflect.Method.invoke(Method.java:521)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:8
>>>>>
>>>>> 60)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> dalvik.system.NativeStart.main(Native Method)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682): Caused by:
>>>>> java.lang.NoClassDefFoundError:
>>>>> org.apache.felix.eventadmin.impl.handler.BlacklistingHandlerTasks$1
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.eventadmin.impl.handler.BlacklistingHandlerTasks.<init>(Bla
>>>>>
>>>>> cklistingHandlerTasks.java:223)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.eventadmin.impl.Configuration.start(Configuration.java:293)
>>>>>
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>>
>>>>>          
>> org.apache.felix.eventadmin.impl.Configuration.<init>(Configuration.java:152>>>
>>
>> )
>>   
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.eventadmin.impl.Activator.start(Activator.java:65)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.jav
>>>>>
>>>>> a:661)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     at
>>>>> org.apache.felix.framework.Felix.activateBundle(Felix.java:1760)
>>>>> 05-04 12:01:26.853: WARN/System.err(4682):     ... 17 more
>>>>>
>>>>> Looking at the class in question (BlacklistingHandlerTasks:223) I
>>>>> see that
>>>>> this is a use of an anonymous inner class:
>>>>>
>>>>> private final EventHandler m_nullEventHandler = new EventHandler()
>>>>>     {
>>>>>         /**
>>>>>          * This is a null object that is supposed to do nothing at
>>>>> this
>>>>> point.
>>>>>          *
>>>>>          * @param event an event that is not used
>>>>>          */
>>>>>        public void handleEvent(final Event event)
>>>>>         {
>>>>>             // This is a null object that is supposed to do nothing
>>>>> at this
>>>>>            // point. This is used once a EventHandler is requested
>>>>> for a
>>>>>            // servicereference that is either stale (i.e.,
>>>>> unregistered) or
>>>>>            // blacklisted.
>>>>>        }
>>>>>     };
>>>>>
>>>>> Is this an example of the problem we were discussing a couple of
>>>>> weeks ago,
>>>>> where dx canĀ¹t produce correct copde because the compiler version
>>>>> that was
>>>>> used to create the bundle was pre-1.5 do you think?
>>>>>
>>>>> Thanks
>>>>>
>>>>> Bruce
>>>>>
>>>>>          
>>>>
>>>>
>>>> -- 
>>>> Karl Pauls
>>>> karlpa...@gmail.com
>>>>
>>>>        
>>>
>>>      
>>    

Reply via email to