diff --git a/dev-java/ebean/Manifest b/dev-java/ebean/Manifest new file mode 100644 index 0000000..bf7f000 --- /dev/null +++ b/dev-java/ebean/Manifest @@ -0,0 +1 @@ +DIST ebean-2.7.5.zip 6119420 SHA256 4aef63c5c47011d20d6fafcd8186640b3302a5592ce4184c720cb95326cb2d38 SHA512 a4383998b784757cda37846a3810b367c00f56144930ee535cfe0bec688bf597e5a0c583c5feb0ef7625dc29c915ebfb2ccb3997e25c546cb3272baab51864f2 WHIRLPOOL 7fc64bf6bde35fda099aa88e2c4f0299e44a99d5135ae9df7a20a408044677caf946ada1ec730dfc76d469f74f2cb0327ac91c333fe86af2ed9d0695c0b18e10 diff --git a/dev-java/ebean/ebean-2.7.5.ebuild b/dev-java/ebean/ebean-2.7.5.ebuild new file mode 100644 index 0000000..4fe75f0 --- /dev/null +++ b/dev-java/ebean/ebean-2.7.5.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=2 +JAVA_PKG_IUSE="doc source" +JAVA_PKG_WANT_BOOTCLASSPATH="1.5" + +inherit java-pkg-2 java-pkg-simple + +DESCRIPTION="An ORM for Java from Avaje" +HOMEPAGE="http://www.avaje.org/" +SRC_URI="mirror://sourceforge/ebeanorm/${P}.zip" +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="scala" + +CDEPEND="dev-java/ant-core:0 + dev-java/glassfish-persistence:0 + dev-java/glassfish-transaction-api:0 + dev-java/joda-time:0 + dev-java/lucene:3.5 + java-virtuals/servlet-api:2.5 + scala? ( dev-lang/scala:0 )" + +RDEPEND="${CDEPEND} + >=virtual/jre-1.5" + +DEPEND="${CDEPEND} + app-arch/unzip + >=virtual/jdk-1.5" + +S="${WORKDIR}/${P}" +JAVA_GENTOO_CLASSPATH="ant-core glassfish-persistence glassfish-transaction-api joda-time lucene-3.5 servlet-api-2.5" +NON_GNU="com/avaje/ebeaninternal/server/el/ElFilter" + +pkg_setup() { + java-pkg-2_pkg_setup + use scala && JAVA_GENTOO_CLASSPATH="${JAVA_GENTOO_CLASSPATH} scala" +} + +java_prepare() { + unpack "./${P}-sources.jar" + cp -v "${NON_GNU}.java"{,.orig} || die + + if ! use scala; then + einfo "Removing Scala support ..." + find -regex ".*/[^/]*Scala[^r][^/]*\.java" -exec rm -vf {} \; || die + epatch "${FILESDIR}/no-scala.patch" + fi +} + +src_compile() { + # GNU Classpath 0.98 doesn't support Pattern.quote, but 0.99 does. since we use that here, comment stuff out until we have some sanity. + #sed -i "s/Pattern\.quote//g" "${NON_GNU}.java" || die + + # Build with GNU Classpath. + JAVAC_ARGS="-Xbootclasspath/p:$(java-pkg_get-bootclasspath 1.5)" java-pkg-simple_src_compile + + # Restore Pattern.quote and rebuild the class that uses it. + #cp -v "${NON_GNU}.java"{.orig,} || die + #ejavac -cp target/classes -d target/classes "${NON_GNU}.java" + #jar uf "${PN}.jar" -C target/classes "${NON_GNU}.class" || die +} + +src_install() { + java-pkg-simple_src_install + java-pkg_register-optional-dependency jdbc-mysql,jdbc-postgresql,sqlite-jdbc,h2 + dodoc readme.txt || die + newdoc "${PN}"-userguide{-*,}.pdf || die +} diff --git a/dev-java/ebean/files/no-scala.patch b/dev-java/ebean/files/no-scala.patch new file mode 100644 index 0000000..c75c9dc --- /dev/null +++ b/dev-java/ebean/files/no-scala.patch @@ -0,0 +1,106 @@ +diff -Naur com.orig/avaje/ebeaninternal/server/deploy/DetermineManyType.java com/avaje/ebeaninternal/server/deploy/DetermineManyType.java +--- com.orig/avaje/ebeaninternal/server/deploy/DetermineManyType.java 2010-11-03 23:48:44.000000000 +0000 ++++ com/avaje/ebeaninternal/server/deploy/DetermineManyType.java 2011-09-24 22:01:53.970131474 +0100 +@@ -20,21 +20,9 @@ + + public DetermineManyType(boolean withScalaSupport) { + this.withScalaSupport = withScalaSupport; +- if (withScalaSupport){ +- +- CollectionTypeConverter bufConverter = new ScalaBufferConverter(); +- CollectionTypeConverter setConverter = new ScalaSetConverter(); +- CollectionTypeConverter mapConverter = new ScalaMapConverter(); +- +- this.scalaBufMany = new ManyType(ManyType.Underlying.LIST, bufConverter); +- this.scalaSetMany = new ManyType(ManyType.Underlying.SET, setConverter); +- this.scalaMapMany = new ManyType(ManyType.Underlying.MAP, mapConverter); +- +- } else { + this.scalaBufMany = null; + this.scalaSetMany = null; + this.scalaMapMany = null; +- } + } + + public ManyType getManyType(Class type) { +@@ -47,18 +35,6 @@ + if (type.equals(Map.class)){ + return ManyType.JAVA_MAP; + } +- if (withScalaSupport){ +- // only get in here when scala in classpath +- if (type.equals(scala.collection.mutable.Buffer.class)){ +- return scalaBufMany; +- } +- if (type.equals(scala.collection.mutable.Set.class)){ +- return scalaSetMany; +- } +- if (type.equals(scala.collection.mutable.Map.class)){ +- return scalaMapMany; +- } +- } + return null; + } + } +diff -Naur com.orig/avaje/ebeaninternal/server/deploy/parse/DeployCreateProperties.java com/avaje/ebeaninternal/server/deploy/parse/DeployCreateProperties.java +--- com.orig/avaje/ebeaninternal/server/deploy/parse/DeployCreateProperties.java 2010-11-05 21:28:14.000000000 +0000 ++++ com/avaje/ebeaninternal/server/deploy/parse/DeployCreateProperties.java 2011-09-24 22:00:06.195507927 +0100 +@@ -42,7 +42,6 @@ + import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanPropertyCompound; + import com.avaje.ebeaninternal.server.deploy.meta.DeployBeanPropertySimpleCollection; + import com.avaje.ebeaninternal.server.type.CtCompoundType; +-import com.avaje.ebeaninternal.server.type.ScalaOptionTypeConverter; + import com.avaje.ebeaninternal.server.type.ScalarType; + import com.avaje.ebeaninternal.server.type.TypeManager; + import com.avaje.ebeaninternal.server.type.reflect.CheckImmutableResponse; +@@ -72,18 +71,9 @@ + @SuppressWarnings("rawtypes") + public DeployCreateProperties(TypeManager typeManager) { + this.typeManager = typeManager; +- +- Class tmpOptionClass = DetectScala.getScalaOptionClass(); +- +- if (tmpOptionClass == null){ + scalaOptionClass = null; + scalaOptionTypeConverter = null; +- } else { +- scalaOptionClass = tmpOptionClass; +- scalaOptionTypeConverter = new ScalaOptionTypeConverter(); +- } +- +- this.determineManyType = new DetermineManyType(tmpOptionClass != null); ++ this.determineManyType = new DetermineManyType(false); + } + + /** +diff -Naur com.orig/avaje/ebeaninternal/server/persist/DmlUtil.java com/avaje/ebeaninternal/server/persist/DmlUtil.java +--- com.orig/avaje/ebeaninternal/server/persist/DmlUtil.java 2010-11-03 23:48:40.000000000 +0000 ++++ com/avaje/ebeaninternal/server/persist/DmlUtil.java 2011-09-24 22:03:14.242106000 +0100 +@@ -1,13 +1,11 @@ + package com.avaje.ebeaninternal.server.persist; + +-import com.avaje.ebeaninternal.server.deploy.parse.DetectScala; + + /** + * Utility object with helper methods for DML. + */ + public class DmlUtil { + +- private static final boolean hasScalaSupport = DetectScala.hasScalaSupport(); + + /** + * Return true if the value is null or a Numeric 0 (for primitive int's and long's) or Option empty. +@@ -21,13 +19,6 @@ + return ((Number)value).longValue() == 0l; + } + +- if (hasScalaSupport){ +- if (value instanceof scala.Option) { +- if (((scala.Option) value).isEmpty()) { +- return true; +- } +- } +- } + + return false; + }