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 &lt;label&gt; 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)