The following commit has been merged in the master branch: commit 31ec3bafcdfb8a4d0ca67e1907b30e208add7a7e Author: Miguel Landaeta <mig...@miguel.cc> Date: Mon Mar 19 19:17:59 2012 -0430
Fix #655775, #661694 diff --git a/debian/changelog b/debian/changelog index fb9bc8c..07d3542 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,12 @@ libhibernate-jbosscache-java (3.6.8-2) unstable; urgency=low + * Add a patch with some classes that were provided by 3.3.2.GA. + These classes are reintroduced for compatibility reasons. + (Closes: #655775, #661694). + * Add Build-Depends on libjboss-cache1-java. * Bump Standards-Version to 3.9.3. No changes were required. - -- Miguel Landaeta <mig...@miguel.cc> Sun, 18 Mar 2012 18:55:19 -0430 + -- Miguel Landaeta <mig...@miguel.cc> Mon, 19 Mar 2012 19:51:48 -0430 libhibernate-jbosscache-java (3.6.8-1) unstable; urgency=low diff --git a/debian/classpath b/debian/classpath index 8cd647e..3e1869c 100644 --- a/debian/classpath +++ b/debian/classpath @@ -1 +1 @@ -hibernate-jbosscache.jar /usr/share/java/hibernate3.jar /usr/share/java/slf4j-api.jar /usr/share/java/geronimo-jta-1.0.1b-spec.jar /usr/share/java/jboss-cache3.jar /usr/share/java/jboss-system.jar /usr/share/java/jboss-jmx.jar /usr/share/java/jgroups.jar +hibernate-jbosscache.jar /usr/share/java/hibernate3.jar /usr/share/java/slf4j-api.jar /usr/share/java/geronimo-jta-1.0.1b-spec.jar /usr/share/java/jboss-cache3.jar /usr/share/java/jboss-system.jar /usr/share/java/jboss-jmx.jar /usr/share/java/jgroups.jar /usr/share/java/jboss-cache1.jar diff --git a/debian/control b/debian/control index 42cc103..72a5055 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Priority: optional Build-Depends: debhelper (>= 7.0.50~), default-jdk, javahelper, libhibernate3-java, libslf4j-java, libgeronimo-jta-1.0.1b-spec-java, libjboss-cache3-java, libjboss-system-java, libjboss-jmx-java, - libjgroups-java + libjgroups-java, libjboss-cache1-java Standards-Version: 3.9.3 Vcs-Git: git://git.debian.org/git/pkg-java/libhibernate-jbosscache-java.git Vcs-Browser: http://git.debian.org/?p=pkg-java/libhibernate-jbosscache-java.git diff --git a/debian/patches/compatibility-with-3.3.2.patch b/debian/patches/compatibility-with-3.3.2.patch new file mode 100644 index 0000000..7e37a4f --- /dev/null +++ b/debian/patches/compatibility-with-3.3.2.patch @@ -0,0 +1,372 @@ +Description: Compatibility with 3.3.2.GA + jbossas4 package needs these classes to be built. + If that package gets removed from the archive, this patch can be dropped. +Author: Miguel Landaeta <mig...@miguel.cc> +Bug-Debian: http://bugs.debian.org/655775 +Forwarded: no +Last-Update: 2012-04-19 + +--- /dev/null ++++ libhibernate-jbosscache-java-3.6.8/src/main/java/hibernate/cache/TreeCacheProvider.java +@@ -0,0 +1,131 @@ ++/* ++ * Hibernate, Relational Persistence for Idiomatic Java ++ * ++ * Copyright (c) 2007, Red Hat Middleware LLC or third-party contributors as ++ * indicated by the @author tags or express copyright attribution ++ * statements applied by the authors. All third-party contributions are ++ * distributed under license by Red Hat Middleware LLC. ++ * ++ * This copyrighted material is made available to anyone wishing to use, modify, ++ * copy, or redistribute it subject to the terms and conditions of the GNU ++ * Lesser General Public License, as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this distribution; if not, write to: ++ * Free Software Foundation, Inc. ++ * 51 Franklin Street, Fifth Floor ++ * Boston, MA 02110-1301 USA ++ */ ++package org.hibernate.cache; ++ ++import java.util.Properties; ++import javax.transaction.TransactionManager; ++ ++import org.slf4j.Logger; ++import org.slf4j.LoggerFactory; ++import org.hibernate.transaction.TransactionManagerLookup; ++import org.hibernate.transaction.TransactionManagerLookupFactory; ++import org.hibernate.cfg.Environment; ++import org.jboss.cache.PropertyConfigurator; ++ ++/** ++ * Support for a standalone JBossCache (TreeCache) instance. The JBossCache is configured ++ * via a local config resource. ++ * ++ * @author Gavin King ++ */ ++public class TreeCacheProvider implements CacheProvider { ++ ++ /** ++ * @deprecated use {@link org.hibernate.cfg.Environment#CACHE_PROVIDER_CONFIG} ++ */ ++ public static final String CONFIG_RESOURCE = "hibernate.cache.tree_cache.config"; ++ public static final String DEFAULT_CONFIG = "treecache-optimistic.xml"; ++ ++ private static final Logger log = LoggerFactory.getLogger( TreeCacheProvider.class ); ++ ++ private org.jboss.cache.TreeCache cache; ++ private TransactionManager transactionManager; ++ ++ /** ++ * Construct and configure the Cache representation of a named cache region. ++ * ++ * @param regionName the name of the cache region ++ * @param properties configuration settings ++ * @return The Cache representation of the named cache region. ++ * @throws CacheException Indicates an error building the cache region. ++ */ ++ public Cache buildCache(String regionName, Properties properties) throws CacheException { ++ return new TreeCache(cache, regionName, transactionManager); ++ } ++ ++ public long nextTimestamp() { ++ return System.currentTimeMillis() / 100; ++ } ++ ++ /** ++ * Prepare the underlying JBossCache TreeCache instance. ++ * ++ * @param properties All current config settings. ++ * ++ * @throws CacheException Indicates a problem preparing cache for use. ++ */ ++ public void start(Properties properties) { ++ String resource = properties.getProperty( Environment.CACHE_PROVIDER_CONFIG ); ++ ++ if ( resource == null ) { ++ resource = properties.getProperty( CONFIG_RESOURCE ); ++ } ++ if ( resource == null ) { ++ resource = DEFAULT_CONFIG; ++ } ++ log.debug( "Configuring TreeCache from resource [" + resource + "]" ); ++ try { ++ cache = new org.jboss.cache.TreeCache(); ++ PropertyConfigurator config = new PropertyConfigurator(); ++ config.configure( cache, resource ); ++ TransactionManagerLookup transactionManagerLookup = TransactionManagerLookupFactory.getTransactionManagerLookup(properties); ++ if (transactionManagerLookup!=null) { ++ cache.setTransactionManagerLookup( new TransactionManagerLookupAdaptor(transactionManagerLookup, properties) ); ++ transactionManager = transactionManagerLookup.getTransactionManager(properties); ++ } ++ cache.start(); ++ } ++ catch (Exception e) { ++ throw new CacheException(e); ++ } ++ } ++ ++ public void stop() { ++ if (cache!=null) { ++ cache.stop(); ++ cache.destroy(); ++ cache=null; ++ } ++ } ++ ++ public boolean isMinimalPutsEnabledByDefault() { ++ return true; ++ } ++ ++ static final class TransactionManagerLookupAdaptor implements org.jboss.cache.TransactionManagerLookup { ++ private final TransactionManagerLookup tml; ++ private final Properties props; ++ TransactionManagerLookupAdaptor(TransactionManagerLookup tml, Properties props) { ++ this.tml=tml; ++ this.props=props; ++ } ++ public TransactionManager getTransactionManager() throws Exception { ++ return tml.getTransactionManager(props); ++ } ++ } ++ ++ public org.jboss.cache.TreeCache getUnderlyingCache() { ++ return cache; ++ } ++} +--- /dev/null ++++ libhibernate-jbosscache-java-3.6.8/src/main/java/hibernate/cache/TreeCache.java +@@ -0,0 +1,227 @@ ++/* ++ * Hibernate, Relational Persistence for Idiomatic Java ++ * ++ * Copyright (c) 2007, Red Hat Middleware LLC or third-party contributors as ++ * indicated by the @author tags or express copyright attribution ++ * statements applied by the authors. All third-party contributions are ++ * distributed under license by Red Hat Middleware LLC. ++ * ++ * This copyrighted material is made available to anyone wishing to use, modify, ++ * copy, or redistribute it subject to the terms and conditions of the GNU ++ * Lesser General Public License, as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this distribution; if not, write to: ++ * Free Software Foundation, Inc. ++ * 51 Franklin Street, Fifth Floor ++ * Boston, MA 02110-1301 USA ++ */ ++package org.hibernate.cache; ++ ++import java.util.HashMap; ++import java.util.Iterator; ++import java.util.Map; ++import java.util.Set; ++ ++import javax.transaction.SystemException; ++import javax.transaction.Transaction; ++import javax.transaction.TransactionManager; ++ ++import org.slf4j.Logger; ++import org.slf4j.LoggerFactory; ++import org.jboss.cache.Fqn; ++import org.jboss.cache.lock.TimeoutException; ++ ++/** ++ * Represents a particular region within the given JBossCache TreeCache. ++ * ++ * @author Gavin King ++ */ ++public class TreeCache implements Cache, TransactionAwareCache { ++ ++ private static final Logger log = LoggerFactory.getLogger(TreeCache.class); ++ ++ private static final String ITEM = "item"; ++ ++ private org.jboss.cache.TreeCache cache; ++ private final String regionName; ++ private final Fqn regionFqn; ++ private final TransactionManager transactionManager; ++ ++ public TreeCache(org.jboss.cache.TreeCache cache, String regionName, TransactionManager transactionManager) ++ throws CacheException { ++ this.cache = cache; ++ this.regionName = regionName; ++ this.regionFqn = Fqn.fromString( regionName.replace( '.', '/' ) ); ++ this.transactionManager = transactionManager; ++ } ++ ++ public Object get(Object key) throws CacheException { ++ Transaction tx = suspend(); ++ try { ++ return read(key); ++ } ++ finally { ++ resume( tx ); ++ } ++ } ++ ++ public Object read(Object key) throws CacheException { ++ try { ++ return cache.get( new Fqn( regionFqn, key ), ITEM ); ++ } ++ catch (Exception e) { ++ throw new CacheException(e); ++ } ++ } ++ ++ public void update(Object key, Object value) throws CacheException { ++ try { ++ cache.put( new Fqn( regionFqn, key ), ITEM, value ); ++ } ++ catch (Exception e) { ++ throw new CacheException(e); ++ } ++ } ++ ++ public void put(Object key, Object value) throws CacheException { ++ Transaction tx = suspend(); ++ try { ++ //do the failfast put outside the scope of the JTA txn ++ cache.putFailFast( new Fqn( regionFqn, key ), ITEM, value, 0 ); ++ } ++ catch (TimeoutException te) { ++ //ignore! ++ log.debug("ignoring write lock acquisition failure"); ++ } ++ catch (Exception e) { ++ throw new CacheException(e); ++ } ++ finally { ++ resume( tx ); ++ } ++ } ++ ++ private void resume(Transaction tx) { ++ try { ++ if (tx!=null) transactionManager.resume(tx); ++ } ++ catch (Exception e) { ++ throw new CacheException("Could not resume transaction", e); ++ } ++ } ++ ++ private Transaction suspend() { ++ Transaction tx = null; ++ try { ++ if ( transactionManager!=null ) { ++ tx = transactionManager.suspend(); ++ } ++ } ++ catch (SystemException se) { ++ throw new CacheException("Could not suspend transaction", se); ++ } ++ return tx; ++ } ++ ++ public void remove(Object key) throws CacheException { ++ try { ++ cache.remove( new Fqn( regionFqn, key ) ); ++ } ++ catch (Exception e) { ++ throw new CacheException(e); ++ } ++ } ++ ++ public void clear() throws CacheException { ++ try { ++ cache.remove( regionFqn ); ++ } ++ catch (Exception e) { ++ throw new CacheException(e); ++ } ++ } ++ ++ public void destroy() throws CacheException { ++ try { ++ // NOTE : evict() operates locally only (i.e., does not propogate ++ // to any other nodes in the potential cluster). This is ++ // exactly what is needed when we destroy() here; destroy() is used ++ // as part of the process of shutting down a SessionFactory; thus ++ // these removals should not be propogated ++ cache.evict( regionFqn ); ++ } ++ catch( Exception e ) { ++ throw new CacheException( e ); ++ } ++ } ++ ++ public void lock(Object key) throws CacheException { ++ throw new UnsupportedOperationException( "TreeCache is a fully transactional cache" + regionName ); ++ } ++ ++ public void unlock(Object key) throws CacheException { ++ throw new UnsupportedOperationException( "TreeCache is a fully transactional cache: " + regionName ); ++ } ++ ++ public long nextTimestamp() { ++ return System.currentTimeMillis() / 100; ++ } ++ ++ public int getTimeout() { ++ return 600; //60 seconds ++ } ++ ++ public String getRegionName() { ++ return regionName; ++ } ++ ++ public long getSizeInMemory() { ++ return -1; ++ } ++ ++ public long getElementCountInMemory() { ++ try { ++ Set children = cache.getChildrenNames( regionFqn ); ++ return children == null ? 0 : children.size(); ++ } ++ catch (Exception e) { ++ throw new CacheException(e); ++ } ++ } ++ ++ public long getElementCountOnDisk() { ++ return 0; ++ } ++ ++ public Map toMap() { ++ try { ++ Map result = new HashMap(); ++ Set childrenNames = cache.getChildrenNames( regionFqn ); ++ if (childrenNames != null) { ++ Iterator iter = childrenNames.iterator(); ++ while ( iter.hasNext() ) { ++ Object key = iter.next(); ++ result.put( ++ key, ++ cache.get( new Fqn( regionFqn, key ), ITEM ) ++ ); ++ } ++ } ++ return result; ++ } ++ catch (Exception e) { ++ throw new CacheException(e); ++ } ++ } ++ ++ public String toString() { ++ return "TreeCache(" + regionName + ')'; ++ } ++ ++} diff --git a/debian/patches/series b/debian/patches/series index 16d7264..a20fa21 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ create-pom-file.patch +compatibility-with-3.3.2.patch -- hibernate-jbosscache: Integration of Hibernate with JBossCache _______________________________________________ pkg-java-commits mailing list pkg-java-comm...@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits