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/12 20:58:39 UTC
svn commit: r506610 [1/2] - in /tapestry/tapestry5/tapestry-core/trunk/src:
main/java/org/apache/tapestry/annotations/
main/java/org/apache/tapestry/corelib/base/
main/java/org/apache/tapestry/corelib/components/
main/java/org/apache/tapestry/corelib/m...
Author: hlship
Date: Mon Feb 12 11:58:34 2007
New Revision: 506610
URL: http://svn.apache.org/viewvc?view=rev&rev=506610
Log:
Remove the @ComponentClass annotation, use the @Meta annotation for meta data, figure out what classes are components by other rules (must be public, must have a no-args public constructor)
Added:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Meta.java
Removed:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/ComponentClass.java
Modified:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Persist.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/SupportsInformalParameters.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/base/AbstractField.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Any.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Delegate.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Errors.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Grid.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridCell.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridColumns.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridPager.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/If.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Label.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java
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/corelib/mixins/RenderDisabled.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassTransformerImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/MetaWorker.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/appstate.apt
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/coercion.apt
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/component-classes.apt
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/event.apt
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/mixins.apt
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/persist.apt
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt
tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/validation.apt
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/base/BaseComponent.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/AbstractTracer.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Border.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Echo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/HelloWorld.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Img.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Output.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/OutputRating.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Render.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableProvider.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableUser.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Strong.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/mixins/Emphasis.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/mixins/TracerMixin.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ActionPage.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/AnyDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/AssetDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/BadTemplate.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Barney.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/BeanEditorDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/BlockDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ClassLoaderInspect.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Countdown.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/EnvironmentalDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Expansion.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/FlashDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Fred.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/GridDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/InjectComponentMismatch.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/InjectDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/InstanceMixin.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Localization.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/MerryChristmas.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/NullGrid.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/NumberSelect.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/PageLoadedDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ParameterConflict.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ParameterDefault.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/PasswordFieldDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/PostLogin.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/RenderComponentDemo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/RenderPhaseOrder.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ShowSelection.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/SimpleForm.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Start.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ToDoList.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ToDoListVolatile.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ValidForm.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/ViewRegistration.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/pages/Wilma.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app2/pages/ResultPageForActionLink.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForActionLink.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForForm.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForIf.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForLocale.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForLoop.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForSubmit.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app2/pages/TestPageForTemplateInWEBINF.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/AnnotatedPage.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/DefaultParameterBindingMethodComponent.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/DefaultParameterComponent.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/FieldRemoval.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/InternalClassTransformationImplTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/MetaWorkerTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ParameterComponent.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/StateHolder.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/transform/pages/BasicComponent.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/transform/pages/FindFieldClass.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/transform/pages/ParentClass.java
Added: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Meta.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Meta.java?view=auto&rev=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Meta.java (added)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Meta.java Mon Feb 12 11:58:34 2007
@@ -0,0 +1,39 @@
+// Copyright 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.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.apache.tapestry.annotations;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import org.apache.tapestry.model.ComponentModel;
+
+/**
+ * Allows for the specification of per-component meta-data. Meta data can later be accessed via
+ * {@link ComponentModel#getMeta(String)}. Meta data keys are case insensitive. Meta data defined
+ * by a subclass overrides meta data for the super class (where the keys conflict).
+ */
+@Target(TYPE)
+@Retention(RUNTIME)
+@Documented
+public @interface Meta {
+ /**
+ * The meta data as a list of "name=value" elements.
+ */
+ String[] value();
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Persist.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Persist.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Persist.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Persist.java Mon Feb 12 11:58:34 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,6 +21,7 @@
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
+import org.apache.tapestry.services.MetaDataLocator;
import org.apache.tapestry.services.Session;
/**
@@ -30,13 +31,14 @@
* <p>
* In most cases, the value will be omitted and will default to the empty string. This forces a
* search for the correct strategy. Starting with the component (or mixin) itself, a check is made
- * for the {@link ComponentClass#meta() meta data property}
- * <code>tapestry.persistence-strategy</code>. If a value is found, it is used, otherwise the
- * search continues up the inheritance hierarchy, towards the page. If not found, then the "session"
- * strategy is used.
+ * for the {@link Meta meta data property} <code>tapestry.persistence-strategy</code>. If a value
+ * is found, it is used, otherwise the search continues up the inheritance hierarchy, towards the
+ * page. If not found, then the "session" strategy is used.
* <p>
* In this way, the session persistence strategy for a component and all of its sub-components can
* be controlled by the containing component.
+ *
+ * @see MetaDataLocator
*/
@Target(FIELD)
@Documented
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/SupportsInformalParameters.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/SupportsInformalParameters.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/SupportsInformalParameters.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/SupportsInformalParameters.java Mon Feb 12 11:58:34 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.
@@ -24,11 +24,11 @@
import org.apache.tapestry.model.ComponentModel;
-/** Used, in conjunction with {@link ComponentClass}, to identify a component that
- * can support informal parameters.
+/**
+ * Used to identify a component that can support informal parameters. By default, components do not
+ * support informal parameters.
*
* @see ComponentModel#getSupportsInformalParameters()
- *
*/
@Target(TYPE)
@Retention(RUNTIME)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/base/AbstractField.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/base/AbstractField.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/base/AbstractField.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/base/AbstractField.java Mon Feb 12 11:58:34 2007
@@ -26,7 +26,6 @@
import org.apache.tapestry.ValidationException;
import org.apache.tapestry.annotations.AfterRender;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Mixin;
@@ -49,7 +48,6 @@
* Provides initialization of the clientId and elementName properties. In addition, adds the
* {@link RenderInformals}, {@link RenderDisabled} and {@link DiscardBody} mixins.
*/
-@ComponentClass
public abstract class AbstractField implements Field
{
/**
@@ -115,7 +113,7 @@
/** Used a shared instance for all types of fields, for efficiency. */
private static final ProcessSubmissionAction PROCESS_SUBMISSION_ACTION = new ProcessSubmissionAction();
- @Parameter(value = "prop:componentResources.id", defaultPrefix="literal")
+ @Parameter(value = "prop:componentResources.id", defaultPrefix = "literal")
private String _clientId;
private String _assignedClientId;
@@ -167,7 +165,7 @@
{
// By default, use the component id as the (base) client id. If the clientid
// parameter is bound, then that is the value to use.
-
+
String id = _clientId;
// Often, these elementName and _clientId will end up as the same value. There are many
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/ActionLink.java Mon Feb 12 11:58:34 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.
@@ -23,7 +23,6 @@
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.annotations.AfterRender;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Mixin;
@@ -34,7 +33,6 @@
/**
* Component that triggers an action on the server with a subsequent full page refresh.
*/
-@ComponentClass
public class ActionLink
{
/**
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Any.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Any.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Any.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Any.java Mon Feb 12 11:58:34 2007
@@ -16,7 +16,6 @@
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Parameter;
@@ -30,7 +29,6 @@
* is available after the component renders as {@link #getClientId()}. The Any component has no
* template but does render its body.
*/
-@ComponentClass
@SupportsInformalParameters
public class Any
{
@@ -38,7 +36,7 @@
* The element to be rendered by the component. Normally, this matches the element from the
* template, but this can be overridden if necessary.
*/
- @Parameter(value="prop:componentResources.elementName", defaultPrefix="literal")
+ @Parameter(value = "prop:componentResources.elementName", defaultPrefix = "literal")
private String _element;
@Inject
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/BeanEditForm.java Mon Feb 12 11:58:34 2007
@@ -26,7 +26,6 @@
import org.apache.tapestry.Translator;
import org.apache.tapestry.ValueEncoder;
import org.apache.tapestry.annotations.Component;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.SupportsInformalParameters;
@@ -56,7 +55,6 @@
* @see BeanEditorModel
* @see BeanEditorModelSource
*/
-@ComponentClass
@SupportsInformalParameters
public class BeanEditForm
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Delegate.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Delegate.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Delegate.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Delegate.java Mon Feb 12 11:58:34 2007
@@ -15,7 +15,6 @@
package org.apache.tapestry.corelib.components;
import org.apache.tapestry.Block;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
/**
@@ -23,7 +22,6 @@
* that can do rendering. This other object may be a component or a {@link Block} (among other
* things).
*/
-@ComponentClass
public class Delegate
{
@Parameter(required = true)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Errors.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Errors.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Errors.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Errors.java Mon Feb 12 11:58:34 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.
@@ -16,7 +16,6 @@
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.ValidationTracker;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.internal.InternalConstants;
@@ -24,7 +23,6 @@
/**
* Standard validation error presenter. Must be enclosed by a {@link Form} component.
*/
-@ComponentClass
public class Errors
{
@Parameter("message:default-banner")
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Form.java Mon Feb 12 11:58:34 2007
@@ -31,7 +31,6 @@
import org.apache.tapestry.annotations.AfterRender;
import org.apache.tapestry.annotations.BeginRender;
import org.apache.tapestry.annotations.CleanupRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Mixin;
@@ -73,7 +72,6 @@
* parameter. This context is encoded into the form's action URI (the parameter is not read when the
* form is submitted, instead the values encoded into the form are used).
*/
-@ComponentClass
public class Form
{
/**
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Grid.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Grid.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Grid.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Grid.java Mon Feb 12 11:58:34 2007
@@ -18,7 +18,6 @@
import org.apache.tapestry.Block;
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.annotations.Component;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.Persist;
@@ -35,7 +34,6 @@
* sub-components. The sub-components are statically wired to the Grid, as it provides access to the
* data and other models that they need.
*/
-@ComponentClass
@SupportsInformalParameters
public class Grid implements GridModelProvider
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridCell.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridCell.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridCell.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridCell.java Mon Feb 12 11:58:34 2007
@@ -17,11 +17,9 @@
import org.apache.tapestry.Block;
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.grid.ColumnModel;
-@ComponentClass
public class GridCell
{
/** Model for property displayed by the cell. */
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridColumns.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridColumns.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridColumns.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridColumns.java Mon Feb 12 11:58:34 2007
@@ -16,7 +16,6 @@
import java.util.List;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.grid.ColumnModel;
import org.apache.tapestry.grid.GridModelProvider;
@@ -25,7 +24,6 @@
* Renders out the column headers for the grid. Eventually, this will include control over column
* sorting, perhaps even column ordering.
*/
-@ComponentClass
public class GridColumns
{
@Parameter(value = "componentResources.container", required = true)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridPager.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridPager.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridPager.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridPager.java Mon Feb 12 11:58:34 2007
@@ -18,13 +18,11 @@
import org.apache.tapestry.Link;
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.TapestryConstants;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.grid.GridDataSource;
import org.apache.tapestry.ioc.Messages;
-@ComponentClass
public class GridPager
{
@Parameter(required = true)
@@ -67,7 +65,7 @@
int low = _currentPage - _range;
int high = _currentPage + _range;
-
+
if (low < 1)
{
low = 1;
@@ -81,7 +79,7 @@
low = high - 2 * _range;
}
}
-
+
for (int i = low; i <= high; i++)
writePageLink(writer, i);
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/GridRows.java Mon Feb 12 11:58:34 2007
@@ -16,13 +16,11 @@
import java.util.List;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.grid.ColumnModel;
import org.apache.tapestry.grid.GridDataSource;
import org.apache.tapestry.grid.GridModelProvider;
-@ComponentClass
public class GridRows
{
/**
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/If.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/If.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/If.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/If.java Mon Feb 12 11:58:34 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.
@@ -15,13 +15,11 @@
package org.apache.tapestry.corelib.components;
import org.apache.tapestry.Block;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
/**
* Conditionally renders its body.
*/
-@ComponentClass
public class If
{
@Parameter(required = true)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Label.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Label.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Label.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Label.java Mon Feb 12 11:58:34 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.annotations.AfterRender;
import org.apache.tapestry.annotations.BeforeRenderBody;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Parameter;
@@ -30,7 +29,6 @@
import org.apache.tapestry.services.Heartbeat;
/** Generates a <label> element for a particular field. */
-@ComponentClass
@SupportsInformalParameters
public class Label
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/Loop.java Mon Feb 12 11:58:34 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.
@@ -26,7 +26,6 @@
import org.apache.tapestry.PrimaryKeyEncoder;
import org.apache.tapestry.annotations.AfterRender;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Parameter;
@@ -43,7 +42,6 @@
* the Loop stores a series of commands that start and end heartbeats and store state (either as
* full objects when there is not encoder, or as client-side objects when there is an encoder).
*/
-@ComponentClass
@SupportsInformalParameters
public class Loop
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/components/PageLink.java Mon Feb 12 11:58:34 2007
@@ -19,7 +19,6 @@
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.annotations.AfterRender;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Parameter;
@@ -28,7 +27,6 @@
/**
* Generates a link to some other page in the application.
*/
-@ComponentClass
public class PageLink
{
@Parameter(required = true, defaultPrefix = "literal")
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=506610&r1=506609&r2=506610
==============================================================================
--- 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 12 11:58:34 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.
@@ -15,7 +15,6 @@
package org.apache.tapestry.corelib.mixins;
import org.apache.tapestry.annotations.BeforeRenderBody;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.MixinAfter;
/**
@@ -23,7 +22,6 @@
* 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.
*/
-@ComponentClass
@MixinAfter
public class DiscardBody
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderDisabled.java Mon Feb 12 11:58:34 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.
@@ -17,11 +17,9 @@
import org.apache.tapestry.Field;
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.InjectComponent;
-import org.apache.tapestry.annotations.MixinAfter;
-@ComponentClass
+import org.apache.tapestry.annotations.MixinAfter;
@MixinAfter
public class RenderDisabled
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/mixins/RenderInformals.java Mon Feb 12 11:58:34 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.
@@ -19,7 +19,6 @@
import org.apache.tapestry.annotations.AfterRenderTemplate;
import org.apache.tapestry.annotations.BeforeRenderTemplate;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.MixinAfter;
import org.apache.tapestry.annotations.SupportsInformalParameters;
@@ -37,7 +36,6 @@
* <p>
* This is often used as a base class, for cases where a component doesn't have other mixins.
*/
-@ComponentClass
@MixinAfter
@SupportsInformalParameters
public class RenderInformals
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/corelib/pages/ExceptionReport.java Mon Feb 12 11:58:34 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.
@@ -16,7 +16,6 @@
import java.util.List;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.ioc.services.ExceptionAnalysis;
import org.apache.tapestry.ioc.services.ExceptionAnalyzer;
@@ -29,7 +28,6 @@
* Responsible for reporting runtime exceptions. This page is quite verbose and is usually
* overridden in a production application.
*/
-@ComponentClass
public class ExceptionReport implements ExceptionReporter
{
private List<ExceptionInfo> _stack;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassTransformerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassTransformerImpl.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassTransformerImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassTransformerImpl.java Mon Feb 12 11:58:34 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.
@@ -12,128 +12,142 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
-
+package org.apache.tapestry.internal.services;
+
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newThreadSafeMap;
-
-import java.util.Map;
-
-import javassist.CtClass;
-import javassist.NotFoundException;
-
-import org.apache.commons.logging.Log;
-import org.apache.tapestry.annotations.ComponentClass;
-import org.apache.tapestry.events.InvalidationListener;
-import org.apache.tapestry.internal.model.MutableComponentModelImpl;
-import org.apache.tapestry.ioc.LogSource;
+
+import java.lang.reflect.Modifier;
+import java.util.Map;
+
+import javassist.CtClass;
+import javassist.CtConstructor;
+import javassist.NotFoundException;
+
+import org.apache.commons.logging.Log;
+import org.apache.tapestry.events.InvalidationListener;
+import org.apache.tapestry.internal.model.MutableComponentModelImpl;
+import org.apache.tapestry.ioc.LogSource;
import org.apache.tapestry.ioc.Resource;
import org.apache.tapestry.ioc.internal.util.ClasspathResource;
-import org.apache.tapestry.model.ComponentModel;
-import org.apache.tapestry.model.MutableComponentModel;
-import org.apache.tapestry.services.ComponentClassTransformWorker;
-
-/**
- * Implementation of {@link org.apache.tapestry.internal.services.ComponentClassTransformer}.
- */
-public class ComponentClassTransformerImpl implements ComponentClassTransformer,
- InvalidationListener
-{
- /** Map from class name to class transformation. */
- private final Map<String, InternalClassTransformation> _nameToClassTransformation = newThreadSafeMap();
-
- private final Map<String, ComponentModel> _nameToComponentModel = newThreadSafeMap();
-
- private final ComponentClassTransformWorker _workerChain;
-
- private final LogSource _logSource;
-
- /**
- * @param workerChain
- * the ordered list of class transform works as a chain of command instance
- */
- public ComponentClassTransformerImpl(ComponentClassTransformWorker workerChain,
- LogSource logSource)
- {
- _workerChain = workerChain;
- _logSource = logSource;
- }
-
- /**
- * Clears the cache of {@link InternalClassTransformation} instances whenever the class loader
- * is invalidated.
- */
- public void objectWasInvalidated()
- {
- _nameToClassTransformation.clear();
- _nameToComponentModel.clear();
- }
-
- public void transformComponentClass(CtClass ctClass, ClassLoader classLoader)
- {
- String classname = ctClass.getName();
-
- String parentClassname;
-
- try
- {
- parentClassname = ctClass.getSuperclass().getName();
- }
- catch (NotFoundException ex)
- {
- throw new RuntimeException(ex);
- }
-
- Log log = _logSource.getLog(classname);
-
- // If the parent class is in a controlled package (and has the ComponentClass annotation),
- // it will already have been loaded and transformed (that is driven by the
- // ComponentInstantiatorSource).
-
- InternalClassTransformation parentTransformation = _nameToClassTransformation
- .get(parentClassname);
-
- // TODO: Check that the name is not already in the map. But I think that can't happen,
- // because the classloader itself is synchronized.
-
- Resource baseResource = new ClasspathResource(classname.replace(".", "/") + ".class");
-
- ComponentModel parentModel = _nameToComponentModel.get(parentClassname);
-
- MutableComponentModel model = new MutableComponentModelImpl(classname, log, baseResource,
- parentModel);
-
- InternalClassTransformation transformation = parentTransformation == null ? new InternalClassTransformationImpl(
- ctClass, classLoader, log, model)
- : new InternalClassTransformationImpl(ctClass, parentTransformation, classLoader,
- log, model);
-
- // Not all classes in the packages are components. That's not just sloppy coding by
- // application developers, it also represents inner classes (including anonymous inner
- // classes).
-
- if (transformation.getAnnotation(ComponentClass.class) == null)
- return;
-
- _workerChain.transform(transformation, model);
-
- transformation.finish();
-
- if (log.isDebugEnabled())
- log.debug("Finished class transformation: " + transformation);
-
- _nameToClassTransformation.put(classname, transformation);
- _nameToComponentModel.put(classname, model);
- }
-
- public Instantiator createInstantiator(Class componentClass)
- {
- String className = componentClass.getName();
-
- InternalClassTransformation ct = _nameToClassTransformation.get(className);
-
- if (ct == null)
- throw new RuntimeException(ServicesMessages.classNotTransformed(className));
-
- return ct.createInstantiator(componentClass);
- }
-}
+import org.apache.tapestry.model.ComponentModel;
+import org.apache.tapestry.model.MutableComponentModel;
+import org.apache.tapestry.services.ComponentClassTransformWorker;
+
+/**
+ * Implementation of {@link org.apache.tapestry.internal.services.ComponentClassTransformer}.
+ */
+public class ComponentClassTransformerImpl implements ComponentClassTransformer,
+ InvalidationListener
+{
+ /** Map from class name to class transformation. */
+ private final Map<String, InternalClassTransformation> _nameToClassTransformation = newThreadSafeMap();
+
+ private final Map<String, ComponentModel> _nameToComponentModel = newThreadSafeMap();
+
+ private final ComponentClassTransformWorker _workerChain;
+
+ private final LogSource _logSource;
+
+ /**
+ * @param workerChain
+ * the ordered list of class transform works as a chain of command instance
+ */
+ public ComponentClassTransformerImpl(ComponentClassTransformWorker workerChain,
+ LogSource logSource)
+ {
+ _workerChain = workerChain;
+ _logSource = logSource;
+ }
+
+ /**
+ * Clears the cache of {@link InternalClassTransformation} instances whenever the class loader
+ * is invalidated.
+ */
+ public void objectWasInvalidated()
+ {
+ _nameToClassTransformation.clear();
+ _nameToComponentModel.clear();
+ }
+
+ public void transformComponentClass(CtClass ctClass, ClassLoader classLoader)
+ {
+ String parentClassname;
+
+ // Component classes must be public
+
+ if (!Modifier.isPublic(ctClass.getModifiers()))
+ return;
+
+ try
+ {
+ // And have a public constructor.
+
+ CtConstructor ctor = ctClass.getConstructor("()V");
+
+ if (!Modifier.isPublic(ctor.getModifiers()))
+ return;
+ }
+ catch (NotFoundException ex)
+ {
+ return;
+ }
+
+ // Force the creation of the parent class.
+
+ try
+ {
+ parentClassname = ctClass.getSuperclass().getName();
+ }
+ catch (NotFoundException ex)
+ {
+ throw new RuntimeException(ex);
+ }
+
+ String classname = ctClass.getName();
+
+ Log log = _logSource.getLog(classname);
+
+ // If the parent class is in a controlled package, it will already have been loaded and
+ // transformed (that is driven by the ComponentInstantiatorSource).
+
+ InternalClassTransformation parentTransformation = _nameToClassTransformation
+ .get(parentClassname);
+
+ // TODO: Check that the name is not already in the map. But I think that can't happen,
+ // because the classloader itself is synchronized.
+
+ Resource baseResource = new ClasspathResource(classname.replace(".", "/") + ".class");
+
+ ComponentModel parentModel = _nameToComponentModel.get(parentClassname);
+
+ MutableComponentModel model = new MutableComponentModelImpl(classname, log, baseResource,
+ parentModel);
+
+ InternalClassTransformation transformation = parentTransformation == null ? new InternalClassTransformationImpl(
+ ctClass, classLoader, log, model)
+ : new InternalClassTransformationImpl(ctClass, parentTransformation, classLoader,
+ log, model);
+
+ _workerChain.transform(transformation, model);
+
+ transformation.finish();
+
+ if (log.isDebugEnabled())
+ log.debug("Finished class transformation: " + transformation);
+
+ _nameToClassTransformation.put(classname, transformation);
+ _nameToComponentModel.put(classname, model);
+ }
+
+ public Instantiator createInstantiator(Class componentClass)
+ {
+ String className = componentClass.getName();
+
+ InternalClassTransformation ct = _nameToClassTransformation.get(className);
+
+ if (ct == null)
+ throw new RuntimeException(ServicesMessages.classNotTransformed(className));
+
+ return ct.createInstantiator(componentClass);
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/MetaWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/MetaWorker.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/MetaWorker.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/MetaWorker.java Mon Feb 12 11:58:34 2007
@@ -14,7 +14,7 @@
package org.apache.tapestry.internal.services;
-import org.apache.tapestry.annotations.ComponentClass;
+import org.apache.tapestry.annotations.Meta;
import org.apache.tapestry.internal.KeyValue;
import org.apache.tapestry.internal.TapestryUtils;
import org.apache.tapestry.model.MutableComponentModel;
@@ -22,19 +22,20 @@
import org.apache.tapestry.services.ComponentClassTransformWorker;
/**
- * Checks for any meta-data in the {@link ComponentClass} annotation, and adds it to the model.
+ * Checks for the presence of a {@link Meta} annotation, and adds the data within to the component
+ * model.
*/
public class MetaWorker implements ComponentClassTransformWorker
{
public void transform(ClassTransformation transformation, MutableComponentModel model)
{
- ComponentClass annotation = transformation.getAnnotation(ComponentClass.class);
+ Meta annotation = transformation.getAnnotation(Meta.class);
if (annotation == null)
return;
- for (String meta : annotation.meta())
+ for (String meta : annotation.value())
{
KeyValue kv = TapestryUtils.parseKeyValue(meta);
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/model/ComponentModel.java Mon Feb 12 11:58:34 2007
@@ -17,7 +17,6 @@
import java.util.List;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.MixinAfter;
import org.apache.tapestry.annotations.Persist;
import org.apache.tapestry.annotations.SupportsInformalParameters;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/appstate.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/appstate.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/appstate.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/appstate.apt Mon Feb 12 11:58:34 2007
@@ -19,7 +19,6 @@
Example:
+---+
-@ComponentClass
public class MyPage
{
@ApplicationState
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/coercion.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/coercion.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/coercion.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/coercion.apt Mon Feb 12 11:58:34 2007
@@ -12,7 +12,6 @@
For example, consider the Count component:
+---+
-@ComponentClass
public class Count
{
@Parameter
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/component-classes.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/component-classes.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/component-classes.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/component-classes.apt Mon Feb 12 11:58:34 2007
@@ -23,8 +23,7 @@
* The classes must be in the correct package, as per the {{{conf.html}application configuration}}.
- * The classes must be annotated with the
- {{{../apidocs/org/apache/tapestry/annotations/ComponentClass.html}ComponentClass}} annotation.
+ * The class must have a standard public, no arguments constructor.
[]
@@ -35,10 +34,8 @@
package org.example.myapp.components;
import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.BeginRender;
-@ComponentClass
public class HelloWorld
{
@BeginRender
@@ -186,10 +183,8 @@
package org.example.app.pages;
import org.apache.tapestry.annotations.Component;
-import org.apache.tapestry.annotations.ComponentClass;
import org.example.app.components.Count;
-@ComponentClass
public class Countdown
{
@Component(parameters =
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/event.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/event.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/event.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/event.apt Mon Feb 12 11:58:34 2007
@@ -169,8 +169,6 @@
context of a CRUD application, the context is used to store the primary key of some entity object:
+---+
-
- @ComponentClass
public class ViewCustomer
{
private Customer _customer;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/mixins.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/mixins.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/mixins.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/mixins.apt Mon Feb 12 11:58:34 2007
@@ -21,8 +21,7 @@
Mixin classes are stored in a <<<mixins>>> sub-package, below the application (or library)
root package. This parallels where component and page classes are stored.
- Other than that, mixin classes are exactly the same as any other component class, including
- the need for {{{../apidocs/org/apache/tapestry/annotations/ComponentClass.html}ComponentClass annotation}}.
+ Other than that, mixin classes are exactly the same as any other component class.
Mixin Limitations
@@ -79,7 +78,6 @@
defines a field that will containg the mixin instance.
+---+
-@ComponentClass
public class AutocompleteField extendes TextField
{
@Mixin
@@ -95,7 +93,6 @@
attribute of the annotation will be used to determine the mixin class name:
+---+
-@ComponentClass
public class AutocompleteField extendes TextField
{
@Mixin("Autocomplete")
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/parameters.apt Mon Feb 12 11:58:34 2007
@@ -24,11 +24,9 @@
package org.example.app.components;
import org.apache.tapestry.annotations.AfterRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.SetupRender;
-@ComponentClass
public class Count
{
@Parameter
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/persist.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/persist.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/persist.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/persist.apt Mon Feb 12 11:58:34 2007
@@ -60,7 +60,8 @@
For each component, the meta-data property <<<tapestry.persistence-strategy>>> is checked.
This can be specified using the
- {{{../apidocs/org/apache/tapestry/annotations/ComponentClass.html}ComponentClass}} annotation.
+ {{{../apidocs/org/apache/tapestry/annotations/Meta.html}Meta}} annotation.
+
If the value is non-blank, then that strategy is used. This allows a component to control
the persistence strategy used inside any sub-components (that don't explicitly use a different
strategy).
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/rendering.apt Mon Feb 12 11:58:34 2007
@@ -65,12 +65,10 @@
+---+
package org.example.app.components;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.annotations.AfterRender;
import org.apache.tapestry.annotations.SetupRender;
-@ComponentClass
public class Count
{
@Parameter
@@ -206,10 +204,8 @@
+---+
package org.example.app.components;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
-@ComponentClass
public class Count
{
@Parameter
Modified: tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/validation.apt
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/validation.apt?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/validation.apt (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/site/apt/guide/validation.apt Mon Feb 12 11:58:34 2007
@@ -81,7 +81,6 @@
For example, a Login page, which collects a user name and a password, might look like:
+---+
-@ComponentClass
public class Login
{
@Retain
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/base/BaseComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/base/BaseComponent.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/base/BaseComponent.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/base/BaseComponent.java Mon Feb 12 11:58:34 2007
@@ -15,10 +15,8 @@
package org.apache.tapestry.integration.app1.base;
import org.apache.tapestry.annotations.ApplicationState;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.integration.app1.data.IncidentData;
-@ComponentClass
public class BaseComponent
{
@ApplicationState
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/AbstractTracer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/AbstractTracer.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/AbstractTracer.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/AbstractTracer.java Mon Feb 12 11:58:34 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.
@@ -14,12 +14,10 @@
package org.apache.tapestry.integration.app1.components;
-import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.AfterRender;
-import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
+import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.annotations.AfterRender;
+import org.apache.tapestry.annotations.BeginRender;
-@ComponentClass
public abstract class AbstractTracer
{
@BeginRender
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Border.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Border.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Border.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Border.java Mon Feb 12 11:58:34 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.
@@ -12,17 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.integration.app1.components;
-
-import org.apache.tapestry.annotations.ComponentClass;
-
-/**
- * Here's a component with a template, including a t:body element.
- *
- *
- */
-@ComponentClass
-public class Border
-{
-
-}
+package org.apache.tapestry.integration.app1.components;
+
+/**
+ * Here's a component with a template, including a t:body element.
+ */
+public class Border
+{
+
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Count.java Mon Feb 12 11:58:34 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.
@@ -12,66 +12,64 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.integration.app1.components;
-
-import org.apache.tapestry.annotations.AfterRender;
-import org.apache.tapestry.annotations.ComponentClass;
-import org.apache.tapestry.annotations.Parameter;
-import org.apache.tapestry.annotations.SetupRender;
+package org.apache.tapestry.integration.app1.components;
+
+import org.apache.tapestry.annotations.AfterRender;
+import org.apache.tapestry.annotations.Parameter;
+import org.apache.tapestry.annotations.SetupRender;
import org.apache.tapestry.internal.util.IntegerRange;
-
-/**
- * A component that can count up or count down.
- * <p>
- * This is useful as a demonstration; now that the prop binding supports
- * {@link IntegerRange integer ranges}, it's much less necessary.
- */
-@ComponentClass
-public class Count
-{
- @Parameter
- private int _start = 1;
-
- @Parameter(required = true)
- private int _end;
-
- @Parameter
- private int _value;
-
- private boolean _increment;
-
- @SetupRender
- void initializeValue()
- {
- _value = _start;
-
- _increment = _start < _end;
- }
-
- @AfterRender
- boolean next()
- {
- if (_increment)
- {
- int newValue = _value + 1;
-
- if (newValue <= _end)
- {
- _value = newValue;
- return true; // re-render body
- }
- }
- else
- {
- int newValue = _value - 1;
-
- if (newValue >= _end)
- {
- _value = newValue;
- return true; // re-render body
- }
- }
-
- return false;
- }
-}
+
+/**
+ * A component that can count up or count down.
+ * <p>
+ * This is useful as a demonstration; now that the prop binding supports
+ * {@link IntegerRange integer ranges}, it's much less necessary.
+ */
+public class Count
+{
+ @Parameter
+ private int _start = 1;
+
+ @Parameter(required = true)
+ private int _end;
+
+ @Parameter
+ private int _value;
+
+ private boolean _increment;
+
+ @SetupRender
+ void initializeValue()
+ {
+ _value = _start;
+
+ _increment = _start < _end;
+ }
+
+ @AfterRender
+ boolean next()
+ {
+ if (_increment)
+ {
+ int newValue = _value + 1;
+
+ if (newValue <= _end)
+ {
+ _value = newValue;
+ return true; // re-render body
+ }
+ }
+ else
+ {
+ int newValue = _value - 1;
+
+ if (newValue >= _end)
+ {
+ _value = newValue;
+ return true; // re-render body
+ }
+ }
+
+ return false;
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Echo.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Echo.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Echo.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Echo.java Mon Feb 12 11:58:34 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.
@@ -16,14 +16,12 @@
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
/**
* Echos out its value parameter. Uused to test parameter overrides between component annoation and
* template. Also, used to test parameter defaulter methods.
*/
-@ComponentClass
public class Echo
{
@Parameter("componentResources.completeId")
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/HelloWorld.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/HelloWorld.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/HelloWorld.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/HelloWorld.java Mon Feb 12 11:58:34 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.
@@ -12,19 +12,17 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.integration.app1.components;
-
-import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
-
-@ComponentClass
-public class HelloWorld
-{
- @BeginRender
- void renderMessage(MarkupWriter writer)
- {
- writer.write("Why wait? Make changes here and see them immediately!");
- }
-
-}
+package org.apache.tapestry.integration.app1.components;
+
+import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.annotations.BeginRender;
+
+public class HelloWorld
+{
+ @BeginRender
+ void renderMessage(MarkupWriter writer)
+ {
+ writer.write("Why wait? Make changes here and see them immediately!");
+ }
+
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Img.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Img.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Img.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Img.java Mon Feb 12 11:58:34 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,13 +20,11 @@
import org.apache.tapestry.annotations.AfterRender;
import org.apache.tapestry.annotations.BeforeRenderBody;
import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Environmental;
import org.apache.tapestry.annotations.Inject;
import org.apache.tapestry.annotations.Parameter;
import org.apache.tapestry.services.PageRenderSupport;
-@ComponentClass
public class Img
{
@Environmental
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Output.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Output.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Output.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Output.java Mon Feb 12 11:58:34 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.
@@ -17,11 +17,9 @@
import java.text.Format;
import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
/** component that formats a value and outputs it. */
-@ComponentClass
public class Output
{
@Parameter(required = true)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/OutputRating.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/OutputRating.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/OutputRating.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/OutputRating.java Mon Feb 12 11:58:34 2007
@@ -15,10 +15,8 @@
package org.apache.tapestry.integration.app1.components;
import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
-@ComponentClass
public class OutputRating
{
@Parameter
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Render.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Render.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Render.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Render.java Mon Feb 12 11:58:34 2007
@@ -14,10 +14,8 @@
package org.apache.tapestry.integration.app1.components;
-import org.apache.tapestry.annotations.ComponentClass;
import org.apache.tapestry.annotations.Parameter;
-@ComponentClass
public class Render
{
@Parameter(required = true)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableProvider.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableProvider.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableProvider.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableProvider.java Mon Feb 12 11:58:34 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.
@@ -12,44 +12,39 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.integration.app1.components;
-
-import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.Renderable;
-import org.apache.tapestry.annotations.CleanupRender;
-import org.apache.tapestry.annotations.ComponentClass;
-import org.apache.tapestry.annotations.Inject;
-import org.apache.tapestry.annotations.SetupRender;
-import org.apache.tapestry.services.Environment;
-
-/**
- *
- */
-@ComponentClass
-public class RenderableProvider
-{
- @Inject("service:tapestry.Environment")
- private Environment _environment;
-
- @SetupRender
- void setup()
- {
- Renderable r = new Renderable()
- {
- public void render(MarkupWriter writer)
- {
- writer.element("strong");
- writer.write("A message provided by the RenderableProvider component.");
- writer.end();
- }
- };
-
- _environment.push(Renderable.class, r);
- }
-
- @CleanupRender
- void cleanup()
- {
- _environment.pop(Renderable.class);
- }
-}
+package org.apache.tapestry.integration.app1.components;
+
+import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.Renderable;
+import org.apache.tapestry.annotations.CleanupRender;
+import org.apache.tapestry.annotations.Inject;
+import org.apache.tapestry.annotations.SetupRender;
+import org.apache.tapestry.services.Environment;
+
+public class RenderableProvider
+{
+ @Inject("service:tapestry.Environment")
+ private Environment _environment;
+
+ @SetupRender
+ void setup()
+ {
+ Renderable r = new Renderable()
+ {
+ public void render(MarkupWriter writer)
+ {
+ writer.element("strong");
+ writer.write("A message provided by the RenderableProvider component.");
+ writer.end();
+ }
+ };
+
+ _environment.push(Renderable.class, r);
+ }
+
+ @CleanupRender
+ void cleanup()
+ {
+ _environment.pop(Renderable.class);
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableUser.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableUser.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableUser.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/RenderableUser.java Mon Feb 12 11:58:34 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.
@@ -12,28 +12,24 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.integration.app1.components;
-
-import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.Renderable;
-import org.apache.tapestry.annotations.BeginRender;
-import org.apache.tapestry.annotations.ComponentClass;
-import org.apache.tapestry.annotations.Environmental;
-
-/**
- * Used, with {@link RenderableProvider}, to test the {@link Environmental} annotation.
- *
- *
- */
-@ComponentClass
-public class RenderableUser
-{
- @Environmental
- private Renderable _renderable;
-
- @BeginRender
- void render(MarkupWriter writer)
- {
- _renderable.render(writer);
- }
-}
+package org.apache.tapestry.integration.app1.components;
+
+import org.apache.tapestry.MarkupWriter;
+import org.apache.tapestry.Renderable;
+import org.apache.tapestry.annotations.BeginRender;
+import org.apache.tapestry.annotations.Environmental;
+
+/**
+ * Used, with {@link RenderableProvider}, to test the {@link Environmental} annotation.
+ */
+public class RenderableUser
+{
+ @Environmental
+ private Renderable _renderable;
+
+ @BeginRender
+ void render(MarkupWriter writer)
+ {
+ _renderable.render(writer);
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Strong.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Strong.java?view=diff&rev=506610&r1=506609&r2=506610
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Strong.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Strong.java Mon Feb 12 11:58:34 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.
@@ -15,9 +15,7 @@
package org.apache.tapestry.integration.app1.components;
import org.apache.tapestry.MarkupWriter;
-import org.apache.tapestry.annotations.ComponentClass;
-@ComponentClass
public class Strong
{
void beginRender(MarkupWriter writer)