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 2006/10/27 20:00:09 UTC
svn commit: r468481 [1/3] - in /tapestry/tapestry5/tapestry-core/trunk: ./
src/main/aspect/org/apache/tapestry/internal/aspects/
src/main/java/org/apache/tapestry/
src/main/java/org/apache/tapestry/annotations/
src/main/java/org/apache/tapestry/dom/ sr...
Author: hlship
Date: Fri Oct 27 11:00:05 2006
New Revision: 468481
URL: http://svn.apache.org/viewvc?view=rev&rev=468481
Log:
Merge changes from hlship-20061027-removeaspectj branch into trunk
Added:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/ConcurrentBarrier.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/main/java/org/apache/tapestry/internal/util/ConcurrentBarrier.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/Holder.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/main/java/org/apache/tapestry/internal/util/Holder.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/Invokable.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/main/java/org/apache/tapestry/internal/util/Invokable.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/OneShotLock.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/main/java/org/apache/tapestry/internal/util/OneShotLock.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/ConcurrentBarrierTest.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/test/java/org/apache/tapestry/internal/util/ConcurrentBarrierTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/ConcurrentTarget.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/test/java/org/apache/tapestry/internal/util/ConcurrentTarget.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/ConcurrentTargetWrapper.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/test/java/org/apache/tapestry/internal/util/ConcurrentTargetWrapper.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/OneShotLockSubject.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/test/java/org/apache/tapestry/internal/util/OneShotLockSubject.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/OneShotLockTest.java
- copied unchanged from r468480, tapestry/tapestry5/tapestry-core/branches/hlship-20061027-removeaspectj/src/test/java/org/apache/tapestry/internal/util/OneShotLockTest.java
Removed:
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/AbstractClassTargetting.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/CatchNullParameters.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/Concurrence.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/InternalCatchNullParameters.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/InternalConcurrence.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/InternalOneShotChecks.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/InternalUtilityChecks.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/OneShotChecks.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/aspect/org/apache/tapestry/internal/aspects/UtilityChecks.aj
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/annotations/Concurrent.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/annotations/OneShot.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/annotations/SuppressNullCheck.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/annotations/Utility.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/CatchNullParametersAspectTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/ConcurrenceAspectTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/ConcurrentTarget.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/ConcurrentTargetWrapper.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/InternalUtilityAspectTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/NullTarget.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/OneShotChecksAspectTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/PartiallySuppressedNullTarget.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/aspects/SuppressedNullTarget.java
Modified:
tapestry/tapestry5/tapestry-core/trunk/.classpath
tapestry/tapestry5/tapestry-core/trunk/.project
tapestry/tapestry5/tapestry-core/trunk/pom.xml
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/BaseLocatable.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/TapestryConstants.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixin.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/MixinClasses.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixins.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Element.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Node.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/InternalConstants.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/AbstractBinding.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BasePropBinding.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BindingsMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBinding.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBindingFactory.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/PropBindingFactory.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/DecoratorDefImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCProxyUtilities.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ModuleImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/RegistryImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingConfigurationWrapper.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingMappedConfigurationWrapper.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingOrderedConfigurationWrapper.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/AbstractFab.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFabImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFactoryClassPool.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassPropertyAdapterImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ExceptionInfoImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAccessImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAdapterImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/RegistryShutdownHubImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceLogger.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/TypeCoercerImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/ModelMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/EndElementToken.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/StartComponentToken.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/BindingSourceImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CheckForUpdatesFilter.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/ComponentEventImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentTemplateSourceImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ConstructorArg.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InfrastructureImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalClassTransformationImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalModule.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/LinkFactoryImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/MixinWorker.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/PageElementFactoryImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/PageLoaderImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/PersistentFieldBundleImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/PersistentFieldChangeImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/PersistentFieldManagerImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ServicesMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/SessionPersistentFieldStrategy.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/ComponentPageElementImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/InternalComponentResourcesImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/PageImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/structure/StructureMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/test/InternalBaseTestCase.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/DependencyNode.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/InternalUtils.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/Orderer.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/UtilMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/IOCConstants.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/IOCUtilities.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/Orderable.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/RegistryBuilder.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/ClassFabUtils.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/MethodSignature.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/runtime/LifecycleEvent.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/FormSupport.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/MethodSignature.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/TapestryModule.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/TransformConstants.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/TransformUtils.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/BaseTestCase.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TestBase.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/util/CollectionFactory.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/util/Defense.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/util/StrategyRegistry.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/util/UtilMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/main/resources/org/apache/tapestry/internal/util/UtilStrings.properties
tapestry/tapestry5/tapestry-core/trunk/src/test/conf/testng.xml
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/BaseLocatableTest.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/Echo.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/integration/app1/components/Tracer.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/InstanceMixin.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/internal/TargetMessages.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/bindings/PropBindingFactoryTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/ioc/InterceptorStackBuilderTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/ioc/services/TypeCoercerImplTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/FieldAccessBean.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/MixinWorkerTest.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/ReadOnlyBean.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/TemplateParserImplTest.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/ioc/BarneyModule.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/services/SyncCostBench.java
Modified: tapestry/tapestry5/tapestry-core/trunk/.classpath
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/.classpath?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/.classpath (original)
+++ tapestry/tapestry5/tapestry-core/trunk/.classpath Fri Oct 27 11:00:05 2006
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/aspect"/>
<classpathentry kind="lib" path="src/main/resources"/>
<classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="lib" path="src/test/resources"/>
<classpathentry kind="lib" path="src/test/conf"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.ajdt.core.ASPECTJRT_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: tapestry/tapestry5/tapestry-core/trunk/.project
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/.project?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/.project (original)
+++ tapestry/tapestry5/tapestry-core/trunk/.project Fri Oct 27 11:00:05 2006
@@ -6,7 +6,7 @@
</projects>
<buildSpec>
<buildCommand>
- <name>org.eclipse.ajdt.core.ajbuilder</name>
+ <name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
@@ -17,7 +17,6 @@
</buildCommand>
</buildSpec>
<natures>
- <nature>org.eclipse.ajdt.ui.ajnature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.maven.ide.eclipse.maven2Nature</nature>
</natures>
Modified: tapestry/tapestry5/tapestry-core/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/pom.xml?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/pom.xml (original)
+++ tapestry/tapestry5/tapestry-core/trunk/pom.xml Fri Oct 27 11:00:05 2006
@@ -43,10 +43,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- </dependency>
- <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</dependency>
@@ -74,10 +70,6 @@
<build>
<plugins>
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>aspectj-maven-plugin</artifactId>
- </plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
@@ -86,6 +78,16 @@
</suiteXmlFiles>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ <optimize>true</optimize>
+ <verbose>true</verbose>
+ </configuration>
+ </plugin>
</plugins>
</build>
<reporting>
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/BaseLocatable.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/BaseLocatable.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/BaseLocatable.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/BaseLocatable.java Fri Oct 27 11:00:05 2006
@@ -14,14 +14,9 @@
package org.apache.tapestry;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
-
/**
* Base implementation of {@link org.apache.tapestry.Locatable}.
- *
- *
*/
-@SuppressNullCheck
public class BaseLocatable implements Locatable
{
private final Location _location;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/TapestryConstants.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/TapestryConstants.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/TapestryConstants.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/TapestryConstants.java Fri Oct 27 11:00:05 2006
@@ -14,16 +14,15 @@
package org.apache.tapestry;
-import org.apache.tapestry.internal.annotations.Utility;
-
/**
* Collection of common constant values used throughout Tapestry.
- *
- *
*/
-@Utility
public final class TapestryConstants
{
/** Default client event name, used in most situations. */
public static final String DEFAULT_EVENT = "action";
+
+ private TapestryConstants()
+ {
+ }
}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixin.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixin.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixin.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixin.java Fri Oct 27 11:00:05 2006
@@ -1,3 +1,17 @@
+// Copyright 2006 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.FIELD;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/MixinClasses.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/MixinClasses.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/MixinClasses.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/MixinClasses.java Fri Oct 27 11:00:05 2006
@@ -1,3 +1,17 @@
+// Copyright 2006 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.FIELD;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixins.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixins.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixins.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/annotations/Mixins.java Fri Oct 27 11:00:05 2006
@@ -1,3 +1,17 @@
+// Copyright 2006 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.FIELD;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Element.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Element.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Element.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Element.java Fri Oct 27 11:00:05 2006
@@ -23,14 +23,10 @@
import java.util.List;
import java.util.Map;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
-
/**
* An element that will render with a begin tag and attributes, a body, and an end tag. Also acts as
* a factory for enclosed Element, Text and Comment nodes. TODO: Support for CDATA nodes. Do we need
* Entity nodes?
- *
- *
*/
public final class Element extends Node
{
@@ -73,7 +69,6 @@
* the value for the attribute. A value of null is allowed, and no attribute will be
* added to the element.
*/
- @SuppressNullCheck
public void addAttribute(String name, String value)
{
notBlank(name, "name");
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Node.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Node.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Node.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/dom/Node.java Fri Oct 27 11:00:05 2006
@@ -20,12 +20,8 @@
import java.io.StringWriter;
import java.util.List;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
-
/**
* A node within the DOM.
- *
- *
*/
public abstract class Node
{
@@ -39,7 +35,6 @@
*
* @param container
*/
- @SuppressNullCheck
protected Node(Node container)
{
_container = container;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/InternalConstants.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/InternalConstants.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/InternalConstants.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/InternalConstants.java Fri Oct 27 11:00:05 2006
@@ -14,12 +14,6 @@
package org.apache.tapestry.internal;
-import org.apache.tapestry.internal.annotations.Utility;
-
-/**
- *
- */
-@Utility
public final class InternalConstants
{
/**
@@ -33,4 +27,8 @@
/** Binding expression prefix used to bind to a property of the component. */
public static final String PROP_BINDING_PREFIX = "prop";
+
+ private InternalConstants()
+ {
+ }
}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java Fri Oct 27 11:00:05 2006
@@ -14,8 +14,8 @@
package org.apache.tapestry.internal;
-import static org.apache.tapestry.util.CollectionFactory.newMap;
import static org.apache.tapestry.util.CollectionFactory.newSet;
+import static org.apache.tapestry.util.CollectionFactory.newThreadSafeMap;
import java.util.Enumeration;
import java.util.Locale;
@@ -25,15 +25,11 @@
import org.apache.tapestry.MessageFormatter;
import org.apache.tapestry.Messages;
-import org.apache.tapestry.internal.annotations.Concurrent;
/**
* Implementation of {@link org.apache.tapestry.Messages} based around a
* {@link java.util.ResourceBundle}.
- *
- *
*/
-@Concurrent
public class MessagesImpl implements Messages
{
private final ResourceBundle _bundle;
@@ -41,7 +37,7 @@
private final Set<String> _keys = newSet();
/** String key to MF instance. */
- private Map<String, MessageFormatter> _cache = newMap();
+ private Map<String, MessageFormatter> _cache = newThreadSafeMap();
/**
* Finds the messages for a given Messages utility class. Strings the trailing "Messages" and
@@ -87,26 +83,24 @@
return "[" + key.toUpperCase() + "]";
}
- @Concurrent.Read
public MessageFormatter getFormatter(String key)
{
MessageFormatter result = _cache.get(key);
if (result == null)
- result = fillInCache(key);
+ {
+ result = buildMessageFormatter(key);
+ _cache.put(key, result);
+ }
return result;
}
- @Concurrent.Write
- private MessageFormatter fillInCache(String key)
+ private MessageFormatter buildMessageFormatter(String key)
{
String format = get(key);
- MessageFormatter result = new MessageFormatterImpl(format);
- _cache.put(key, result);
-
- return result;
+ return new MessageFormatterImpl(format);
}
public String format(String key, Object... args)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java Fri Oct 27 11:00:05 2006
@@ -16,16 +16,12 @@
import org.apache.tapestry.Locatable;
import org.apache.tapestry.Location;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.util.InternalUtils;
/**
* Exception class used as a replacement for {@link java.lang.RuntimeException} when the exception
* is related to a particular location.
- *
- *
*/
-@SuppressNullCheck
public class TapestryException extends RuntimeException implements Locatable
{
private static final long serialVersionUID = 6396903640977182682L;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/AbstractBinding.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/AbstractBinding.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/AbstractBinding.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/AbstractBinding.java Fri Oct 27 11:00:05 2006
@@ -18,14 +18,10 @@
import org.apache.tapestry.Binding;
import org.apache.tapestry.Location;
import org.apache.tapestry.internal.TapestryException;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
/**
* Abstract base class for bindings.
- *
- *
*/
-@SuppressNullCheck
public abstract class AbstractBinding extends BaseLocatable implements Binding
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BasePropBinding.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BasePropBinding.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BasePropBinding.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BasePropBinding.java Fri Oct 27 11:00:05 2006
@@ -16,16 +16,12 @@
import org.apache.tapestry.Location;
import org.apache.tapestry.internal.TapestryException;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
/**
* Base class for bindings created by the
* {@link org.apache.tapestry.internal.bindings.PropBindingFactory}. A subclass of this is created
* at runtime.
- *
- *
*/
-@SuppressNullCheck
public abstract class BasePropBinding extends AbstractBinding
{
private final String _toString;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BindingsMessages.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BindingsMessages.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BindingsMessages.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/BindingsMessages.java Fri Oct 27 11:00:05 2006
@@ -17,16 +17,15 @@
import org.apache.tapestry.Binding;
import org.apache.tapestry.Messages;
import org.apache.tapestry.internal.MessagesImpl;
-import org.apache.tapestry.internal.annotations.Utility;
-/**
- *
- */
-@Utility
final class BindingsMessages
{
private static final Messages MESSAGES = MessagesImpl.forClass(BindingsMessages.class);
+ private BindingsMessages()
+ {
+ }
+
static String bindingIsReadOnly(Binding binding)
{
return MESSAGES.format("binding-is-read-only", binding);
@@ -39,7 +38,11 @@
static String noSuchProperty(Class targetClass, String propertyName, String propertyPath)
{
- return MESSAGES.format("no-such-property", targetClass.getName(), propertyName, propertyPath);
+ return MESSAGES.format(
+ "no-such-property",
+ targetClass.getName(),
+ propertyName,
+ propertyPath);
}
static String writeOnlyProperty(String propertyName, Class clazz, String propertyPath)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBinding.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBinding.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBinding.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBinding.java Fri Oct 27 11:00:05 2006
@@ -15,14 +15,10 @@
package org.apache.tapestry.internal.bindings;
import org.apache.tapestry.Location;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
/**
* Binding type for literal string values, usually supplied in-line in the component template.
- *
- *
*/
-@SuppressNullCheck
public class LiteralBinding extends AbstractBinding
{
private final String _description;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBindingFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBindingFactory.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBindingFactory.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/LiteralBindingFactory.java Fri Oct 27 11:00:05 2006
@@ -17,16 +17,13 @@
import org.apache.tapestry.Binding;
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.Location;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.services.BindingFactory;
/**
* Binding factory that treats the expression as a literal string. The simplest form of binding.
*
- *
* @see org.apache.tapestry.internal.bindings.LiteralBinding
*/
-@SuppressNullCheck
public class LiteralBindingFactory implements BindingFactory
{
public Binding newBinding(String description, ComponentResources component, String expression,
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/PropBindingFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/PropBindingFactory.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/PropBindingFactory.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/bindings/PropBindingFactory.java Fri Oct 27 11:00:05 2006
@@ -26,7 +26,6 @@
import org.apache.tapestry.Location;
import org.apache.tapestry.events.InvalidationListener;
import org.apache.tapestry.internal.TapestryException;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.ioc.services.ClassFab;
import org.apache.tapestry.ioc.services.ClassFabUtils;
import org.apache.tapestry.ioc.services.ClassFactory;
@@ -40,10 +39,7 @@
* Binding factory for reading and updating JavaBean properties. Uses
* {@link org.apache.tapestry.ioc.services.PropertyAccess} to analyze the properties, and generates
* a binding class using the component {@link org.apache.tapestry.ioc.services.ClassFactory}.
- *
- *
*/
-@SuppressNullCheck
public class PropBindingFactory implements BindingFactory, InvalidationListener
{
private final PropertyAccess _access;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/DecoratorDefImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/DecoratorDefImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/DecoratorDefImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/DecoratorDefImpl.java Fri Oct 27 11:00:05 2006
@@ -20,7 +20,6 @@
import java.lang.reflect.Method;
import java.util.List;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.util.InternalUtils;
import org.apache.tapestry.ioc.IdMatcher;
import org.apache.tapestry.ioc.ModuleBuilderSource;
@@ -44,7 +43,6 @@
private final String[] _constraints;
- @SuppressNullCheck
public DecoratorDefImpl(String decoratorId, Method decoratorMethod, String[] patterns,
String[] constraints)
{
@@ -80,7 +78,8 @@
return _decoratorId;
}
- public ServiceDecorator createDecorator(ModuleBuilderSource moduleBuilderSource, ServiceResources resources)
+ public ServiceDecorator createDecorator(ModuleBuilderSource moduleBuilderSource,
+ ServiceResources resources)
{
return new ServiceDecoratorImpl(_decoratorMethod, moduleBuilderSource, resources);
}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCMessages.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCMessages.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCMessages.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCMessages.java Fri Oct 27 11:00:05 2006
@@ -26,17 +26,16 @@
import org.apache.tapestry.Messages;
import org.apache.tapestry.internal.MessagesImpl;
-import org.apache.tapestry.internal.annotations.Utility;
import org.apache.tapestry.ioc.def.ContributionDef;
import org.apache.tapestry.ioc.def.ServiceDef;
-/**
- *
- */
-@Utility
public final class IOCMessages
{
private static final Messages MESSAGES = MessagesImpl.forClass(IOCMessages.class);
+
+ private IOCMessages()
+ {
+ }
static String buildMethodConflict(Method conflict, String existing)
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCProxyUtilities.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCProxyUtilities.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCProxyUtilities.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/IOCProxyUtilities.java Fri Oct 27 11:00:05 2006
@@ -14,14 +14,15 @@
package org.apache.tapestry.internal.ioc;
-import org.apache.tapestry.internal.annotations.Utility;
-
/**
* Contains static methods used by proxies generated at runtime.
*/
-@Utility
public final class IOCProxyUtilities
{
+ private IOCProxyUtilities()
+ {
+ }
+
/**
* Invoked by a proxy when the registry has shutdown.
*
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ModuleImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ModuleImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ModuleImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ModuleImpl.java Fri Oct 27 11:00:05 2006
@@ -30,7 +30,6 @@
import java.util.Set;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.util.InternalUtils;
import org.apache.tapestry.ioc.ObjectCreator;
import org.apache.tapestry.ioc.ServiceBuilderResources;
@@ -78,7 +77,6 @@
/** Keyed on fully qualified service id; values are instantiated services (proxies). */
private final Map<String, Object> _services = newMap();
- @SuppressNullCheck
public <T> T getService(String serviceId, Class<T> serviceInterface, Module module)
{
notBlank(serviceId, "serviceId");
@@ -135,7 +133,6 @@
return _registry.findDecoratorsForService(sd);
}
- @SuppressNullCheck
public Collection<String> findServiceIdsForInterface(Class serviceInterface, Module module)
{
notNull(serviceInterface, "serviceInterface");
@@ -393,10 +390,8 @@
// Check to see if the registry has shutdown. The registryShutdown() method
// throws IllegalStateException.
- builder.addln(
- "if (_shutdown) %s.registryShutdown(\"%s\");",
- IOCProxyUtilities.class.getName(),
- serviceId);
+ builder.addln("if (_shutdown) %s.registryShutdown(\"%s\");", IOCProxyUtilities.class
+ .getName(), serviceId);
// We can release the creator after invoking it, we only create the service once.
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/RegistryImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/RegistryImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/RegistryImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/RegistryImpl.java Fri Oct 27 11:00:05 2006
@@ -25,11 +25,10 @@
import java.util.Set;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.OneShot;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.ioc.services.ClassFactoryImpl;
import org.apache.tapestry.internal.ioc.services.RegistryShutdownHubImpl;
import org.apache.tapestry.internal.ioc.services.ThreadCleanupHubImpl;
+import org.apache.tapestry.internal.util.OneShotLock;
import org.apache.tapestry.internal.util.Orderer;
import org.apache.tapestry.ioc.Configuration;
import org.apache.tapestry.ioc.IOCConstants;
@@ -55,10 +54,6 @@
import org.apache.tapestry.ioc.services.ThreadCleanupHub;
import org.apache.tapestry.util.CollectionFactory;
-/**
- *
- */
-@OneShot
public class RegistryImpl implements Registry, InternalRegistry
{
private static final String REGISTRY_SHUTDOWN_HUB_SERVICE_ID = "tapestry.ioc.RegistryShutdownHub";
@@ -73,6 +68,8 @@
static final String LOG_SOURCE_SERVICE_ID = "tapestry.ioc.LogSource";
+ private final OneShotLock _lock = new OneShotLock();
+
private final Map<String, Object> _builtinServices = newMap();
private final Map<String, Class> _builtinTypes = newMap();
@@ -90,7 +87,6 @@
private final ClassFactory _classFactory;
- @SuppressNullCheck
public static final class OrderedConfigurationToOrdererAdaptor<T> implements
OrderedConfiguration<T>
{
@@ -158,16 +154,18 @@
_builtinServices.put(serviceId, service);
}
- @OneShot.Lockdown
public synchronized void shutdown()
{
+ _lock.lock();
+
_registryShutdownHub.fireRegistryDidShutdown();
}
/** Internal access, usualy from another module. */
- @SuppressNullCheck
public <T> T getService(String serviceId, Class<T> serviceInterface, Module module)
{
+ _lock.check();
+
T result = checkForBuiltinService(serviceId, serviceInterface);
if (result != null)
return result;
@@ -203,11 +201,15 @@
*/
public <T> T getService(String serviceId, Class<T> serviceInterface)
{
+ _lock.check();
+
return getService(serviceId, serviceInterface, null);
}
public void cleanupThread()
{
+ _lock.check();
+
_cleanupHub.cleanup();
}
@@ -225,6 +227,8 @@
public <T> Collection<T> getUnorderedConfiguration(ServiceDef serviceDef, Class<T> objectType)
{
+ _lock.check();
+
final Collection<T> result = newList();
Configuration<T> configuration = new Configuration<T>()
@@ -245,6 +249,8 @@
public <T> List<T> getOrderedConfiguration(ServiceDef serviceDef, Class<T> objectType)
{
+ _lock.check();
+
Log log = getLog(serviceDef.getServiceId());
final Orderer<T> orderer = new Orderer<T>(log);
@@ -262,11 +268,12 @@
public <K, V> Map<K, V> getMappedConfiguration(ServiceDef serviceDef, Class<K> keyType,
Class<V> objectType)
{
+ _lock.check();
+
final Map<K, V> result = newMap();
MappedConfiguration<K, V> configuration = new MappedConfiguration<K, V>()
{
- @SuppressNullCheck
public void add(K key, V value)
{
result.put(key, value);
@@ -383,9 +390,10 @@
}
// Seems like something that could be cached.
- @SuppressNullCheck
public <T> T getService(Class<T> serviceInterface, Module module)
{
+ _lock.check();
+
List<String> ids = CollectionFactory.newList();
for (Module m : _modules.values())
@@ -416,11 +424,15 @@
public <T> T getService(Class<T> serviceInterface)
{
+ _lock.check();
+
return getService(serviceInterface, null);
}
public ServiceLifecycle getServiceLifecycle(String lifecycle)
{
+ _lock.check();
+
ServiceLifecycle result = _lifecycles.get(lifecycle);
if (result == null)
@@ -439,6 +451,8 @@
public List<ServiceDecorator> findDecoratorsForService(ServiceDef serviceDef)
{
+ _lock.check();
+
Log log = getLog(serviceDef.getServiceId());
Orderer<DecoratorDef> orderer = new Orderer<DecoratorDef>(log);
@@ -521,21 +535,29 @@
public Log getLog(Class clazz)
{
+ _lock.check();
+
return _logSource.getLog(clazz);
}
public Log getLog(String name)
{
+ _lock.check();
+
return _logSource.getLog(name);
}
public ClassFab newClass(Class serviceInterface)
{
+ _lock.check();
+
return _classFactory.newClass(serviceInterface);
}
public <T> T getObject(String reference, Class<T> objectType, ServiceLocator locator)
{
+ _lock.check();
+
ObjectProvider masterProvider = getService(
IOCConstants.MASTER_OBJECT_PROVIDER_SERVICE_ID,
ObjectProvider.class);
@@ -545,12 +567,16 @@
public <T> T getObject(String reference, Class<T> objectType)
{
+ _lock.check();
+
// Concerened about this causing potential endless loops.
return getObject(reference, objectType, this);
}
public void addRegistryShutdownListener(RegistryShutdownListener listener)
{
+ _lock.check();
+
_registryShutdownHub.addRegistryShutdownListener(listener);
}
}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingConfigurationWrapper.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingConfigurationWrapper.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingConfigurationWrapper.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingConfigurationWrapper.java Fri Oct 27 11:00:05 2006
@@ -15,14 +15,11 @@
package org.apache.tapestry.internal.ioc;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.ioc.Configuration;
import org.apache.tapestry.ioc.def.ContributionDef;
/**
* Performs some validation before delegating to another Configuration.
- *
- *
*/
public class ValidatingConfigurationWrapper<T> implements Configuration<T>
{
@@ -48,7 +45,6 @@
_delegate = delegate;
}
- @SuppressNullCheck
public void add(T object)
{
if (object == null)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingMappedConfigurationWrapper.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingMappedConfigurationWrapper.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingMappedConfigurationWrapper.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingMappedConfigurationWrapper.java Fri Oct 27 11:00:05 2006
@@ -17,7 +17,6 @@
import java.util.Map;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.ioc.MappedConfiguration;
import org.apache.tapestry.ioc.def.ContributionDef;
@@ -31,11 +30,9 @@
* <p>
* When a warning is logged, the key/value pair is not added to the delegate.
*
- *
* @param <K>
* @param <V>
*/
-@SuppressNullCheck
public class ValidatingMappedConfigurationWrapper<K, V> implements MappedConfiguration<K, V>
{
private final String _serviceId;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingOrderedConfigurationWrapper.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingOrderedConfigurationWrapper.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingOrderedConfigurationWrapper.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/ValidatingOrderedConfigurationWrapper.java Fri Oct 27 11:00:05 2006
@@ -17,7 +17,6 @@
import static org.apache.tapestry.ioc.IOCUtilities.toQualifiedId;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.ioc.OrderedConfiguration;
import org.apache.tapestry.ioc.def.ContributionDef;
@@ -28,7 +27,6 @@
* ensures that incorrect values contributed in don't screw up the
* {@link org.apache.tapestry.internal.util.Orderer} (and generate a bunch of error messages there).
*
- *
* @param <T>
*/
public class ValidatingOrderedConfigurationWrapper<T> implements OrderedConfiguration<T>
@@ -58,7 +56,6 @@
_delegate = delegate;
}
- @SuppressNullCheck
public void add(String id, T object, String... constraints)
{
_delegate.add(toQualifiedId(_moduleId, id), validVersionOf(object), constraints);
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/AbstractFab.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/AbstractFab.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/AbstractFab.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/AbstractFab.java Fri Oct 27 11:00:05 2006
@@ -21,19 +21,17 @@
import javassist.CtClass;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.OneShot;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
+import org.apache.tapestry.internal.util.OneShotLock;
/**
* Base class for {@link org.apache.tapestry.internal.ioc.services.ClassFabImpl}. This code is a
* fork from HiveMind; it is kept seperate from ClassFabImpl in case we want to re-introduce the
* idea of an InterfaceFab.
- *
- *
*/
-@OneShot
public class AbstractFab
{
+ protected final OneShotLock _lock = new OneShotLock();
+
private final CtClass _ctClass;
private final CtClassSource _source;
@@ -54,6 +52,8 @@
public void addInterface(Class interfaceClass)
{
+ _lock.check();
+
CtClass ctInterfaceClass = _source.getCtClass(interfaceClass);
try
@@ -70,7 +70,6 @@
_ctClass.addInterface(ctInterfaceClass);
}
- @SuppressNullCheck
protected CtClass[] convertClasses(Class[] inputClasses)
{
if (inputClasses == null || inputClasses.length == 0)
@@ -102,9 +101,10 @@
return result;
}
- @OneShot.Lockdown
public Class createClass()
{
+ _lock.lock();
+
if (_log.isDebugEnabled())
_log.debug(String.format("Creating class from %s", this));
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFabImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFabImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFabImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFabImpl.java Fri Oct 27 11:00:05 2006
@@ -31,7 +31,6 @@
import javassist.NotFoundException;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.util.InternalUtils;
import org.apache.tapestry.ioc.services.ClassFab;
import org.apache.tapestry.ioc.services.ClassFabUtils;
@@ -141,6 +140,8 @@
public void addField(String name, Class type)
{
+ _lock.check();
+
CtClass ctType = convertClass(type);
try
@@ -162,6 +163,8 @@
public void proxyMethodsToDelegate(Class serviceInterface, String delegateExpression,
String toString)
{
+ _lock.check();
+
addInterface(serviceInterface);
MethodIterator mi = new MethodIterator(serviceInterface);
@@ -183,6 +186,8 @@
public void addToString(String toString)
{
+ _lock.check();
+
MethodSignature sig = new MethodSignature(String.class, "toString", null, null);
// TODO: Very simple quoting here, will break down if the string itself contains
@@ -193,6 +198,8 @@
public void addMethod(int modifiers, MethodSignature ms, String body)
{
+ _lock.check();
+
if (_addedSignatures.contains(ms))
throw new RuntimeException(ServiceMessages.duplicateMethodInClass(ms, this));
@@ -231,6 +238,8 @@
public void addNoOpMethod(MethodSignature signature)
{
+ _lock.check();
+
Class returnType = signature.getReturnType();
if (returnType.equals(void.class))
@@ -250,10 +259,11 @@
addMethod(Modifier.PUBLIC, signature, "return " + value + ";");
}
- @SuppressNullCheck
public void addConstructor(Class[] parameterTypes, Class[] exceptions, String body)
{
Defense.notBlank(body, "body");
+
+ _lock.check();
CtClass[] ctParameters = convertClasses(parameterTypes);
CtClass[] ctExceptions = convertClasses(exceptions);
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFactoryClassPool.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFactoryClassPool.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFactoryClassPool.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassFactoryClassPool.java Fri Oct 27 11:00:05 2006
@@ -24,8 +24,6 @@
import javassist.CtClass;
import javassist.LoaderClassPath;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
-
/**
* Used to ensure that {@link javassist.ClassPool#appendClassPath(javassist.ClassPath)} is invoked
* with a synchronized lock, and also handles tricky class loading issues (caused by the creation of
@@ -64,7 +62,6 @@
* the class loader to add (derived from a loaded class, and may be null for some
* system classes)
*/
- @SuppressNullCheck
public synchronized void addClassLoaderIfNeeded(ClassLoader loader)
{
if (loader == null || loader == _loader || _loaders.contains(loader))
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassPropertyAdapterImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassPropertyAdapterImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassPropertyAdapterImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ClassPropertyAdapterImpl.java Fri Oct 27 11:00:05 2006
@@ -20,7 +20,6 @@
import java.util.List;
import java.util.Map;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.util.InternalUtils;
import org.apache.tapestry.ioc.services.ClassPropertyAdapter;
import org.apache.tapestry.ioc.services.PropertyAdapter;
@@ -64,13 +63,11 @@
return _adapters.get(name);
}
- @SuppressNullCheck
public Object get(Object instance, String propertyName)
{
return adaptorFor(propertyName).get(instance);
}
- @SuppressNullCheck
public void set(Object instance, String propertyName, Object value)
{
adaptorFor(propertyName).set(instance, value);
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ExceptionInfoImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ExceptionInfoImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ExceptionInfoImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ExceptionInfoImpl.java Fri Oct 27 11:00:05 2006
@@ -19,14 +19,9 @@
import java.util.List;
import java.util.Map;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.util.InternalUtils;
import org.apache.tapestry.ioc.services.ExceptionInfo;
-/**
- *
- */
-@SuppressNullCheck
public class ExceptionInfoImpl implements ExceptionInfo
{
private final String _className;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAccessImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAccessImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAccessImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAccessImpl.java Fri Oct 27 11:00:05 2006
@@ -14,41 +14,35 @@
package org.apache.tapestry.internal.ioc.services;
-import static org.apache.tapestry.util.CollectionFactory.newMap;
+import static org.apache.tapestry.util.CollectionFactory.newThreadSafeMap;
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.util.Map;
-import org.apache.tapestry.internal.annotations.Concurrent;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.ioc.services.ClassPropertyAdapter;
import org.apache.tapestry.ioc.services.PropertyAccess;
-/**
- *
- */
-@Concurrent
public class PropertyAccessImpl implements PropertyAccess
{
- private final Map<Class, ClassPropertyAdapter> _adapters = newMap();
+ private final Map<Class, ClassPropertyAdapter> _adapters = newThreadSafeMap();
- @SuppressNullCheck
public Object get(Object instance, String propertyName)
{
return getAdapter(instance).get(instance, propertyName);
}
- @SuppressNullCheck
public void set(Object instance, String propertyName, Object value)
{
getAdapter(instance).set(instance, propertyName, value);
}
- @Concurrent.Write
- public void clearCache()
+ /** Clears the cache of adapters and asks the Introspector to clear its cache. */
+ public synchronized void clearCache()
{
_adapters.clear();
+
+ Introspector.flushCaches();
}
public ClassPropertyAdapter getAdapter(Object instance)
@@ -56,13 +50,15 @@
return getAdapter(instance.getClass());
}
- @Concurrent.Read
public ClassPropertyAdapter getAdapter(Class forClass)
{
ClassPropertyAdapter result = _adapters.get(forClass);
if (result == null)
+ {
result = buildAdapter(forClass);
+ _adapters.put(forClass, result);
+ }
return result;
}
@@ -72,8 +68,7 @@
* adapter cache, but also serializes access to the Java Beans Introspector, which is not thread
* safe.
*/
- @Concurrent.Write
- private ClassPropertyAdapter buildAdapter(Class forClass)
+ private synchronized ClassPropertyAdapter buildAdapter(Class forClass)
{
// In some race conditions, we may hit this method for the same class multiple times.
// We just let it happen, replacing the old ClassPropertyAdapter with a new one.
@@ -82,12 +77,7 @@
{
BeanInfo info = Introspector.getBeanInfo(forClass);
- ClassPropertyAdapter adapter = new ClassPropertyAdapterImpl(forClass, info
- .getPropertyDescriptors());
-
- _adapters.put(forClass, adapter);
-
- return adapter;
+ return new ClassPropertyAdapterImpl(forClass, info.getPropertyDescriptors());
}
catch (Exception ex)
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAdapterImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAdapterImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAdapterImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/PropertyAdapterImpl.java Fri Oct 27 11:00:05 2006
@@ -18,11 +18,9 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.ioc.services.PropertyAdapter;
import org.apache.tapestry.util.Defense;
-@SuppressNullCheck
public class PropertyAdapterImpl implements PropertyAdapter
{
private final String _name;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/RegistryShutdownHubImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/RegistryShutdownHubImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/RegistryShutdownHubImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/RegistryShutdownHubImpl.java Fri Oct 27 11:00:05 2006
@@ -19,16 +19,14 @@
import java.util.List;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.OneShot;
+import org.apache.tapestry.internal.util.OneShotLock;
import org.apache.tapestry.ioc.services.RegistryShutdownHub;
import org.apache.tapestry.ioc.services.RegistryShutdownListener;
-/**
- *
- */
-@OneShot
public class RegistryShutdownHubImpl implements RegistryShutdownHub
{
+ private final OneShotLock _lock = new OneShotLock();
+
private final Log _log;
private final List<RegistryShutdownListener> _listeners = newThreadSafeList();
@@ -40,6 +38,8 @@
public void addRegistryShutdownListener(RegistryShutdownListener listener)
{
+ _lock.check();
+
_listeners.add(listener);
}
@@ -50,9 +50,10 @@
* @param log
* used if any listener throws an exception
*/
- @OneShot.Lockdown
public void fireRegistryDidShutdown()
{
+ _lock.lock();
+
for (RegistryShutdownListener l : _listeners)
{
try
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceLogger.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceLogger.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceLogger.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceLogger.java Fri Oct 27 11:00:05 2006
@@ -19,15 +19,12 @@
import java.util.Iterator;
import org.apache.commons.logging.Log;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.ioc.services.ExceptionTracker;
import org.apache.tapestry.util.Defense;
/**
* Used by {@link org.apache.tapestry.internal.ioc.services.LoggingDecoratorImpl} to delegate out
* logging behavior to a seperate object (helps ensure no naming conflicts).
- *
- *
*/
public final class ServiceLogger
{
@@ -148,7 +145,6 @@
* @param result
* the return value for the method invocation
*/
- @SuppressNullCheck
public void exit(String name, Object result)
{
Defense.notNull(name, "name");
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceMessages.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceMessages.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceMessages.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/ServiceMessages.java Fri Oct 27 11:00:05 2006
@@ -18,17 +18,16 @@
import org.apache.tapestry.Messages;
import org.apache.tapestry.internal.MessagesImpl;
-import org.apache.tapestry.internal.annotations.Utility;
import org.apache.tapestry.ioc.services.MethodSignature;
import org.apache.tapestry.ioc.services.ThreadCleanupListener;
-/**
- *
- */
-@Utility
final class ServiceMessages
{
private final static Messages MESSAGES = MessagesImpl.forClass(ServiceMessages.class);
+
+ private ServiceMessages()
+ {
+ }
static String unableToAddMethod(MethodSignature signature, CtClass ctClass, Throwable cause)
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/TypeCoercerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/TypeCoercerImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/TypeCoercerImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/ioc/services/TypeCoercerImpl.java Fri Oct 27 11:00:05 2006
@@ -26,7 +26,6 @@
import java.util.Map;
import java.util.Set;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.services.CompoundCoercion;
import org.apache.tapestry.internal.util.InheritanceSearch;
import org.apache.tapestry.internal.util.InternalUtils;
@@ -114,7 +113,6 @@
}
@SuppressWarnings("unchecked")
- @SuppressNullCheck
public Object coerce(Object input, Class targetType)
{
Defense.notNull(targetType, "targetType");
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/ModelMessages.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/ModelMessages.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/ModelMessages.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/ModelMessages.java Fri Oct 27 11:00:05 2006
@@ -16,15 +16,14 @@
import org.apache.tapestry.Messages;
import org.apache.tapestry.internal.MessagesImpl;
-import org.apache.tapestry.internal.annotations.Utility;
-/**
- *
- */
-@Utility
class ModelMessages
{
private final static Messages MESSAGES = MessagesImpl.forClass(ModelMessages.class);
+
+ private ModelMessages()
+ {
+ }
static String duplicateParameter(String parameterName, String componentName)
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/model/MutableComponentModelImpl.java Fri Oct 27 11:00:05 2006
@@ -23,7 +23,6 @@
import org.apache.commons.logging.Log;
import org.apache.tapestry.Resource;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.internal.util.InternalUtils;
import org.apache.tapestry.model.ComponentModel;
import org.apache.tapestry.model.EmbeddedComponentModel;
@@ -57,7 +56,6 @@
private List<String> _mixinClassNames;
- @SuppressNullCheck
public MutableComponentModelImpl(String componentClassName, Log log, Resource baseResource,
ComponentModel parentModel)
{
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/EndElementToken.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/EndElementToken.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/EndElementToken.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/EndElementToken.java Fri Oct 27 11:00:05 2006
@@ -15,14 +15,10 @@
package org.apache.tapestry.internal.parser;
import org.apache.tapestry.Location;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
/**
* Ends a previously started element (including components, parameters, etc.).
- *
- *
*/
-@SuppressNullCheck
public class EndElementToken extends TemplateToken
{
public EndElementToken(Location location)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/StartComponentToken.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/StartComponentToken.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/StartComponentToken.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/parser/StartComponentToken.java Fri Oct 27 11:00:05 2006
@@ -15,7 +15,6 @@
package org.apache.tapestry.internal.parser;
import org.apache.tapestry.Location;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
/**
* The start element of a component within the template. Will be followed by a series of
@@ -23,7 +22,6 @@
* and type), and eventually will be balanced by an
* {@link org.apache.tapestry.internal.parser.EndElementToken}.
*/
-@SuppressNullCheck
public class StartComponentToken extends TemplateToken
{
private final String _id;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/BindingSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/BindingSourceImpl.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/BindingSourceImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/BindingSourceImpl.java Fri Oct 27 11:00:05 2006
@@ -20,15 +20,10 @@
import org.apache.tapestry.ComponentResources;
import org.apache.tapestry.Location;
import org.apache.tapestry.internal.TapestryException;
-import org.apache.tapestry.internal.annotations.SuppressNullCheck;
import org.apache.tapestry.services.BindingFactory;
import org.apache.tapestry.services.BindingSource;
import org.apache.tapestry.util.Defense;
-/**
- *
- */
-@SuppressNullCheck
public class BindingSourceImpl implements BindingSource
{
private final Map<String, BindingFactory> _factories;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CheckForUpdatesFilter.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CheckForUpdatesFilter.java?view=diff&rev=468481&r1=468480&r2=468481
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CheckForUpdatesFilter.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CheckForUpdatesFilter.java Fri Oct 27 11:00:05 2006
@@ -16,7 +16,9 @@
import java.io.IOException;
-import org.apache.tapestry.internal.annotations.Concurrent;
+import org.apache.tapestry.internal.util.ConcurrentBarrier;
+import org.apache.tapestry.internal.util.Holder;
+import org.apache.tapestry.internal.util.Invokable;
import org.apache.tapestry.services.WebRequest;
import org.apache.tapestry.services.WebRequestFilter;
import org.apache.tapestry.services.WebRequestHandler;
@@ -27,10 +29,9 @@
* {@link org.apache.tapestry.internal.services.UpdateListenerHub} to check for updates to files.
* The UpdateListenerHub is invoked from a write method, meaning that when it is called, all other
* threads will be blocked.
- *
- *
+ * <p>
+ * TODO: Allow the check interval to be configurable, to reflect a production environment
*/
-@Concurrent
public class CheckForUpdatesFilter implements WebRequestFilter
{
private long _lastCheck = 0;
@@ -39,37 +40,70 @@
private final UpdateListenerHub _updateListenerHub;
+ private final ConcurrentBarrier _barrier = new ConcurrentBarrier();
+
public CheckForUpdatesFilter(UpdateListenerHub updateListenerHub)
{
_updateListenerHub = updateListenerHub;
}
- @Concurrent.Read
- public boolean service(WebRequest request, WebResponse response, WebRequestHandler handler)
- throws IOException
+ public boolean service(final WebRequest request, final WebResponse response,
+ final WebRequestHandler handler) throws IOException
{
- if (System.currentTimeMillis() - _lastCheck >= _checkInterval)
- runCheck();
+ final Holder<IOException> exceptionHolder = new Holder<IOException>();
- return handler.service(request, response);
- }
+ Invokable<Boolean> invokable = new Invokable<Boolean>()
+ {
+ public Boolean invoke()
+ {
+ if (System.currentTimeMillis() - _lastCheck >= _checkInterval)
+ runCheck();
+
+ try
+ {
+ return handler.service(request, response);
+ }
+ catch (IOException ex)
+ {
+ exceptionHolder.put(ex);
+ return false;
+ }
+ }
+ };
- /** The write lock ensures that only a single thread is active, all others are blocked. */
- @Concurrent.Write
- private void runCheck()
- {
- // On a race condition, multiple threads may hit this method briefly. If we've already
- // done a check, don't run it again.
+ boolean result = _barrier.withRead(invokable);
- if (System.currentTimeMillis() - _lastCheck < _checkInterval)
- return;
+ IOException ex = exceptionHolder.get();
- // Fire the update event which will force a number of checks and then corresponding
- // invalidation events.
+ if (ex != null)
+ throw ex;
- _updateListenerHub.fireUpdateEvent();
+ return result;
+ }
+
+ private void runCheck()
+ {
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ // On a race condition, multiple threads may hit this method briefly. If we've
+ // already done a check, don't run it again.
+
+ if (System.currentTimeMillis() - _lastCheck >= _checkInterval)
+ {
+
+ // Fire the update event which will force a number of checks and then
+ // corresponding invalidation events.
+
+ _updateListenerHub.fireUpdateEvent();
+
+ _lastCheck = System.currentTimeMillis();
+ }
+ }
+ };
- _lastCheck = System.currentTimeMillis();
+ _barrier.withWrite(runnable);
}
}