Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
JFace Data Binding/PojoBindable/PojoBindableSVN
Pojo Bindable SVN
For the last version of Pojo Bindable you can (for the moment) get it from the SVN on Dynaresume project. You can find the whole Pojo bindable project at http://dynaresume.googlecode.com/svn/trunk/JFace-Pojo-Bindable/ :
- dependencies. This folder contains the ASM bundles required by Pojo Bindable :
- com.springsource.org.objectweb.asm : ASM bundle "org.objectweb.asm" version of 3.2.0 getted from SpringSource Enterprise Bundle Repository.
- com.springsource.org.objectweb.asm.commons : ASM Commons bundle "org.objectweb.asm" version of 3.2.0 getted from SpringSource Enterprise Bundle Repository.
- com.springsource.org.objectweb.asm.tree : ASM Tree bundle "org.objectweb.asm" version of 3.2.0 getted from SpringSource Enterprise Bundle Repository. This bundle is not required for Pojo Bindable but just required for com.springsource.org.objectweb.asm.commons bundle.
- org.eclipse.core.databinding.pojo.bindable: Pojo Bindable bundle project.
- examples. This folder contains Java Agent/OSGi examples with Pojo Bindable.
- osgi-equinox. This folder contains OSGi bundles required to use Pojo Bindable into OSGi context.
- tests. This folder contains tests with pojo Bindable.
Pojo Bindable into OSGi context
You can find a basic sample with Pojo bindable into org.eclipse.core.examples.databinding.pojo.bindable.equinox bundle. This bundle has an Activator which create a basic PojoPerson coming from another bundle org.eclipse.core.examples.databinding.pojo.bindable.model:
package org.eclipse.core.examples.databinding.pojo.bindable.model; public class PojoPerson { String name = "HelloWorld"; public String getName() { return name; } public void setName(String name) { this.name = name; } }
and add it a listener :
public class Activator implements BundleActivator { /* * (non-Javadoc) * * @see * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext * ) */ public void start(BundleContext context) throws Exception { // Create Pojo instance PojoPerson person = new PojoPerson(); PropertyChangeListener listener = new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { System.out.println("---------- Property User changed --------"); System.out.println(" PropertyName=" + event.getPropertyName()); System.out.println(" OldValue=" + event.getOldValue()); System.out.println(" NewValue=" + event.getNewValue()); System.out .println("------------------------------------------"); } }; // Add Listener try { Method m = person.getClass().getMethod("addPropertyChangeListener", String.class, PropertyChangeListener.class); m.invoke(person, "name", listener); } catch (Exception e) { e.printStackTrace(); } // Change name property. person.setName("New name"); } ... }
You can notice thate there is no dependencies to Pojo Bindable in this code. When Pojo Bindable is well configured.
Pojo Bindable & EclipseLink
EclipseLink provider Dynamic Weaving Fragment for Equinox into org.eclipse.persistence.jpa.equinox.weaving fragment to transform bytecode.
- Download org.eclipse.persistence.jpa.equinox.weaving
- Download org.eclipse.persistence.jpa.equinox.bindable. This bundle require a OSGi Fragment to configure Bindable properties (packages, debug mode...). You can find an example into fragment org.eclipse.persistence.examples.jpa.equinox.bindable.fragment which contains bindable.properties.