You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by th...@apache.org on 2020/09/12 20:19:10 UTC

[tapestry-5] branch java9modules updated: TAP5-2641: move split package avoidance

This is an automated email from the ASF dual-hosted git repository.

thiagohp pushed a commit to branch java9modules
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git


The following commit(s) were added to refs/heads/java9modules by this push:
     new a72bf8c  TAP5-2641: move split package avoidance
a72bf8c is described below

commit a72bf8c137ff8ee879a09a1cabf622117b81e0fc
Author: Thiago H. de Paula Figueiredo <th...@arsmachina.com.br>
AuthorDate: Sat Sep 12 17:15:30 2020 -0300

    TAP5-2641: move split package avoidance
---
 .../internal/services/BeanModelSourceImpl.java     | 19 +++---
 .../services/PropertyConduitSourceImpl.java        | 67 ++++++++++++++++------
 .../apache/tapestry5/beanmodel}/package-info.java  |  2 +-
 .../beanmodel/services/PropertyConduitSource.java  |  2 +-
 .../commons/internal/services/StringInterner.java  |  2 +-
 .../internal/services/StringInternerImpl.java      |  2 +-
 .../commons/services/InvalidationEventHub.java     |  2 +-
 .../dynamic/DynamicTemplateParserImpl.java         |  4 +-
 .../internal/pageload/PageLoaderImpl.java          |  2 +-
 .../internal/services/CheckForUpdatesFilter.java   |  4 +-
 .../internal/services/ComponentClassCacheImpl.java |  4 +-
 .../services/ComponentInstantiatorSourceImpl.java  | 40 +++++++++----
 .../services/ComponentMessagesSourceImpl.java      |  2 +-
 .../services/ComponentTemplateSourceImpl.java      |  4 +-
 .../internal/services/MessagesSource.java          |  2 +-
 .../internal/services/MetaDataLocatorImpl.java     |  2 +-
 .../PageActivationContextCollectorImpl.java        |  2 +-
 .../internal/services/PageSourceImpl.java          |  2 +-
 .../internal/services/TranslatorSourceImpl.java    |  2 +-
 .../internal/services/ValueEncoderSourceImpl.java  |  2 +-
 .../services/assets/ResourceChangeTracker.java     |  2 +-
 .../services/assets/ResourceChangeTrackerImpl.java |  4 +-
 .../compatibility/DeprecationWarningImpl.java      |  2 +-
 .../apache/tapestry5/modules/TapestryModule.java   |  2 +
 .../ComponentInstantiatorSourceImplTest.java       |  2 +-
 .../java/org/apache/tapestry5/ioc/ReloadAware.java |  2 +-
 .../internal/AbstractReloadableObjectCreator.java  |  2 +-
 .../tapestry5/ioc/internal/RegistryImpl.java       |  2 +-
 .../internal/ReloadableObjectCreatorSource.java    |  2 +-
 .../internal/services/UpdateListenerHubImpl.java   |  4 +-
 .../tapestry5/ioc/modules/TapestryIOCModule.java   |  2 +-
 .../{ => ioc}/services/UpdateListener.java         |  4 +-
 .../{ => ioc}/services/UpdateListenerHub.java      |  4 +-
 .../src/test/groovy/ioc/specs/ReloadSpec.groovy    |  3 +-
 .../ioc/specs/UpdateListenerHubImplSpec.groovy     |  5 +-
 .../annotations}/ComponentClasses.java             |  2 +-
 .../annotations}/ComponentLayer.java               |  2 +-
 37 files changed, 135 insertions(+), 79 deletions(-)

diff --git a/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/internal/services/BeanModelSourceImpl.java b/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/internal/services/BeanModelSourceImpl.java
index 3499708..c542cab 100644
--- a/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/internal/services/BeanModelSourceImpl.java
+++ b/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/internal/services/BeanModelSourceImpl.java
@@ -14,6 +14,11 @@
 
 package org.apache.tapestry5.beanmodel.internal.services;
 
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.Collections;
+import java.util.List;
+
 import org.apache.tapestry5.beaneditor.NonVisual;
 import org.apache.tapestry5.beaneditor.ReorderProperties;
 import org.apache.tapestry5.beanmodel.BeanModel;
@@ -24,15 +29,15 @@ import org.apache.tapestry5.beanmodel.services.PropertyConduitSource;
 import org.apache.tapestry5.commons.Location;
 import org.apache.tapestry5.commons.Messages;
 import org.apache.tapestry5.commons.ObjectLocator;
-import org.apache.tapestry5.commons.services.*;
+import org.apache.tapestry5.commons.services.ClassPropertyAdapter;
+import org.apache.tapestry5.commons.services.DataTypeAnalyzer;
+import org.apache.tapestry5.commons.services.PlasticProxyFactory;
+import org.apache.tapestry5.commons.services.PropertyAccess;
+import org.apache.tapestry5.commons.services.PropertyAdapter;
+import org.apache.tapestry5.commons.services.TypeCoercer;
 import org.apache.tapestry5.commons.util.CollectionFactory;
