package org.kevoree.library.ehcache; import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import org.kevoree.annotation.*; import org.kevoree.framework.AbstractComponentType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; /** * Created by jed * User: jedartois@gmail.com * Date: 11/05/12 * Time: 17:19 */ @Library(name = "JavaSE") @ComponentType @Requires({ @RequiredPort(name = "ehCacheService", type = PortType.SERVICE, className = IehcacheService.class, optional = true) }) public class TesterMetier2 extends AbstractComponentType implements Runnable{ private Logger logger = LoggerFactory.getLogger(TesterMetier.class); private boolean alive=true; private Thread current = new Thread(this); @Start public void start() { current.start(); alive =true; } @Stop public void stop() { alive =false; } @Update public void update() { try { current.start(); } catch (Exception e) { // ignore } } @Override public void run() { while (alive) { try { CacheManager c = this.getPortByName("ehCacheService", IehcacheService.class).getCacheManger(); Cache myCache =c.getCache("jed"); myCache.addPropertyChangeListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { System.out.print(evt.getPropertyName()+" old="+evt.getOldValue()+" new="+evt.getNewValue()); } }); } catch (Exception e) { logger.error("error"); } try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } }