You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2007/02/19 21:45:12 UTC
svn commit: r509327 - in /tapestry/tapestry5/tapestry-core/trunk/src:
main/java/org/apache/tapestry/corelib/mixins/
main/java/org/apache/tapestry/internal/services/
main/java/org/apache/tapestry/services/ main/java/org/apache/tapestry/test/
test/java/o...
Author: hlship
Date: Mon Feb 19 12:45:11 2007
New Revision: 509327
URL: http://svn.apache.org/viewvc?view=rev&rev=509327
Log:
Make use of ClassTransformation.extendConstructor() to inject resources, when possible.
Modified:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/DiscardBody.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CommonResourcesInjectionProvider.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentResourcesInjectionProvider.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InjectAssetWorker.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ClassTransformation.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectAssetWorkerTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/DiscardBody.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/DiscardBody.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/DiscardBody.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/DiscardBody.java Mon Feb 19 12:45:11 2007
@@ -20,7 +20,8 @@
/**
* Discards a component's body. Returns false from the {@link BeforeRenderBody} phase, which
* prevents the rendering of the body. Set up as a "MixinAfter" so that components can render their
- * body if they so desire before this mixin cancels the body.
+ * an alternative body if they so desire before this mixin cancels the normal body (from the
+ * container's template).
*/
@MixinAfter
public class DiscardBody
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CommonResourcesInjectionProvider.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CommonResourcesInjectionProvider.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CommonResourcesInjectionProvider.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CommonResourcesInjectionProvider.java Mon Feb 19 12:45:11 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -25,7 +25,6 @@
import org.apache.tapestry.model.MutableComponentModel;
import org.apache.tapestry.services.ClassTransformation;
import org.apache.tapestry.services.InjectionProvider;
-import org.apache.tapestry.services.TransformConstants;
/**
* Allows for a number of annonymous injections based on the type of field that is to be injected.
@@ -65,7 +64,7 @@
transformation.makeReadOnly(fieldName);
- transformation.extendMethod(TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE, body);
+ transformation.extendConstructor(body);
return true;
}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentResourcesInjectionProvider.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentResourcesInjectionProvider.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentResourcesInjectionProvider.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentResourcesInjectionProvider.java Mon Feb 19 12:45:11 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -21,7 +21,6 @@
import org.apache.tapestry.model.MutableComponentModel;
import org.apache.tapestry.services.ClassTransformation;
import org.apache.tapestry.services.InjectionProvider;
-import org.apache.tapestry.services.TransformConstants;
/**
* Allows for the injection of the component's {@link org.apache.tapestry.ComponentResources}.
@@ -37,8 +36,7 @@
{
String body = format("%s = %s;", fieldName, transformation.getResourcesFieldName());
- transformation
- .extendMethod(TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE, body);
+ transformation.extendConstructor(body);
transformation.makeReadOnly(fieldName);
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InjectAssetWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InjectAssetWorker.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InjectAssetWorker.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InjectAssetWorker.java Mon Feb 19 12:45:11 2007
@@ -24,7 +24,6 @@
import org.apache.tapestry.services.AssetSource;
import org.apache.tapestry.services.ClassTransformation;
import org.apache.tapestry.services.ComponentClassTransformWorker;
-import org.apache.tapestry.services.TransformConstants;
/**
* Supports injection for fields of type {@link Asset}. This worker must be scheduled
@@ -110,8 +109,7 @@
builder.end();
- transformation.extendMethod(TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE, builder
- .toString());
+ transformation.extendConstructor(builder.toString());
}
}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java Mon Feb 19 12:45:11 2007
@@ -1115,7 +1115,7 @@
{
_constructorArgs.add(new ConstructorArg(fieldType, value));
- _constructor.append(format(" %s = $%d;\n", fieldName, _constructorArgs.size()));
+ extendConstructor(format(" %s = $%d;", fieldName, _constructorArgs.size()));
}
public void injectField(String fieldName, Object value)
@@ -1491,13 +1491,14 @@
return _log;
}
- public void addToConstructor(String statement)
+ public void extendConstructor(String statement)
{
Defense.notNull(statement, "statement");
failIfFrozen();
_constructor.append(statement);
+ _constructor.append("\n");
}
}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ClassTransformation.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ClassTransformation.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ClassTransformation.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ClassTransformation.java Mon Feb 19 12:45:11 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -279,12 +279,12 @@
void addMethod(MethodSignature signature, String methodBody);
/**
- * Adds a statement to the constructor.
+ * Adds a statement to the constructor. The statement is added as is, though a newline is added.
*
* @param statement
* the statement to add, which should end with a semicolon
*/
- void addToConstructor(String statement);
+ void extendConstructor(String statement);
/**
* Replaces all read-references to the specified field with invocations of the specified method
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java Mon Feb 19 12:45:11 2007
@@ -213,6 +213,11 @@
transformation.extendMethod(eq(signature), codeEq(join(body)));
}
+ protected final void train_extendConstructor(ClassTransformation transformation, String... body)
+ {
+ transformation.extendConstructor(codeEq(join(body)));
+ }
+
protected final void train_getResourcesFieldName(ClassTransformation transformation, String name)
{
expect(transformation.getResourcesFieldName()).andReturn(name).atLeastOnce();
@@ -769,7 +774,6 @@
{
expect(source.get(strategyName)).andReturn(strategy).atLeastOnce();
}
-
protected final <T extends Annotation> void train_getAnnotation(AnnotationProvider provider,
Class<T> annotationClass, T annotation)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectAssetWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectAssetWorkerTest.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectAssetWorkerTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InjectAssetWorkerTest.java Mon Feb 19 12:45:11 2007
@@ -1,4 +1,4 @@
-// Copyright 2006 The Apache Software Foundation
+// Copyright 2006, 2007 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -20,7 +20,6 @@
import org.apache.tapestry.model.MutableComponentModel;
import org.apache.tapestry.services.AssetSource;
import org.apache.tapestry.services.ClassTransformation;
-import org.apache.tapestry.services.TransformConstants;
import org.testng.annotations.Test;
public class InjectAssetWorkerTest extends InternalBaseTestCase
@@ -87,9 +86,8 @@
ct.makeReadOnly("_fred");
ct.claimField("_fred", annotation);
- train_extendMethod(
+ train_extendConstructor(
ct,
- TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE,
"{",
"_fred = as.findAsset(res, \"foo.gif\", resources.getLocale());",
"}");
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java?view=diff&rev=509327&r1=509326&r2=509327
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java Mon Feb 19 12:45:11 2007
@@ -742,7 +742,7 @@
InternalClassTransformation ct = new InternalClassTransformationImpl(targetObjectCtClass,
_contextClassLoader, log, null);
- ct.addToConstructor("_value = \"from constructor\";");
+ ct.extendConstructor("_value = \"from constructor\";");
ct.finish();