You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2006/11/21 08:46:04 UTC
svn commit: r477546 [1/2] - in /tapestry/tapestry5/tapestry-ioc/trunk:
.settings/ src/main/java/org/apache/tapestry/ioc/
src/main/java/org/apache/tapestry/ioc/annotations/
src/main/java/org/apache/tapestry/ioc/def/
src/main/java/org/apache/tapestry/ioc...
Author: hlship
Date: Mon Nov 20 23:45:58 2006
New Revision: 477546
URL: http://svn.apache.org/viewvc?view=rev&rev=477546
Log:
Still kind of midway through this extraction of code into tapestry-ioc.
Added:
tapestry/tapestry5/tapestry-ioc/trunk/.settings/
tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.core.prefs
tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.ui.prefs
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/BaseLocatable.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/BaseLocatable.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/Configuration.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/Configuration.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/IOCConstants.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/IOCConstants.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/IOCUtilities.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/IOCUtilities.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/IdMatcher.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/IdMatcher.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/Locatable.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/Locatable.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/Location.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/Location.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/LogSource.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/LogSource.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/MappedConfiguration.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/MappedConfiguration.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/MessageFormatter.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/MessageFormatter.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/Messages.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/Messages.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/ModuleBuilderSource.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/ModuleBuilderSource.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/ObjectCreator.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/ObjectCreator.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/ObjectProvider.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/ObjectProvider.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/Orderable.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/Orderable.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/OrderedConfiguration.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/OrderedConfiguration.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/Registry.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/Registry.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/RegistryBuilder.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/RegistryBuilder.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/Resource.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/Resource.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/ServiceBuilderResources.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/ServiceBuilderResources.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/ServiceDecorator.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/ServiceDecorator.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/ServiceLifecycle.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/ServiceLifecycle.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/ServiceLocator.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/ServiceLocator.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/ServiceResources.java
- copied unchanged from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/ServiceResources.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/annotations/
- copied from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/annotations/
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/def/
- copied from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/def/
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ConfigurationType.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ConfigurationType.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ContributionDefImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ContributionDefImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/DecoratorDefImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/DecoratorDefImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/DefaultModuleDefImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/DefaultModuleDefImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/EagerLoadServiceProxy.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/EagerLoadServiceProxy.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/GlobPatternMatcher.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/GlobPatternMatcher.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java
- copied, changed from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCProxyUtilities.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCProxyUtilities.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/IdMatcherImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/IdMatcherImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/InterceptorStackBuilder.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/InterceptorStackBuilder.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/InternalRegistry.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/InternalRegistry.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/LifecycleWrappedServiceCreator.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/LifecycleWrappedServiceCreator.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/LogSourceImpl.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/LogSourceImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/MatchType.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/MatchType.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/Module.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/Module.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ModuleImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ModuleImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/OneShotServiceCreator.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/OneShotServiceCreator.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/OrIdMatcher.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/OrIdMatcher.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/RegistryImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/RegistryImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceBuilderMethodInvoker.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceBuilderMethodInvoker.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceDecoratorImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceDecoratorImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceDefImpl.java
- copied unchanged from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceDefImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceLocatorImpl.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceLocatorImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceResourcesImpl.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ServiceResourcesImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/SingletonServiceLifecycle.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/SingletonServiceLifecycle.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ValidatingConfigurationWrapper.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ValidatingConfigurationWrapper.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ValidatingMappedConfigurationWrapper.java
- copied unchanged from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ValidatingMappedConfigurationWrapper.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/ValidatingOrderedConfigurationWrapper.java
- copied unchanged from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/ValidatingOrderedConfigurationWrapper.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/
- copied from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/AbstractFab.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/AbstractFab.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/BridgeBuilder.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/BridgeBuilder.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ChainBuilderImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ChainBuilderImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ClassFabImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ClassFabImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ClassFactoryClassPool.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ClassFactoryClassPool.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ClassPropertyAdapterImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ClassPropertyAdapterImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/CompoundCoercion.java
- copied, changed from r477464, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CompoundCoercion.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/DefaultImplementationBuilderImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/DefaultImplementationBuilderImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ExceptionAnalyzerImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ExceptionAnalyzerImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ExceptionInfoImpl.java
- copied unchanged from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ExceptionInfoImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ExceptionTrackerImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ExceptionTrackerImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/LoggingDecoratorImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/LoggingDecoratorImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/PropertyAccessImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/PropertyAccessImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/PropertyAdapterImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/PropertyAdapterImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/RegistryShutdownHubImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/RegistryShutdownHubImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ServiceLogger.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ServiceLogger.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/StrategyBuilderImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/StrategyBuilderImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ThreadCleanupHubImpl.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ThreadCleanupHubImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java
- copied, changed from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/
- copied from r477471, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/ClasspathResource.java
- copied unchanged from r477478, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/ClasspathResource.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/CollectionFactory.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/CollectionFactory.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/ConcurrentBarrier.java
- copied unchanged from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/ConcurrentBarrier.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/Defense.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/Defense.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/DependencyNode.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/DependencyNode.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/IdAllocator.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/IdAllocator.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/InheritanceSearch.java
- copied, changed from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/InheritanceSearch.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/InternalUtils.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/InternalUtils.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/Invokable.java
- copied unchanged from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/Invokable.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/LocalizedNameGenerator.java
- copied unchanged from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/LocalizedNameGenerator.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/LocationImpl.java
- copied, changed from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/LocationImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java
- copied, changed from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessageFormatterImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java
- copied, changed from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/OneShotLock.java
- copied unchanged from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/OneShotLock.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/Orderer.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/Orderer.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/TapestryException.java
- copied, changed from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java
- copied, changed from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/services/
- copied from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/services/ClassFabUtils.java
- copied, changed from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/ClassFabUtils.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/services/MethodIterator.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/MethodIterator.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/services/MethodSignature.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/MethodSignature.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/services/StrategyBuilder.java
- copied unchanged from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/StrategyBuilder.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java
- copied, changed from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/test/
- copied from r477478, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/test/
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/util/
- copied from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/util/
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/util/
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/util/Bar.java
- copied, changed from r477464, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/Bar.java
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/util/BarImpl.java
- copied, changed from r477464, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/BarImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/util/Foo.java
- copied, changed from r477464, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/Foo.java
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/util/FooBar.java
- copied, changed from r477464, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/FooBar.java
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/util/FooBarImpl.java
- copied, changed from r477464, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/FooBarImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/util/FooImpl.java
- copied, changed from r477464, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/FooImpl.java
tapestry/tapestry5/tapestry-ioc/trunk/src/test/java/org/apache/tapestry/ioc/internal/util/InheritanceSearchTest.java
- copied, changed from r477483, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/InheritanceSearchTest.java
Modified:
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ServiceMessages.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/util/StrategyRegistry.java
tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/util/UtilMessages.java
Added: tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.core.prefs?view=auto&rev=477546
==============================================================================
--- tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.core.prefs (added)
+++ tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.core.prefs Mon Nov 20 23:45:58 2006
@@ -0,0 +1,256 @@
+#Mon Nov 20 20:08:12 PST 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=_
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=48
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines=true
+org.eclipse.jdt.core.formatter.comment.format_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=100
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=true
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=100
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
Added: tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.ui.prefs
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.ui.prefs?view=auto&rev=477546
==============================================================================
--- tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.ui.prefs (added)
+++ tapestry/tapestry5/tapestry-ioc/trunk/.settings/org.eclipse.jdt.ui.prefs Mon Nov 20 23:45:58 2006
@@ -0,0 +1,10 @@
+#Mon Nov 20 20:08:12 PST 2006
+eclipse.preferences.version=1
+formatter_profile=_Tapestry Project
+formatter_settings_version=10
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=false
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates/>
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java (from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java&r1=477473&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/IOCMessages.java Mon Nov 20 23:45:58 2006
@@ -15,19 +15,19 @@
package org.apache.tapestry.ioc.internal;
import static org.apache.tapestry.ioc.internal.util.InternalUtils.asString;
-import static org.apache.tapestry.ioc.services.ClassFabUtils.getJavaClassName;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.tapestry.internal.MessagesImpl;
+import static org.apache.tapestry.ioc.services.ClassFabUtils.getJavaClassName;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
import org.apache.tapestry.ioc.Messages;
-import org.apache.tapestry.ioc.def.ContributionDef;
-import org.apache.tapestry.ioc.def.ServiceDef;
+import org.apache.tapestry.ioc.def.ContributionDef;
+import org.apache.tapestry.ioc.def.ServiceDef;
+import org.apache.tapestry.ioc.internal.util.MessagesImpl;
public final class IOCMessages
{
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/CompoundCoercion.java (from r477464, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CompoundCoercion.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/CompoundCoercion.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CompoundCoercion.java&r1=477464&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/CompoundCoercion.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/CompoundCoercion.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/CompoundCoercion.java Mon Nov 20 23:45:58 2006
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
+package org.apache.tapestry.ioc.internal.services;
import org.apache.tapestry.ioc.services.Coercion;
Modified: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ServiceMessages.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ServiceMessages.java?view=diff&rev=477546&r1=477471&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ServiceMessages.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/ServiceMessages.java Mon Nov 20 23:45:58 2006
@@ -14,12 +14,12 @@
package org.apache.tapestry.ioc.internal.services;
-import javassist.CtClass;
-
-import org.apache.tapestry.internal.MessagesImpl;
+import javassist.CtClass;
+
import org.apache.tapestry.ioc.Messages;
-import org.apache.tapestry.ioc.services.MethodSignature;
-import org.apache.tapestry.ioc.services.ThreadCleanupListener;
+import org.apache.tapestry.ioc.internal.util.MessagesImpl;
+import org.apache.tapestry.ioc.services.MethodSignature;
+import org.apache.tapestry.ioc.services.ThreadCleanupListener;
final class ServiceMessages
{
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java (from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java&r1=477483&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/services/TypeCoercerImpl.java Mon Nov 20 23:45:58 2006
@@ -12,335 +12,325 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.ioc.internal.services;
-
+package org.apache.tapestry.ioc.internal.services;
+
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newLinkedList;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newList;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newMap;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newSet;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newThreadSafeMap;
-
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tapestry.internal.services.CompoundCoercion;
-import org.apache.tapestry.internal.util.InheritanceSearch;
+
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.tapestry.ioc.internal.util.Defense;
+import org.apache.tapestry.ioc.internal.util.InheritanceSearch;
import org.apache.tapestry.ioc.internal.util.InternalUtils;
-import org.apache.tapestry.ioc.services.Coercion;
-import org.apache.tapestry.ioc.services.CoercionTuple;
-import org.apache.tapestry.ioc.services.TypeCoercer;
-import org.apache.tapestry.services.TransformUtils;
-
-/**
- *
- */
-public class TypeCoercerImpl implements TypeCoercer
-{
- // Read only after constructor
-
- private final Map<Class, List<CoercionTuple>> _sourceTypeToTuple = newMap();
-
- // Access to the cache must be thread safe
-
- private final Map<CacheKey, Coercion> _cache = newThreadSafeMap();
-
- static class CacheKey
- {
- private final Class _sourceClass;
-
- private final Class _targetClass;
-
- CacheKey(final Class sourceClass, final Class targetClass)
- {
- _sourceClass = sourceClass;
- _targetClass = targetClass;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (obj == null)
- return false;
-
- if (!(obj instanceof CacheKey))
- return false;
-
- CacheKey other = (CacheKey) obj;
-
- return _sourceClass.equals(other._sourceClass)
- && _targetClass.equals(other._targetClass);
- }
-
- @Override
- public int hashCode()
- {
- return _sourceClass.hashCode() * 27 % _targetClass.hashCode();
- }
-
- @Override
- public String toString()
- {
- return String.format("CacheKey[%s --> %s]", _sourceClass.getName(), _targetClass
- .getName());
- }
- }
-
- public TypeCoercerImpl(Collection<CoercionTuple> tuples)
- {
- for (CoercionTuple tuple : tuples)
- {
- Class key = tuple.getSourceType();
-
- addTuple(key, tuple);
- }
- }
-
- private void addTuple(Class key, CoercionTuple tuple)
- {
- List<CoercionTuple> list = _sourceTypeToTuple.get(key);
-
- if (list == null)
- {
- list = newList();
- _sourceTypeToTuple.put(key, list);
- }
-
- list.add(tuple);
- }
-
- @SuppressWarnings("unchecked")
- public Object coerce(Object input, Class targetType)
- {
- Defense.notNull(targetType, "targetType");
-
- // Treat null as void in terms of locating a coercion.
-
- Class sourceType = input != null ? input.getClass() : void.class;
-
- // The caller may ask for the value in a primitive type, but the best we can do is the
- // equivalent wrapper type.
-
- Class effectiveTargetType = TransformUtils.getWrapperType(targetType);
-
- // Is a coercion even necessary? Not if the target type is assignable from the
- // input value.
-
- if (effectiveTargetType.isAssignableFrom(sourceType))
- return input;
-
- Coercion coercer = findCoercer(sourceType, effectiveTargetType);
-
- Object result = coercer.coerce(input);
-
- // Double check that the coercer provided a result of the correct type
-
- return effectiveTargetType.cast(result);
- }
-
- private Coercion findCoercer(Class sourceType, Class targetType)
- {
- CacheKey key = new CacheKey(sourceType, targetType);
-
- Coercion result = _cache.get(key);
-
- if (result == null)
- {
- result = findOrCreateCoercer(sourceType, targetType);
- _cache.put(key, result);
- }
-
- return result;
- }
-
- public void clearCache()
- {
- _cache.clear();
- }
-
- /**
- * Here's the real meat; we do a search of the space to find coercions, or a system of
- * coercions, that accomplish the desired coercion.
- * <p>
- * There's <strong>TREMENDOUS</strong> room to improve this algorithm. For example, inheritance
- * lists could be cached. Further, there's probably more ways to early prune the search.
- * However, even with dozens or perhaps hundreds of tuples, I suspect the search will still
- * grind to a conclusion quickly.
- * <p>
- * The order of operations should help ensure that the most efficient tuple chain is located. If
- * you think about how tuples are added to the queue, there are two factors: size (the number of
- * steps in the coercion) and "class distance" (that is, number of steps up the inheritance
- * hiearchy). All the appropriate 1 step coercions will be considered first, in class distance
- * order. Along the way, we'll queue up all the 2 step coercions, again in class distance order.
- * By the time we reach some of those, we'll have begun queing up the 3 step coercions, and so
- * forth, until we run out of input tuples we can use to fabricate multi-step compound
- * coercions, or reach a final response.
- * <p>
- * This does create a good number of short lived temporary objects (the compound tuples), but
- * that's what the GC is really good at.
- *
- * @param sourceType
- * @param targetType
- * @return coercer from sourceType to targetType
- */
- @SuppressWarnings("unchecked")
- private Coercion findOrCreateCoercer(Class sourceType, Class targetType)
- {
- // These are instance variables because this method may be called concurrently.
- // On a true race, we may go to the work of seeking out and/or fabricating
- // a tuple twice, but it's more likely that different threads are looking
- // for different source/target coercions.
-
- Set<CoercionTuple> consideredTuples = newSet();
- LinkedList<CoercionTuple> queue = newLinkedList();
-
- seedQueue(sourceType, consideredTuples, queue);
-
- while (!queue.isEmpty())
- {
- CoercionTuple tuple = queue.removeFirst();
-
- // If the tuple results in a value type that is assignable to the desired target type,
- // we're done! Later, we may add a concept of "cost" (i.e. number of steps) or
- // "quality" (how close is the tuple target type to the desired target type). Cost
- // is currently implicit, as compound tuples are stored deeper in the queue,
- // so simpler coercions will be located earlier.
-
- Class tupleTargetType = tuple.getTargetType();
-
- if (targetType.isAssignableFrom(tupleTargetType))
- return tuple.getCoercion();
-
- // So .. this tuple doesn't get us directly to the target type.
- // However, it *may* get us part of the way. Each of these
- // represents a coercion from the source type to an intermediate type.
- // Now we're going to look for conversions from the intermediate type
- // to some other type.
-
- queueIntermediates(sourceType, tuple, consideredTuples, queue);
- }
-
- // Not found anywhere. Identify the source and target type and a (sorted) list of
- // all the known coercions.
-
- throw new IllegalArgumentException(ServiceMessages.noCoercionFound(
- sourceType,
- targetType,
- buildCoercionCatalog()));
-
- }
-
- /**
- * Builds a string listing all the coercions configured for the type coercer, sorted
- * alphabetically.
- */
- private String buildCoercionCatalog()
- {
- List<String> descriptions = newList();
-
- for (List<CoercionTuple> list : _sourceTypeToTuple.values())
- {
- for (CoercionTuple tuple : list)
- {
- String description = String.format(
- "%s --> %s",
- tuple.getSourceType().getName(),
- tuple.getTargetType().getName());
-
- descriptions.add(description);
- }
- }
-
- return InternalUtils.joinSorted(descriptions);
- }
-
- /** Seeds the pool with the initial set of coercions for the given type. */
- private void seedQueue(Class sourceType, Set<CoercionTuple> consideredTuples,
- LinkedList<CoercionTuple> queue)
- {
- // Work from the source type up looking for tuples
-
- for (Class c : new InheritanceSearch(sourceType))
- {
- List<CoercionTuple> tuples = _sourceTypeToTuple.get(c);
-
- if (tuples == null)
- continue;
-
- for (CoercionTuple tuple : tuples)
- {
- queue.addLast(tuple);
- consideredTuples.add(tuple);
- }
- }
- }
-
- /**
- * Creates and adds to the pool a new set of coercions based on an intermediate tuple. Adds
- * compound coercion tuples to the end of the queue.
- *
- * @param sourceType
- * the source type of the coercion
- * @param intermediateTuple
- * a tuple that converts from the source type to some intermediate type (that is not
- * assignable to the target type)
- * @param consideredTuples
- * set of tuples that have already been added to the pool (directly, or as a compound
- * coercion)
- * @param queue
- * the work queue of tuples
- */
- @SuppressWarnings("unchecked")
- private void queueIntermediates(Class sourceType, CoercionTuple intermediateTuple,
- Set<CoercionTuple> consideredTuples, LinkedList<CoercionTuple> queue)
- {
- Class intermediateType = intermediateTuple.getTargetType();
-
- for (Class c : new InheritanceSearch(intermediateType))
- {
- List<CoercionTuple> tuples = _sourceTypeToTuple.get(c);
-
- if (tuples == null)
- continue;
-
- for (CoercionTuple tuple : tuples)
- {
- if (consideredTuples.contains(tuple))
- continue;
-
- Class newIntermediateType = tuple.getTargetType();
-
- // If this tuple is for coercing from an intermediate type back towards our
- // initial source type, then ignore it. This should only be an optimization,
- // as branches that loop back towards the source type will
- // eventually be considered and discarded.
-
- if (sourceType.isAssignableFrom(newIntermediateType))
- continue;
-
- // The intermediateTuple coercer gets from S --> I1 (an intermediate type).
- // The current tuple's coercer gets us from I2 --> X. where I2 is assignable
- // from I1 (i.e., I2 is a superclass/superinterface of I1) and X is a new
- // intermediate type, hopefully closer to our eventual target type.
-
- Coercion compoundCoercer = new CompoundCoercion(intermediateTuple.getCoercion(),
- tuple.getCoercion());
-
- CoercionTuple compoundTuple = new CoercionTuple(sourceType, newIntermediateType,
- compoundCoercer);
-
- // So, every tuple that is added to the queue can take as input the sourceType.
- // The target type may be another intermdiate type, or may be something
- // assignable to the target type, which will bring the search to a succesful
- // conclusion.
-
- queue.addLast(compoundTuple);
- consideredTuples.add(tuple);
- }
- }
- }
-
-}
+import org.apache.tapestry.ioc.services.Coercion;
+import org.apache.tapestry.ioc.services.CoercionTuple;
+import org.apache.tapestry.ioc.services.TypeCoercer;
+
+/**
+ *
+ */
+public class TypeCoercerImpl implements TypeCoercer
+{
+ // Read only after constructor
+
+ private final Map<Class, List<CoercionTuple>> _sourceTypeToTuple = newMap();
+
+ // Access to the cache must be thread safe
+
+ private final Map<CacheKey, Coercion> _cache = newThreadSafeMap();
+
+ static class CacheKey
+ {
+ private final Class _sourceClass;
+
+ private final Class _targetClass;
+
+ CacheKey(final Class sourceClass, final Class targetClass)
+ {
+ _sourceClass = sourceClass;
+ _targetClass = targetClass;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj == null) return false;
+
+ if (!(obj instanceof CacheKey)) return false;
+
+ CacheKey other = (CacheKey) obj;
+
+ return _sourceClass.equals(other._sourceClass)
+ && _targetClass.equals(other._targetClass);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return _sourceClass.hashCode() * 27 % _targetClass.hashCode();
+ }
+
+ @Override
+ public String toString()
+ {
+ return String.format("CacheKey[%s --> %s]", _sourceClass.getName(), _targetClass
+ .getName());
+ }
+ }
+
+ public TypeCoercerImpl(Collection<CoercionTuple> tuples)
+ {
+ for (CoercionTuple tuple : tuples)
+ {
+ Class key = tuple.getSourceType();
+
+ addTuple(key, tuple);
+ }
+ }
+
+ private void addTuple(Class key, CoercionTuple tuple)
+ {
+ List<CoercionTuple> list = _sourceTypeToTuple.get(key);
+
+ if (list == null)
+ {
+ list = newList();
+ _sourceTypeToTuple.put(key, list);
+ }
+
+ list.add(tuple);
+ }
+
+ @SuppressWarnings("unchecked")
+ public Object coerce(Object input, Class targetType)
+ {
+ Defense.notNull(targetType, "targetType");
+
+ // Treat null as void in terms of locating a coercion.
+
+ Class sourceType = input != null ? input.getClass() : void.class;
+
+ // The caller may ask for the value in a primitive type, but the best we can do is the
+ // equivalent wrapper type.
+
+ Class effectiveTargetType = sourceType; // ClassFabUtils.getWrapperType(targetType);
+
+ // Is a coercion even necessary? Not if the target type is assignable from the
+ // input value.
+
+ if (effectiveTargetType.isAssignableFrom(sourceType)) return input;
+
+ Coercion coercer = findCoercer(sourceType, effectiveTargetType);
+
+ Object result = coercer.coerce(input);
+
+ // Double check that the coercer provided a result of the correct type
+
+ return effectiveTargetType.cast(result);
+ }
+
+ private Coercion findCoercer(Class sourceType, Class targetType)
+ {
+ CacheKey key = new CacheKey(sourceType, targetType);
+
+ Coercion result = _cache.get(key);
+
+ if (result == null)
+ {
+ result = findOrCreateCoercer(sourceType, targetType);
+ _cache.put(key, result);
+ }
+
+ return result;
+ }
+
+ public void clearCache()
+ {
+ _cache.clear();
+ }
+
+ /**
+ * Here's the real meat; we do a search of the space to find coercions, or a system of
+ * coercions, that accomplish the desired coercion.
+ * <p>
+ * There's <strong>TREMENDOUS</strong> room to improve this algorithm. For example, inheritance
+ * lists could be cached. Further, there's probably more ways to early prune the search.
+ * However, even with dozens or perhaps hundreds of tuples, I suspect the search will still
+ * grind to a conclusion quickly.
+ * <p>
+ * The order of operations should help ensure that the most efficient tuple chain is located. If
+ * you think about how tuples are added to the queue, there are two factors: size (the number of
+ * steps in the coercion) and "class distance" (that is, number of steps up the inheritance
+ * hiearchy). All the appropriate 1 step coercions will be considered first, in class distance
+ * order. Along the way, we'll queue up all the 2 step coercions, again in class distance order.
+ * By the time we reach some of those, we'll have begun queing up the 3 step coercions, and so
+ * forth, until we run out of input tuples we can use to fabricate multi-step compound
+ * coercions, or reach a final response.
+ * <p>
+ * This does create a good number of short lived temporary objects (the compound tuples), but
+ * that's what the GC is really good at.
+ *
+ * @param sourceType
+ * @param targetType
+ * @return coercer from sourceType to targetType
+ */
+ @SuppressWarnings("unchecked")
+ private Coercion findOrCreateCoercer(Class sourceType, Class targetType)
+ {
+ // These are instance variables because this method may be called concurrently.
+ // On a true race, we may go to the work of seeking out and/or fabricating
+ // a tuple twice, but it's more likely that different threads are looking
+ // for different source/target coercions.
+
+ Set<CoercionTuple> consideredTuples = newSet();
+ LinkedList<CoercionTuple> queue = newLinkedList();
+
+ seedQueue(sourceType, consideredTuples, queue);
+
+ while (!queue.isEmpty())
+ {
+ CoercionTuple tuple = queue.removeFirst();
+
+ // If the tuple results in a value type that is assignable to the desired target type,
+ // we're done! Later, we may add a concept of "cost" (i.e. number of steps) or
+ // "quality" (how close is the tuple target type to the desired target type). Cost
+ // is currently implicit, as compound tuples are stored deeper in the queue,
+ // so simpler coercions will be located earlier.
+
+ Class tupleTargetType = tuple.getTargetType();
+
+ if (targetType.isAssignableFrom(tupleTargetType)) return tuple.getCoercion();
+
+ // So .. this tuple doesn't get us directly to the target type.
+ // However, it *may* get us part of the way. Each of these
+ // represents a coercion from the source type to an intermediate type.
+ // Now we're going to look for conversions from the intermediate type
+ // to some other type.
+
+ queueIntermediates(sourceType, tuple, consideredTuples, queue);
+ }
+
+ // Not found anywhere. Identify the source and target type and a (sorted) list of
+ // all the known coercions.
+
+ throw new IllegalArgumentException(ServiceMessages.noCoercionFound(
+ sourceType,
+ targetType,
+ buildCoercionCatalog()));
+
+ }
+
+ /**
+ * Builds a string listing all the coercions configured for the type coercer, sorted
+ * alphabetically.
+ */
+ private String buildCoercionCatalog()
+ {
+ List<String> descriptions = newList();
+
+ for (List<CoercionTuple> list : _sourceTypeToTuple.values())
+ {
+ for (CoercionTuple tuple : list)
+ {
+ String description = String.format(
+ "%s --> %s",
+ tuple.getSourceType().getName(),
+ tuple.getTargetType().getName());
+
+ descriptions.add(description);
+ }
+ }
+
+ return InternalUtils.joinSorted(descriptions);
+ }
+
+ /** Seeds the pool with the initial set of coercions for the given type. */
+ private void seedQueue(Class sourceType, Set<CoercionTuple> consideredTuples,
+ LinkedList<CoercionTuple> queue)
+ {
+ // Work from the source type up looking for tuples
+
+ for (Class c : new InheritanceSearch(sourceType))
+ {
+ List<CoercionTuple> tuples = _sourceTypeToTuple.get(c);
+
+ if (tuples == null) continue;
+
+ for (CoercionTuple tuple : tuples)
+ {
+ queue.addLast(tuple);
+ consideredTuples.add(tuple);
+ }
+ }
+ }
+
+ /**
+ * Creates and adds to the pool a new set of coercions based on an intermediate tuple. Adds
+ * compound coercion tuples to the end of the queue.
+ *
+ * @param sourceType
+ * the source type of the coercion
+ * @param intermediateTuple
+ * a tuple that converts from the source type to some intermediate type (that is not
+ * assignable to the target type)
+ * @param consideredTuples
+ * set of tuples that have already been added to the pool (directly, or as a compound
+ * coercion)
+ * @param queue
+ * the work queue of tuples
+ */
+ @SuppressWarnings("unchecked")
+ private void queueIntermediates(Class sourceType, CoercionTuple intermediateTuple,
+ Set<CoercionTuple> consideredTuples, LinkedList<CoercionTuple> queue)
+ {
+ Class intermediateType = intermediateTuple.getTargetType();
+
+ for (Class c : new InheritanceSearch(intermediateType))
+ {
+ List<CoercionTuple> tuples = _sourceTypeToTuple.get(c);
+
+ if (tuples == null) continue;
+
+ for (CoercionTuple tuple : tuples)
+ {
+ if (consideredTuples.contains(tuple)) continue;
+
+ Class newIntermediateType = tuple.getTargetType();
+
+ // If this tuple is for coercing from an intermediate type back towards our
+ // initial source type, then ignore it. This should only be an optimization,
+ // as branches that loop back towards the source type will
+ // eventually be considered and discarded.
+
+ if (sourceType.isAssignableFrom(newIntermediateType)) continue;
+
+ // The intermediateTuple coercer gets from S --> I1 (an intermediate type).
+ // The current tuple's coercer gets us from I2 --> X. where I2 is assignable
+ // from I1 (i.e., I2 is a superclass/superinterface of I1) and X is a new
+ // intermediate type, hopefully closer to our eventual target type.
+
+ Coercion compoundCoercer = new CompoundCoercion(intermediateTuple.getCoercion(),
+ tuple.getCoercion());
+
+ CoercionTuple compoundTuple = new CoercionTuple(sourceType, newIntermediateType,
+ compoundCoercer);
+
+ // So, every tuple that is added to the queue can take as input the sourceType.
+ // The target type may be another intermdiate type, or may be something
+ // assignable to the target type, which will bring the search to a succesful
+ // conclusion.
+
+ queue.addLast(compoundTuple);
+ consideredTuples.add(tuple);
+ }
+ }
+ }
+
+}
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/InheritanceSearch.java (from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/InheritanceSearch.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/InheritanceSearch.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/InheritanceSearch.java&r1=477483&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/InheritanceSearch.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/util/InheritanceSearch.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/InheritanceSearch.java Mon Nov 20 23:45:58 2006
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.util;
+package org.apache.tapestry.ioc.internal.util;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newLinkedList;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newSet;
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/LocationImpl.java (from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/LocationImpl.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/LocationImpl.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/LocationImpl.java&r1=477469&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/LocationImpl.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/LocationImpl.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/LocationImpl.java Mon Nov 20 23:45:58 2006
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal;
+package org.apache.tapestry.ioc.internal.util;
import java.util.Formatter;
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java (from r477469, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessageFormatterImpl.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessageFormatterImpl.java&r1=477469&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessageFormatterImpl.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessageFormatterImpl.java Mon Nov 20 23:45:58 2006
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal;
+package org.apache.tapestry.ioc.internal.util;
import org.apache.tapestry.ioc.MessageFormatter;
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java (from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java&r1=477483&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/MessagesImpl.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/MessagesImpl.java Mon Nov 20 23:45:58 2006
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal;
+package org.apache.tapestry.ioc.internal.util;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newSet;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newThreadSafeMap;
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/TapestryException.java (from r477473, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/TapestryException.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java&r1=477473&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/TapestryException.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/TapestryException.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/TapestryException.java Mon Nov 20 23:45:58 2006
@@ -12,11 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal;
+package org.apache.tapestry.ioc.internal.util;
import org.apache.tapestry.ioc.Locatable;
import org.apache.tapestry.ioc.Location;
-import org.apache.tapestry.ioc.internal.util.InternalUtils;
/**
* Exception class used as a replacement for {@link java.lang.RuntimeException} when the exception
Copied: tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java (from r477483, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java?view=diff&rev=477546&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java&r1=477483&p2=tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java&r2=477546
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java (original)
+++ tapestry/tapestry5/tapestry-ioc/trunk/src/main/java/org/apache/tapestry/ioc/internal/util/UtilMessages.java Mon Nov 20 23:45:58 2006
@@ -14,7 +14,6 @@
package org.apache.tapestry.ioc.internal.util;
-import org.apache.tapestry.internal.MessagesImpl;
import org.apache.tapestry.ioc.Messages;
class UtilMessages