+import org.apache.tapestry5.ioc.annotations.ComponentLayer;
 import org.apache.tapestry5.ioc.annotations.Primary;
-import org.apache.tapestry5.services.ComponentLayer;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.Collections;
-import java.util.List;
 
 public class BeanModelSourceImpl implements BeanModelSource
 {
diff --git a/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/internal/services/PropertyConduitSourceImpl.java b/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/internal/services/PropertyConduitSourceImpl.java
index 9d85524..46641a8 100644
--- a/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/internal/services/PropertyConduitSourceImpl.java
+++ b/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/internal/services/PropertyConduitSourceImpl.java
@@ -14,43 +14,74 @@
 
 package org.apache.tapestry5.beanmodel.internal.services;
 
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.DECIMAL;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.DEREF;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.FALSE;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.IDENTIFIER;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.INTEGER;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.INVOKE;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.LIST;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.MAP;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.NOT;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.NULL;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.RANGEOP;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.SAFEDEREF;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.STRING;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.THIS;
+import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.TRUE;
+
+import org.apache.tapestry5.ioc.annotations.ComponentLayer;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.antlr.runtime.ANTLRInputStream;
 import org.antlr.runtime.CommonTokenStream;
 import org.antlr.runtime.tree.Tree;
 import org.apache.tapestry5.beanmodel.PropertyConduit;
 import org.apache.tapestry5.beanmodel.PropertyConduit2;
 import org.apache.tapestry5.beanmodel.internal.InternalPropertyConduit;
+import org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionLexer;
+import org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser;
 import org.apache.tapestry5.beanmodel.services.PropertyConduitSource;
 import org.apache.tapestry5.commons.AnnotationProvider;
 import org.apache.tapestry5.commons.internal.NullAnnotationProvider;
 import org.apache.tapestry5.commons.internal.services.StringInterner;
 import org.apache.tapestry5.commons.internal.util.GenericsUtils;
 import org.apache.tapestry5.commons.internal.util.InternalCommonsUtils;
-import org.apache.tapestry5.commons.services.*;
+import org.apache.tapestry5.commons.services.ClassPropertyAdapter;
+import org.apache.tapestry5.commons.services.InvalidationEventHub;
+import org.apache.tapestry5.commons.services.PlasticProxyFactory;
+import org.apache.tapestry5.commons.services.PropertyAccess;
+import org.apache.tapestry5.commons.services.PropertyAdapter;
+import org.apache.tapestry5.commons.services.TypeCoercer;
 import org.apache.tapestry5.commons.util.AvailableValues;
 import org.apache.tapestry5.commons.util.CollectionFactory;
 import org.apache.tapestry5.commons.util.ExceptionUtils;
 import org.apache.tapestry5.commons.util.IntegerRange;
 import org.apache.tapestry5.commons.util.MultiKey;
 import org.apache.tapestry5.commons.util.UnknownValueException;
-import org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionLexer;
-import org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
-import org.apache.tapestry5.plastic.*;
-import org.apache.tapestry5.services.ComponentClasses;
-import org.apache.tapestry5.services.ComponentLayer;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.*;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.apache.tapestry5.beanmodel.internal.antlr.PropertyExpressionParser.*;
+import org.apache.tapestry5.plastic.Condition;
+import org.apache.tapestry5.plastic.InstructionBuilder;
+import org.apache.tapestry5.plastic.InstructionBuilderCallback;
+import org.apache.tapestry5.plastic.MethodDescription;
+import org.apache.tapestry5.plastic.PlasticClass;
+import org.apache.tapestry5.plastic.PlasticClassTransformer;
+import org.apache.tapestry5.plastic.PlasticField;
+import org.apache.tapestry5.plastic.PlasticMethod;
+import org.apache.tapestry5.plastic.PlasticUtils;
 
 public class PropertyConduitSourceImpl implements PropertyConduitSource
 {
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/beaneditor/package-info.java b/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/package-info.java
similarity index 94%
rename from tapestry-core/src/main/java/org/apache/tapestry5/beaneditor/package-info.java
rename to beanmodel/src/main/java/org/apache/tapestry5/beanmodel/package-info.java
index da1d14a..338f52e 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/beaneditor/package-info.java
+++ b/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/package-info.java
@@ -16,4 +16,4 @@
  * Support classes for the {@link org.apache.tapestry5.corelib.components.BeanEditor}
  * component.
  */
-package org.apache.tapestry5.beaneditor;
+package org.apache.tapestry5.beanmodel;
diff --git a/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/services/PropertyConduitSource.java b/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/services/PropertyConduitSource.java
index 8c015cd..2c490a2 100644
--- a/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/services/PropertyConduitSource.java
+++ b/beanmodel/src/main/java/org/apache/tapestry5/beanmodel/services/PropertyConduitSource.java
@@ -27,7 +27,7 @@ public interface PropertyConduitSource
      * a change to component classes is observed.
      *
      * Callers of this method should observe notifications from the {@link org.apache.tapestry5.commons.services.InvalidationEventHub}
-     * for {@link org.apache.tapestry5.services.ComponentClasses} and discard any aquired conduits; failure to do so
+     * for {@link org.apache.tapestry5.annotations.ComponentClasses} and discard any aquired conduits; failure to do so
      * will create memory leaks whenever component classes change (the conduits will keep references to the old classes
      * and classloaders).
      *
diff --git a/commons/src/main/java/org/apache/tapestry5/commons/internal/services/StringInterner.java b/commons/src/main/java/org/apache/tapestry5/commons/internal/services/StringInterner.java
index 37a009c..80dbe5e 100644
--- a/commons/src/main/java/org/apache/tapestry5/commons/internal/services/StringInterner.java
+++ b/commons/src/main/java/org/apache/tapestry5/commons/internal/services/StringInterner.java
@@ -17,7 +17,7 @@ package org.apache.tapestry5.commons.internal.services;
 /**
  * Creates "interned" strings that are unique for the same content. This is used for common description strings,
  * particularly those used by {@link org.apache.tapestry5.Binding} instances.  The internal cache of interned strings id
- * cleared whenever the {@link org.apache.tapestry5.services.ComponentClasses} {@link
+ * cleared whenever the {@link org.apache.tapestry5.annotations.ComponentClasses} {@link
  * org.apache.tapestry5.services.InvalidationEventHub} is invalidated (i.e., when component class files change).
  *
  * @since 5.1.0.0
diff --git a/commons/src/main/java/org/apache/tapestry5/commons/internal/services/StringInternerImpl.java b/commons/src/main/java/org/apache/tapestry5/commons/internal/services/StringInternerImpl.java
index 9d8d541..b699fb3 100644
--- a/commons/src/main/java/org/apache/tapestry5/commons/internal/services/StringInternerImpl.java
+++ b/commons/src/main/java/org/apache/tapestry5/commons/internal/services/StringInternerImpl.java
@@ -18,8 +18,8 @@ import java.util.Map;
 
 import org.apache.tapestry5.commons.services.InvalidationEventHub;
 import org.apache.tapestry5.commons.util.CollectionFactory;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
-import org.apache.tapestry5.services.ComponentClasses;
 
 public class StringInternerImpl implements StringInterner
 {
diff --git a/commons/src/main/java/org/apache/tapestry5/commons/services/InvalidationEventHub.java b/commons/src/main/java/org/apache/tapestry5/commons/services/InvalidationEventHub.java
index 8dace80..89ccd57 100644
--- a/commons/src/main/java/org/apache/tapestry5/commons/services/InvalidationEventHub.java
+++ b/commons/src/main/java/org/apache/tapestry5/commons/services/InvalidationEventHub.java
@@ -25,7 +25,7 @@ import java.util.Map;
  * <dt>component templates
  * <dd>{@link org.apache.tapestry5.services.ComponentTemplates} marker annotation
  * <dt>component classes
- * <dd>{@link org.apache.tapestry5.services.ComponentClasses} marker annotation
+ * <dd>{@link org.apache.tapestry5.annotations.ComponentClasses} marker annotation
  * </dl>
  *
  * Starting in Tapestry 5.3, these services are disabled in production (it does nothing).
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/dynamic/DynamicTemplateParserImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/dynamic/DynamicTemplateParserImpl.java
index 271bf94..08b827a 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/dynamic/DynamicTemplateParserImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/dynamic/DynamicTemplateParserImpl.java
@@ -21,9 +21,9 @@ import org.apache.tapestry5.internal.services.TemplateParser;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
 import org.apache.tapestry5.ioc.services.ClasspathURLConverter;
+import org.apache.tapestry5.ioc.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 import org.apache.tapestry5.services.BindingSource;
-import org.apache.tapestry5.services.UpdateListener;
-import org.apache.tapestry5.services.UpdateListenerHub;
 import org.apache.tapestry5.services.dynamic.DynamicTemplate;
 import org.apache.tapestry5.services.dynamic.DynamicTemplateParser;
 
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/PageLoaderImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/PageLoaderImpl.java
index 7f8ab4e..01cdf6c 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/PageLoaderImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/pageload/PageLoaderImpl.java
@@ -39,6 +39,7 @@ import org.apache.tapestry5.internal.services.PersistentFieldManager;
 import org.apache.tapestry5.internal.structure.*;
 import org.apache.tapestry5.ioc.Invokable;
 import org.apache.tapestry5.ioc.OperationTracker;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.ioc.services.PerthreadManager;
@@ -47,7 +48,6 @@ import org.apache.tapestry5.model.EmbeddedComponentModel;
 import org.apache.tapestry5.runtime.RenderCommand;
 import org.apache.tapestry5.runtime.RenderQueue;
 import org.apache.tapestry5.services.ComponentClassResolver;
-import org.apache.tapestry5.services.ComponentClasses;
 import org.apache.tapestry5.services.ComponentMessages;
 import org.apache.tapestry5.services.ComponentTemplates;
 import org.apache.tapestry5.services.MetaDataLocator;
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/CheckForUpdatesFilter.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/CheckForUpdatesFilter.java
index 5d19908..4ebd7a4 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/CheckForUpdatesFilter.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/CheckForUpdatesFilter.java
@@ -22,17 +22,17 @@ import org.apache.tapestry5.ioc.Invokable;
 import org.apache.tapestry5.ioc.annotations.IntermediateType;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 import org.apache.tapestry5.services.Request;
 import org.apache.tapestry5.services.RequestFilter;
 import org.apache.tapestry5.services.RequestHandler;
 import org.apache.tapestry5.services.Response;
-import org.apache.tapestry5.services.UpdateListenerHub;
 
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
 
 /**
- * Implements a barrier that periodically asks the {@link org.apache.tapestry5.services.UpdateListenerHub} to check for
+ * Implements a barrier that periodically asks the {@link org.apache.tapestry5.ioc.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.
  */
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentClassCacheImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentClassCacheImpl.java
index c51a43e..49655e5 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentClassCacheImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentClassCacheImpl.java
@@ -20,9 +20,9 @@ import org.apache.tapestry5.commons.services.PlasticProxyFactory;
 import org.apache.tapestry5.commons.services.TypeCoercer;
 import org.apache.tapestry5.commons.util.CollectionFactory;
 import org.apache.tapestry5.internal.plastic.PlasticInternalUtils;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
+import org.apache.tapestry5.ioc.annotations.ComponentLayer;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
-import org.apache.tapestry5.services.ComponentClasses;
-import org.apache.tapestry5.services.ComponentLayer;
 
 import java.util.Map;
 
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java
index 76f7752..8dbcaff 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java
@@ -12,9 +12,17 @@
 
 package org.apache.tapestry5.internal.services;
 
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import org.apache.tapestry5.ComponentResources;
 import org.apache.tapestry5.SymbolConstants;
-import org.apache.tapestry5.beanmodel.services.*;
+import org.apache.tapestry5.beanmodel.services.PlasticProxyFactoryImpl;
+import org.apache.tapestry5.commons.Resource;
+import org.apache.tapestry5.commons.services.PlasticProxyFactory;
+import org.apache.tapestry5.commons.util.CollectionFactory;
+import org.apache.tapestry5.commons.util.ExceptionUtils;
 import org.apache.tapestry5.internal.InternalComponentResources;
 import org.apache.tapestry5.internal.InternalConstants;
 import org.apache.tapestry5.internal.model.MutableComponentModelImpl;
@@ -22,10 +30,6 @@ import org.apache.tapestry5.internal.plastic.PlasticInternalUtils;
 import org.apache.tapestry5.ioc.Invokable;
 import org.apache.tapestry5.ioc.LoggerSource;
 import org.apache.tapestry5.ioc.OperationTracker;
-import org.apache.tapestry5.commons.Resource;
-import org.apache.tapestry5.commons.services.PlasticProxyFactory;
-import org.apache.tapestry5.commons.util.CollectionFactory;
-import org.apache.tapestry5.commons.util.ExceptionUtils;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.annotations.Primary;
 import org.apache.tapestry5.ioc.annotations.Symbol;
@@ -34,10 +38,28 @@ import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
 import org.apache.tapestry5.ioc.services.Builtin;
 import org.apache.tapestry5.ioc.services.ClasspathURLConverter;
+import org.apache.tapestry5.ioc.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 import org.apache.tapestry5.model.ComponentModel;
 import org.apache.tapestry5.model.MutableComponentModel;
-import org.apache.tapestry5.plastic.*;
+import org.apache.tapestry5.plastic.ClassInstantiator;
+import org.apache.tapestry5.plastic.ConstructorCallback;
+import org.apache.tapestry5.plastic.InstanceContext;
+import org.apache.tapestry5.plastic.InstructionBuilder;
+import org.apache.tapestry5.plastic.InstructionBuilderCallback;
+import org.apache.tapestry5.plastic.MethodAdvice;
+import org.apache.tapestry5.plastic.MethodDescription;
+import org.apache.tapestry5.plastic.MethodInvocation;
+import org.apache.tapestry5.plastic.PlasticClass;
+import org.apache.tapestry5.plastic.PlasticClassEvent;
+import org.apache.tapestry5.plastic.PlasticClassListener;
+import org.apache.tapestry5.plastic.PlasticField;
+import org.apache.tapestry5.plastic.PlasticManager;
 import org.apache.tapestry5.plastic.PlasticManager.PlasticManagerBuilder;
+import org.apache.tapestry5.plastic.PlasticManagerDelegate;
+import org.apache.tapestry5.plastic.PlasticMethod;
+import org.apache.tapestry5.plastic.PlasticUtils;
+import org.apache.tapestry5.plastic.TransformationOption;
 import org.apache.tapestry5.runtime.Component;
 import org.apache.tapestry5.runtime.ComponentEvent;
 import org.apache.tapestry5.runtime.ComponentResourcesAware;
@@ -45,17 +67,11 @@ import org.apache.tapestry5.runtime.PageLifecycleListener;
 import org.apache.tapestry5.services.ComponentClassResolver;
 import org.apache.tapestry5.services.ComponentEventHandler;
 import org.apache.tapestry5.services.TransformConstants;
-import org.apache.tapestry5.services.UpdateListener;
-import org.apache.tapestry5.services.UpdateListenerHub;
 import org.apache.tapestry5.services.transform.ComponentClassTransformWorker2;
 import org.apache.tapestry5.services.transform.ControlledPackageType;
 import org.apache.tapestry5.services.transform.TransformationSupport;
 import org.slf4j.Logger;
 
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 /**
  * A wrapper around a {@link PlasticManager} that allows certain classes to be modified as they are loaded.
  */
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentMessagesSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentMessagesSourceImpl.java
index f7732c1..039ed8f 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentMessagesSourceImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentMessagesSourceImpl.java
@@ -22,8 +22,8 @@ import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
 import org.apache.tapestry5.ioc.services.ClasspathURLConverter;
+import org.apache.tapestry5.ioc.services.UpdateListener;
 import org.apache.tapestry5.model.ComponentModel;
-import org.apache.tapestry5.services.UpdateListener;
 import org.apache.tapestry5.services.messages.ComponentMessagesSource;
 import org.apache.tapestry5.services.messages.PropertiesFileParser;
 import org.apache.tapestry5.services.pageload.ComponentResourceLocator;
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentTemplateSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentTemplateSourceImpl.java
index 61f37bb..43cde62 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentTemplateSourceImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentTemplateSourceImpl.java
@@ -27,9 +27,9 @@ import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
 import org.apache.tapestry5.ioc.services.ClasspathURLConverter;
+import org.apache.tapestry5.ioc.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 import org.apache.tapestry5.model.ComponentModel;
-import org.apache.tapestry5.services.UpdateListener;
-import org.apache.tapestry5.services.UpdateListenerHub;
 import org.apache.tapestry5.services.pageload.ComponentResourceLocator;
 import org.apache.tapestry5.services.pageload.ComponentResourceSelector;
 import org.apache.tapestry5.services.templates.ComponentTemplateLocator;
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MessagesSource.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MessagesSource.java
index 749aacb..9b224ef 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MessagesSource.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MessagesSource.java
@@ -16,7 +16,7 @@ package org.apache.tapestry5.internal.services;
 
 import org.apache.tapestry5.commons.Messages;
 import org.apache.tapestry5.commons.services.InvalidationEventHub;
-import org.apache.tapestry5.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListener;
 import org.apache.tapestry5.services.pageload.ComponentResourceSelector;
 
 public interface MessagesSource extends InvalidationEventHub, UpdateListener
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MetaDataLocatorImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MetaDataLocatorImpl.java
index cd76830..0191ff8 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MetaDataLocatorImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/MetaDataLocatorImpl.java
@@ -18,9 +18,9 @@ import org.apache.tapestry5.ComponentResources;
 import org.apache.tapestry5.commons.services.InvalidationEventHub;
 import org.apache.tapestry5.commons.services.TypeCoercer;
 import org.apache.tapestry5.commons.util.CollectionFactory;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.services.SymbolSource;
-import org.apache.tapestry5.services.ComponentClasses;
 import org.apache.tapestry5.services.MetaDataLocator;
 
 import java.util.Map;
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivationContextCollectorImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivationContextCollectorImpl.java
index 7b87ec9..cd2010d 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivationContextCollectorImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageActivationContextCollectorImpl.java
@@ -23,9 +23,9 @@ import org.apache.tapestry5.commons.util.CollectionFactory;
 import org.apache.tapestry5.internal.structure.ComponentPageElement;
 import org.apache.tapestry5.internal.structure.Page;
 import org.apache.tapestry5.internal.util.Holder;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.model.ComponentModel;
-import org.apache.tapestry5.services.ComponentClasses;
 
 import java.util.Map;
 
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java
index 6a4eeb0..cc15c16 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PageSourceImpl.java
@@ -20,8 +20,8 @@ import org.apache.tapestry5.func.F;
 import org.apache.tapestry5.func.Mapper;
 import org.apache.tapestry5.internal.services.assets.ResourceChangeTracker;
 import org.apache.tapestry5.internal.structure.Page;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
-import org.apache.tapestry5.services.ComponentClasses;
 import org.apache.tapestry5.services.ComponentMessages;
 import org.apache.tapestry5.services.ComponentTemplates;
 import org.apache.tapestry5.services.pageload.ComponentRequestSelectorAnalyzer;
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/TranslatorSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/TranslatorSourceImpl.java
index b78d451..1a2ef8d 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/TranslatorSourceImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/TranslatorSourceImpl.java
@@ -20,10 +20,10 @@ import org.apache.tapestry5.commons.util.AvailableValues;
 import org.apache.tapestry5.commons.util.CollectionFactory;
 import org.apache.tapestry5.commons.util.StrategyRegistry;
 import org.apache.tapestry5.commons.util.UnknownValueException;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.plastic.PlasticUtils;
-import org.apache.tapestry5.services.ComponentClasses;
 import org.apache.tapestry5.services.TranslatorSource;
 
 import java.util.Collections;
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ValueEncoderSourceImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ValueEncoderSourceImpl.java
index 16e02d5..47eec0f 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ValueEncoderSourceImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ValueEncoderSourceImpl.java
@@ -21,8 +21,8 @@ import org.apache.tapestry5.beanmodel.services.*;
 import org.apache.tapestry5.commons.services.InvalidationEventHub;
 import org.apache.tapestry5.commons.util.CollectionFactory;
 import org.apache.tapestry5.commons.util.StrategyRegistry;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.annotations.PostInjection;
-import org.apache.tapestry5.services.ComponentClasses;
 import org.apache.tapestry5.services.ValueEncoderFactory;
 import org.apache.tapestry5.services.ValueEncoderSource;
 
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTracker.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTracker.java
index f47498e..3c0ded1 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTracker.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTracker.java
@@ -18,7 +18,7 @@ import org.apache.tapestry5.commons.Resource;
 import org.apache.tapestry5.commons.services.InvalidationEventHub;
 import org.apache.tapestry5.commons.services.InvalidationListener;
 import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
-import org.apache.tapestry5.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListener;
 import org.apache.tapestry5.services.assets.ResourceDependencies;
 
 /**
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTrackerImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTrackerImpl.java
index 35d1223..13425f5 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTrackerImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/ResourceChangeTrackerImpl.java
@@ -21,8 +21,8 @@ import org.apache.tapestry5.ioc.annotations.PostInjection;
 import org.apache.tapestry5.ioc.annotations.Symbol;
 import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
 import org.apache.tapestry5.ioc.services.ClasspathURLConverter;
-import org.apache.tapestry5.services.UpdateListener;
-import org.apache.tapestry5.services.UpdateListenerHub;
+import org.apache.tapestry5.ioc.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 
 public class ResourceChangeTrackerImpl extends InvalidationEventHubImpl implements ResourceChangeTracker,
         UpdateListener
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
index c1cb4c0..ac6a6e7 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/compatibility/DeprecationWarningImpl.java
@@ -18,8 +18,8 @@ import org.apache.tapestry5.ComponentResources;
 import org.apache.tapestry5.alerts.AlertManager;
 import org.apache.tapestry5.commons.services.InvalidationEventHub;
 import org.apache.tapestry5.commons.util.CollectionFactory;
+import org.apache.tapestry5.ioc.annotations.ComponentClasses;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
-import org.apache.tapestry5.services.ComponentClasses;
 import org.apache.tapestry5.services.ComponentMessages;
 import org.apache.tapestry5.services.ComponentTemplates;
 import org.apache.tapestry5.services.compatibility.DeprecationWarning;
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java b/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java
index 6fe0ac9..567e055 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/modules/TapestryModule.java
@@ -95,6 +95,8 @@ import org.apache.tapestry5.ioc.services.ServiceOverride;
 import org.apache.tapestry5.ioc.services.StrategyBuilder;
 import org.apache.tapestry5.ioc.services.SymbolSource;
 import org.apache.tapestry5.ioc.services.ThreadLocale;
+import org.apache.tapestry5.ioc.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 import org.apache.tapestry5.json.JSONArray;
 import org.apache.tapestry5.json.JSONObject;
 import org.apache.tapestry5.plastic.MethodAdvice;
diff --git a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java
index a5e0948..f5ba515 100644
--- a/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java
+++ b/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImplTest.java
@@ -21,9 +21,9 @@ import org.apache.tapestry5.internal.t5internal.pages.BasicComponent;
 import org.apache.tapestry5.internal.test.InternalBaseTestCase;
 import org.apache.tapestry5.ioc.Registry;
 import org.apache.tapestry5.ioc.RegistryBuilder;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 import org.apache.tapestry5.modules.TapestryModule;
 import org.apache.tapestry5.runtime.Component;
-import org.apache.tapestry5.services.UpdateListenerHub;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ReloadAware.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ReloadAware.java
index 81ca786..576b552 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ReloadAware.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ReloadAware.java
@@ -14,7 +14,7 @@ package org.apache.tapestry5.ioc;
 
 import org.apache.tapestry5.commons.ObjectLocator;
 import org.apache.tapestry5.ioc.annotations.EagerLoad;
-import org.apache.tapestry5.services.UpdateListenerHub;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 
 /**
  * Optional interface that may be implemented by a service implementation (or even
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
index 6bf3e6f..c838db6 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator.java
@@ -29,7 +29,7 @@ import org.apache.tapestry5.ioc.OperationTracker;
 import org.apache.tapestry5.ioc.ReloadAware;
 import org.apache.tapestry5.ioc.internal.util.InternalUtils;
 import org.apache.tapestry5.ioc.internal.util.URLChangeTracker;
-import org.apache.tapestry5.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListener;
 import org.slf4j.Logger;
 
 import java.io.ByteArrayInputStream;
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
index 285231c..88e7015 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/RegistryImpl.java
@@ -61,7 +61,7 @@ import org.apache.tapestry5.ioc.services.ServiceConfigurationListenerHub;
 import org.apache.tapestry5.ioc.services.ServiceLifecycleSource;
 import org.apache.tapestry5.ioc.services.Status;
 import org.apache.tapestry5.ioc.services.SymbolSource;
-import org.apache.tapestry5.services.UpdateListenerHub;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 import org.slf4j.Logger;
 
 import java.io.IOException;
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ReloadableObjectCreatorSource.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ReloadableObjectCreatorSource.java
index b4d6866..bc39d16 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ReloadableObjectCreatorSource.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ReloadableObjectCreatorSource.java
@@ -17,7 +17,7 @@ package org.apache.tapestry5.ioc.internal;
 import org.apache.tapestry5.commons.ObjectCreator;
 import org.apache.tapestry5.commons.services.PlasticProxyFactory;
 import org.apache.tapestry5.ioc.ServiceBuilderResources;
-import org.apache.tapestry5.services.UpdateListenerHub;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 
 import java.lang.reflect.Method;
 
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/UpdateListenerHubImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/UpdateListenerHubImpl.java
index 67489dc..5f973b7 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/UpdateListenerHubImpl.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/UpdateListenerHubImpl.java
@@ -20,8 +20,8 @@ import java.util.List;
 
 import org.apache.tapestry5.commons.util.CollectionFactory;
 import org.apache.tapestry5.ioc.annotations.PreventServiceDecoration;
-import org.apache.tapestry5.services.UpdateListener;
-import org.apache.tapestry5.services.UpdateListenerHub;
+import org.apache.tapestry5.ioc.services.UpdateListener;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 
 @PreventServiceDecoration
 public class UpdateListenerHubImpl implements UpdateListenerHub
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/modules/TapestryIOCModule.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/modules/TapestryIOCModule.java
index 2f66171..0945819 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/modules/TapestryIOCModule.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/modules/TapestryIOCModule.java
@@ -90,8 +90,8 @@ import org.apache.tapestry5.ioc.services.SymbolProvider;
 import org.apache.tapestry5.ioc.services.SymbolSource;
 import org.apache.tapestry5.ioc.services.ThreadLocale;
 import org.apache.tapestry5.ioc.services.ThunkCreator;
+import org.apache.tapestry5.ioc.services.UpdateListenerHub;
 import org.apache.tapestry5.ioc.services.cron.PeriodicExecutor;
-import org.apache.tapestry5.services.UpdateListenerHub;
 
 import java.io.File;
 import java.lang.reflect.Array;
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/services/UpdateListener.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/UpdateListener.java
similarity index 90%
rename from tapestry-ioc/src/main/java/org/apache/tapestry5/services/UpdateListener.java
rename to tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/UpdateListener.java
index 8eabe3a..c8e2f83 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/services/UpdateListener.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/UpdateListener.java
@@ -10,7 +10,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry5.services;
+package org.apache.tapestry5.ioc.services;
 
 /**
  * Interface for objects which can periodically check for updates.
@@ -18,7 +18,7 @@ package org.apache.tapestry5.services;
  * Note that this interface has moved from module tapestry-core to tapestry-ioc, but has kept the same package (for
  * backwards compatibility reasons).
  * 
- * @see org.apache.tapestry5.services.UpdateListenerHub
+ * @see org.apache.tapestry5.ioc.services.UpdateListenerHub
  * @since 5.1.0.0
  */
 public interface UpdateListener
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/services/UpdateListenerHub.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/UpdateListenerHub.java
similarity index 93%
rename from tapestry-ioc/src/main/java/org/apache/tapestry5/services/UpdateListenerHub.java
rename to tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/UpdateListenerHub.java
index 40dda2c..5cb0571 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/services/UpdateListenerHub.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/UpdateListenerHub.java
@@ -10,12 +10,12 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry5.services;
+package org.apache.tapestry5.ioc.services;
 
 import org.apache.tapestry5.commons.ObjectLocator;
 
 /**
- * Manages a set of {@link org.apache.tapestry5.services.UpdateListener}s. Periodically (say, every request during
+ * Manages a set of {@link org.apache.tapestry5.ioc.services.UpdateListener}s. Periodically (say, every request during
  * development, or every minute or so during production), request processing is locked down so that only a single thread
  * is active, and the active thread invokes {@link #fireCheckForUpdates()}. Various services that are dependent on
  * external resource files (such as classes or template files) can check to see if any file they've used has changed. If
diff --git a/tapestry-ioc/src/test/groovy/ioc/specs/ReloadSpec.groovy b/tapestry-ioc/src/test/groovy/ioc/specs/ReloadSpec.groovy
index 143f1b9..3221caf 100644
--- a/tapestry-ioc/src/test/groovy/ioc/specs/ReloadSpec.groovy
+++ b/tapestry-ioc/src/test/groovy/ioc/specs/ReloadSpec.groovy
@@ -4,7 +4,8 @@ import org.apache.tapestry5.internal.plastic.PlasticInternalUtils
 import org.apache.tapestry5.internal.plastic.asm.ClassWriter
 import org.apache.tapestry5.ioc.Registry
 import org.apache.tapestry5.ioc.RegistryBuilder
-import org.apache.tapestry5.services.UpdateListenerHub
+import org.apache.tapestry5.ioc.services.UpdateListenerHub
+
 import spock.lang.AutoCleanup
 import spock.lang.Specification
 import com.example.*
diff --git a/tapestry-ioc/src/test/groovy/ioc/specs/UpdateListenerHubImplSpec.groovy b/tapestry-ioc/src/test/groovy/ioc/specs/UpdateListenerHubImplSpec.groovy
index 5e76926..b4fc320 100644
--- a/tapestry-ioc/src/test/groovy/ioc/specs/UpdateListenerHubImplSpec.groovy
+++ b/tapestry-ioc/src/test/groovy/ioc/specs/UpdateListenerHubImplSpec.groovy
@@ -1,8 +1,9 @@
 package ioc.specs
 
 import org.apache.tapestry5.ioc.internal.services.UpdateListenerHubImpl
-import org.apache.tapestry5.services.UpdateListener
-import org.apache.tapestry5.services.UpdateListenerHub
+import org.apache.tapestry5.ioc.services.UpdateListener
+import org.apache.tapestry5.ioc.services.UpdateListenerHub
+
 import spock.lang.Specification
 
 import java.lang.ref.WeakReference
diff --git a/tapestry5-annotations/src/main/java/org/apache/tapestry5/services/ComponentClasses.java b/tapestry5-annotations/src/main/java/org/apache/tapestry5/ioc/annotations/ComponentClasses.java
similarity index 96%
rename from tapestry5-annotations/src/main/java/org/apache/tapestry5/services/ComponentClasses.java
rename to tapestry5-annotations/src/main/java/org/apache/tapestry5/ioc/annotations/ComponentClasses.java
index c901d3a..4c8a10e 100644
--- a/tapestry5-annotations/src/main/java/org/apache/tapestry5/services/ComponentClasses.java
+++ b/tapestry5-annotations/src/main/java/org/apache/tapestry5/ioc/annotations/ComponentClasses.java
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry5.services;
+package org.apache.tapestry5.ioc.annotations;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
diff --git a/tapestry5-annotations/src/main/java/org/apache/tapestry5/services/ComponentLayer.java b/tapestry5-annotations/src/main/java/org/apache/tapestry5/ioc/annotations/ComponentLayer.java
similarity index 96%
rename from tapestry5-annotations/src/main/java/org/apache/tapestry5/services/ComponentLayer.java
rename to tapestry5-annotations/src/main/java/org/apache/tapestry5/ioc/annotations/ComponentLayer.java
index e342c3f..76efacf 100644
--- a/tapestry5-annotations/src/main/java/org/apache/tapestry5/services/ComponentLayer.java
+++ b/tapestry5-annotations/src/main/java/org/apache/tapestry5/ioc/annotations/ComponentLayer.java
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package org.apache.tapestry5.services;
+package org.apache.tapestry5.ioc.annotations;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.Retention;