View Javadoc
1 package net.sf.flock.hibernate; 2 3 import java.net.URL; 4 import java.util.Collection; 5 import java.util.List; 6 import java.util.Properties; 7 8 import net.sf.flock.FeedFactoryI; 9 import net.sf.flock.FeedI; 10 import net.sf.flock.FilterI; 11 import net.sf.flock.FlockResourceException; 12 import net.sf.flock.SubscriptionI; 13 import net.sf.flock.SubscriptionInfoI; 14 import net.sf.flock.support.AbstractSubscriptionManager; 15 import net.sf.hibernate.Hibernate; 16 import net.sf.hibernate.HibernateException; 17 import net.sf.hibernate.MappingException; 18 import net.sf.hibernate.Session; 19 import net.sf.hibernate.SessionFactory; 20 import net.sf.hibernate.Transaction; 21 import net.sf.hibernate.cfg.Configuration; 22 import net.sf.hibernate.tool.hbm2ddl.SchemaExport; 23 24 public class HibernateSubscriptionManager extends AbstractSubscriptionManager implements FeedFactoryI { 25 26 private final SessionFactory sessionFactory; 27 28 public HibernateSubscriptionManager(Properties properties) throws FlockResourceException { 29 30 try { 31 32 properties.put("hibernate.query.imports", "net.sf.flock.hibernate"); 33 34 Configuration conf = new Configuration(); 35 conf.addClass( Subscription.class ); 36 37 conf.setProperties(properties); 38 39 new SchemaExport(conf, properties).create(true, true); 40 //new SchemaUpdater(ds, properties).execute(false); 41 42 this.sessionFactory = conf.buildSessionFactory(); 43 } catch (MappingException e) { 44 throw new FlockResourceException(e); 45 } catch (HibernateException e) { 46 throw new FlockResourceException(e); 47 } 48 } 49 50 protected void storeSubscription(Subscription subscription) throws Exception { 51 Session s = this.sessionFactory.openSession(); 52 53 Transaction tx = null; 54 try { 55 tx = s.beginTransaction(); 56 //s.save(subscription.getFeed()); 57 s.saveOrUpdate(subscription); 58 s.flush(); 59 tx.commit(); 60 } catch (Exception ex) { 61 if (tx!=null) tx.rollback(); 62 throw ex; 63 } finally { 64 s.close(); 65 } 66 } 67 68 protected Subscription loadSubscription(URL url) throws Exception { 69 Session s = this.sessionFactory.openSession(); 70 71 try { 72 List l = s.find("from sub in class Subscription where location=?", url, Hibernate.custom(URLType.class)); 73 return (Subscription)l.get(0); 74 } catch (Exception ex) { 75 throw ex; 76 } finally { 77 s.close(); 78 } 79 } 80 81 protected SubscriptionI createSubscription(SubscriptionInfoI subscriptionInfo) throws FlockResourceException { 82 Subscription sub = new Subscription(); 83 sub.setLocation(subscriptionInfo.getLocation()); 84 sub.setMetaData(subscriptionInfo.getMetaData()); 85 sub.setFeed(new Feed(subscriptionInfo.getFeedInfo())); 86 try { 87 storeSubscription(sub); 88 } catch (Exception e) { 89 throw new FlockResourceException(e.getMessage(),e); 90 } 91 return sub; 92 } 93 94 protected FeedFactoryI getFeedFactory() { 95 return this; 96 } 97 98 public FeedI createFeed(SubscriptionInfoI subscriptionInfoI) { 99 return new Feed(subscriptionInfoI.getFeedInfo()); 100 } 101 102 public void unsubscribe(URL url) throws FlockResourceException { 103 } 104 105 public SubscriptionI getSubscription(URL url) throws FlockResourceException { 106 return null; 107 } 108 109 public Collection getSubscriptionInfos() throws FlockResourceException { 110 return null; 111 } 112 113 public void refresh(URL url) throws FlockResourceException { 114 } 115 116 public Collection findItems(FilterI[] filters) throws FlockResourceException { 117 return null; 118 } 119 120 121 }

This page was automatically generated by Maven