| Fabian, 
 On 2/21/2011 4:37 AM, Fabian Meyer wrote:
 
      
      
      
      
      Hi,
 is it possible to use primitive data types as method parameter
          in ECF?
 Currently...for remote services and the ECF generic provider...no.
 
 Since 1.4 (or some earlier version...I can't remember exactly) Java
    does autoboxing of primitive data types, and this complicates things
    tremendously for the remote services use case.
 
 Its possible that autoboxing could be worked around...contributions
    welcomed as always.
 
 Scott
 
 
 
 
 
      It seems to me that the deserialization of the
          shared message objects doesn't work correctly. A
          java.lang.NoSuchMethodException is always thrown, because ECF
          is trying to find a method with "class java.lang.Integer" as
          parameter data type instead of the primitive int data type. I
          wrote a little example application:
 Interface:
 public interface Test {
 void doSomething(int pBla);
 }
 
 Server:
 public void start(BundleContext bundleContext) throws
          Exception {
 Activator.context = bundleContext;
 Properties props = new Properties();
 props.put("service.exported.interfaces", "*");
 context.registerService(Test.class.getName(), new
          Test() {
 
 @Override
 public void doSomething(int pBla) {
 
 }
 }, props);
 }
 
 Client:
 Test t = (Test) getContext().getService(reference);
 t.doSomething(42);
 
 Throws:
 java.lang.NoSuchMethodException: No such method:
          doSomething([class java.lang.Integer])
 at
org.eclipse.ecf.core.sharedobject.SharedObjectMsg.doInvoke(SharedObjectMsg.java:310)
 at
org.eclipse.ecf.core.sharedobject.SharedObjectMsg.invoke(SharedObjectMsg.java:290)
 at
org.eclipse.ecf.provider.remoteservice.generic.RemoteServiceRegistrationImpl.callService(RemoteServiceRegistrationImpl.java:342)
 at
org.eclipse.ecf.provider.remoteservice.generic.RegistrySharedObject$11.run(RegistrySharedObject.java:1423)
 at
org.eclipse.equinox.concurrent.future.SingleOperationFuture$1.run(SingleOperationFuture.java:96)
 at
          org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
 at
org.eclipse.equinox.concurrent.future.SingleOperationFuture.runWithProgress(SingleOperationFuture.java:89)
 at
          org.eclipse.ecf.core.jobs.JobsExecutor.safeRun(JobsExecutor.java:52)
 at
          org.eclipse.ecf.core.jobs.JobsExecutor$1.run(JobsExecutor.java:79)
 at
          org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
 
 Configuration:
 JDK 1.6_20
 ECF 1.4 with patch for Eclipse 3.5, 3.6
 
 
 
 
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev 
 |