[weld-commits] Weld SVN: r6420 - in core/trunk: tests/src/test/java/org/jboss/weld/tests/interceptors/ejb and 1 other directory.
weld-commits at lists.jboss.org
weld-commits at lists.jboss.org
Thu Jun 10 15:23:23 EDT 2010
Author: marius.bogoevici
Date: 2010-06-10 15:23:22 -0400 (Thu, 10 Jun 2010)
New Revision: 6420
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/resolution/ForwardingInterceptorResolvable.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/ForwardingResolvable.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/InterceptorResolvableBuilder.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/Resolvable.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableBuilder.java
core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeResolver.java
core/trunk/tests/src/test/java/org/jboss/weld/tests/interceptors/ejb/EnterpriseBeanInterceptionTest.java
Log:
Fix the TypeSafeResolver so that the equals implementation for Key works correctly. Any Resolvable implementation must now implement their own equals and hashCode.
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/ForwardingInterceptorResolvable.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/ForwardingInterceptorResolvable.java 2010-06-09 16:49:34 UTC (rev 6419)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/ForwardingInterceptorResolvable.java 2010-06-10 19:23:22 UTC (rev 6420)
@@ -75,4 +75,13 @@
return false;
}
+ public int getHashCode()
+ {
+ return hashCode();
+ }
+
+ public boolean isEqualTo(Resolvable r)
+ {
+ return equals(r);
+ }
}
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/ForwardingResolvable.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/ForwardingResolvable.java 2010-06-09 16:49:34 UTC (rev 6419)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/ForwardingResolvable.java 2010-06-10 19:23:22 UTC (rev 6420)
@@ -80,4 +80,13 @@
return delegate().toString();
}
+ public int getHashCode()
+ {
+ return delegate().getHashCode();
+ }
+
+ public boolean isEqualTo(Resolvable r)
+ {
+ return delegate().isEqualTo(r);
+ }
}
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/InterceptorResolvableBuilder.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/InterceptorResolvableBuilder.java 2010-06-09 16:49:34 UTC (rev 6419)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/InterceptorResolvableBuilder.java 2010-06-10 19:23:22 UTC (rev 6420)
@@ -135,6 +135,18 @@
return interceptionType;
}
+ public int getHashCode()
+ {
+ return 31*super.getHashCode()
+ + this.getInterceptionType().hashCode();
+ }
+
+ public boolean isEqualTo(Resolvable r)
+ {
+ return super.isEqualTo(r)
+ && r instanceof InterceptorResolvable
+ && this.getInterceptionType().equals(((InterceptorResolvable)r).getInterceptionType());
+ }
}
}
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/Resolvable.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/Resolvable.java 2010-06-09 16:49:34 UTC (rev 6419)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/Resolvable.java 2010-06-10 19:23:22 UTC (rev 6420)
@@ -87,4 +87,18 @@
*/
public Bean<?> getDeclaringBean();
+ /**
+ * Force the Resolvable to implement its own comparison strategy
+ * (thus subclasses can be compared differently)
+ * @param r
+ * @return
+ */
+ public boolean isEqualTo(Resolvable r);
+
+ /**
+ * Force the Resolvable to implement
+ * @return
+ */
+ public int getHashCode();
+
}
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableBuilder.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableBuilder.java 2010-06-09 16:49:34 UTC (rev 6419)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/ResolvableBuilder.java 2010-06-10 19:23:22 UTC (rev 6420)
@@ -276,6 +276,20 @@
return "Types: " + getTypes() + "; Bindings: " + getQualifiers();
}
+ public int getHashCode()
+ {
+ int result = 17;
+ result = 31 * result + this.getTypes().hashCode();
+ result = 31 * result + this.getQualifiers().hashCode();
+ return result;
+ }
+
+ public boolean isEqualTo(Resolvable r)
+ {
+ return this.getTypes().equals(r.getTypes())
+ && this.getQualifiers().equals(r.getQualifiers());
+
+ }
}
}
Modified: core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeResolver.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeResolver.java 2010-06-09 16:49:34 UTC (rev 6419)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resolution/TypeSafeResolver.java 2010-06-10 19:23:22 UTC (rev 6420)
@@ -51,10 +51,11 @@
@Override
public boolean equals(Object obj)
{
- if (obj instanceof Resolvable)
+ if (obj instanceof Key)
{
- Resolvable that = (Resolvable) obj;
- return this.getResolvable().getTypes().equals(that.getTypes()) && this.getResolvable().getQualifiers().equals(that.getQualifiers());
+ Key that = (Key) obj;
+ return that.getResolvable().getClass().equals(this.getResolvable().getClass())
+ && that.getResolvable().isEqualTo(that.getResolvable());
}
else
{
@@ -65,10 +66,7 @@
@Override
public int hashCode()
{
- int result = 17;
- result = 31 * result + this.getResolvable().getTypes().hashCode();
- result = 31 * result + this.getResolvable().getQualifiers().hashCode();
- return result;
+ return this.getResolvable().hashCode();
}
@Override
Modified: core/trunk/tests/src/test/java/org/jboss/weld/tests/interceptors/ejb/EnterpriseBeanInterceptionTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/interceptors/ejb/EnterpriseBeanInterceptionTest.java 2010-06-09 16:49:34 UTC (rev 6419)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/interceptors/ejb/EnterpriseBeanInterceptionTest.java 2010-06-10 19:23:22 UTC (rev 6420)
@@ -41,7 +41,7 @@
{
@Test(groups = { "interceptors", "incontainer-broken"})
- public void ls() throws Exception
+ public void testInterceptors() throws Exception
{
SessionBean<Ball> ballSessionBean = (SessionBean<Ball>)getCurrentManager().getBeans(Ball.class).iterator().next();
InterceptorBindings interceptorBindings = new InterceptorBindingsAdapter(getCurrentManager().getCdiInterceptorsRegistry().getInterceptionModel(ballSessionBean.getType()));
More information about the weld-commits
mailing list