You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2007/03/13 02:44:14 UTC
svn commit: r517488 - in /tapestry/tapestry5:
tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/
tapestry-core/trunk/src/main/java/org/apache/tapestry/services/
tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/servic...
Author: hlship
Date: Mon Mar 12 18:44:13 2007
New Revision: 517488
URL: http://svn.apache.org/viewvc?view=rev&rev=517488
Log:
TAPESTRY-1346: Hibernate module depends on missing ComponentClassLocator service
Added:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java
- copied, changed from r516840, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocator.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java
- copied, changed from r516840, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocatorImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java
- copied, changed from r516840, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassLocatorImplTest.java
Removed:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocator.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocatorImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassLocatorImplTest.java
Modified:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalModule.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/TapestryModule.java
tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java
tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java
tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateSessionSource.java
tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImpl.java
tapestry/tapestry5/tapestry-hibernate/trunk/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java
Copied: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java (from r516840, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocator.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java?view=diff&rev=517488&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocator.java&r1=516840&p2=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocator.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java Mon Mar 12 18:44:13 2007
@@ -19,16 +19,16 @@
/**
* Scans the classpath for component classes, classes within particular packages.
*/
-public interface ComponentClassLocator
+public interface ClassNameLocator
{
/**
* Searches for all component classes under the given package name. This consists of all
- * top-level classes in the indicated package (or a sub-package), but excludes inner classes.
- * <p>
- * TODO: Sniff files for the ComponentClass annotation? A pain because of inheritance and such.
+ * top-level classes in the indicated package (or a sub-package), but excludes inner classes. No
+ * other filtering (beyond inner classes) occurs, so there's no guarantee that the class names
+ * returned are public (for example)
*
* @param packageName
- * @return fully qualified class names.
+ * @return fully qualified class names
*/
- Collection<String> locateComponentClassNames(String packageName);
+ Collection<String> locateClassNames(String packageName);
}
Copied: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java (from r516840, tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocatorImpl.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java?view=diff&rev=517488&p1=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocatorImpl.java&r1=516840&p2=tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassLocatorImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java Mon Mar 12 18:44:13 2007
@@ -32,7 +32,7 @@
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
import org.apache.tapestry.ioc.util.Stack;
-public class ComponentClassLocatorImpl implements ComponentClassLocator
+public class ClassNameLocatorImpl implements ClassNameLocator
{
private static final String CLASS_SUFFIX = ".class";
@@ -53,10 +53,9 @@
/**
* Synchronization should not be necessary, but perhaps the underlying ClassLoader's are
- * sensitive to threading. This is just a shot in the dark to address our continuous integration
- * instability.
+ * sensitive to threading.
*/
- public synchronized Collection<String> locateComponentClassNames(String packageName)
+ public synchronized Collection<String> locateClassNames(String packageName)
{
String packagePath = packageName.replace('.', '/') + "/";
@@ -145,16 +144,13 @@
{
String line = lineReader.readLine();
- if (line == null)
- break;
+ if (line == null) break;
- if (line.contains("$"))
- continue;
+ if (line.contains("$")) continue;
if (line.endsWith(CLASS_SUFFIX))
{
- if (packageName == null)
- packageName = packagePath.replace('/', '.');
+ if (packageName == null) packageName = packagePath.replace('/', '.');
// packagePath ends with '/', packageName ends with '.'
@@ -168,8 +164,7 @@
// Either a file or a hidden directory (such as .svn)
- if (line.contains("."))
- continue;
+ if (line.contains(".")) continue;
// The name of a subdirectory.
@@ -198,14 +193,11 @@
{
String name = e.nextElement().getName();
- if (!name.startsWith(packagePath))
- continue;
+ if (!name.startsWith(packagePath)) continue;
- if (!name.endsWith(CLASS_SUFFIX))
- continue;
+ if (!name.endsWith(CLASS_SUFFIX)) continue;
- if (name.contains("$"))
- continue;
+ if (name.contains("$")) continue;
// Strip off .class and convert the slashes back to periods.
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java Mon Mar 12 18:44:13 2007
@@ -36,7 +36,7 @@
private final ComponentInstantiatorSource _componentInstantiatorSource;
- private final ComponentClassLocator _componentClassLocator;
+ private final ClassNameLocator _classNameLocator;
private String _appRootPackage;
@@ -64,10 +64,10 @@
private final Map<String, String> _pageClassNameToLogicalName = newMap();
public ComponentClassResolverImpl(ComponentInstantiatorSource componentInstantiatorSource,
- ComponentClassLocator componentClassLocator, Collection<LibraryMapping> mappings)
+ ClassNameLocator classNameLocator, Collection<LibraryMapping> mappings)
{
_componentInstantiatorSource = componentInstantiatorSource;
- _componentClassLocator = componentClassLocator;
+ _classNameLocator = classNameLocator;
for (LibraryMapping mapping : mappings)
{
@@ -153,8 +153,8 @@
String searchPackage = rootPackage + "." + subPackage;
boolean isPage = subPackage.equals(PAGES_SUBPACKAGE);
- Collection<String> classNames = _componentClassLocator
- .locateComponentClassNames(searchPackage);
+ Collection<String> classNames = _classNameLocator
+ .locateClassNames(searchPackage);
int startPos = searchPackage.length() + 1;
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalModule.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalModule.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/InternalModule.java Mon Mar 12 18:44:13 2007
@@ -381,6 +381,11 @@
return new ActionLinkHandlerImpl(resultProcessor, _pageCache, _linkFactory);
}
+ public ClassNameLocator buildClassNameLocator()
+ {
+ return new ClassNameLocatorImpl();
+ }
+
public AssetFactory buildClasspathAssetFactory(@InjectService("ResourceCache")
ResourceCache resourceCache, @Inject("infrastructure:ClasspathAssetAliasManager")
ClasspathAssetAliasManager aliasManager)
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java Mon Mar 12 18:44:13 2007
@@ -14,7 +14,7 @@
package org.apache.tapestry.services;
-import org.apache.tapestry.internal.services.ComponentClassLocator;
+import org.apache.tapestry.internal.services.ClassNameLocator;
/**
* Resolves page names and component types to fully qualified class names. Pages and components may
@@ -27,7 +27,7 @@
* package is expected to have sub-packages: "pages", "components", "mixins" and "base" ("base" is
* for base classes).
* <p>
- * The resolver performs a search of the classpath (via {@link ComponentClassLocator}, to build up
+ * The resolver performs a search of the classpath (via {@link ClassNameLocator}, to build up
* a set of case-insensitive maps from logical page name, component type, or mixin type to fully
* qualified class name.
* <p>
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/TapestryModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/TapestryModule.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/TapestryModule.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/services/TapestryModule.java Mon Mar 12 18:44:13 2007
@@ -73,10 +73,10 @@
import org.apache.tapestry.internal.services.AssetSourceImpl;
import org.apache.tapestry.internal.services.BeanModelSourceImpl;
import org.apache.tapestry.internal.services.BindingSourceImpl;
+import org.apache.tapestry.internal.services.ClassNameLocator;
import org.apache.tapestry.internal.services.ClasspathAssetAliasManagerImpl;
import org.apache.tapestry.internal.services.CommonResourcesInjectionProvider;
import org.apache.tapestry.internal.services.ComponentActionDispatcher;
-import org.apache.tapestry.internal.services.ComponentClassLocatorImpl;
import org.apache.tapestry.internal.services.ComponentClassResolverImpl;
import org.apache.tapestry.internal.services.ComponentInstanceResultProcessor;
import org.apache.tapestry.internal.services.ComponentInstantiatorSource;
@@ -1034,10 +1034,12 @@
return new EnvironmentalShadowBuilderImpl(classFactory, _environment);
}
- public ComponentClassResolver build(Collection<LibraryMapping> configuration)
+ public ComponentClassResolver build(Collection<LibraryMapping> configuration,
+ @InjectService("ClassNameLocator")
+ ClassNameLocator classNameLocator)
{
ComponentClassResolverImpl service = new ComponentClassResolverImpl(
- _componentInstantiatorSource, new ComponentClassLocatorImpl(), configuration);
+ _componentInstantiatorSource, classNameLocator, configuration);
// Allow the resolver to clean its cache when the source is invalidated
Copied: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java (from r516840, tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassLocatorImplTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java?view=diff&rev=517488&p1=tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassLocatorImplTest.java&r1=516840&p2=tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassLocatorImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java Mon Mar 12 18:44:13 2007
@@ -26,7 +26,7 @@
* Tricky to test, since the code is literally hunting around inside its own brain. There's a lot of
* room for unintended consequences here.
*/
-public class ComponentClassLocatorImplTest extends Assert
+public class ClassNameLocatorImplTest extends Assert
{
/**
* Use various packages in tapestry-ioc to test this, as those don't change unexpectedly(-ish)
@@ -35,10 +35,10 @@
@Test
public void classes_in_jar_file()
{
- ComponentClassLocator locator = new ComponentClassLocatorImpl();
+ ClassNameLocator locator = new ClassNameLocatorImpl();
Collection<String> names = locator
- .locateComponentClassNames("org.apache.tapestry.ioc.internal.util");
+ .locateClassNames("org.apache.tapestry.ioc.internal.util");
assertInList(
names,
@@ -56,9 +56,9 @@
@Test
public void classes_in_subpackage_in_jar_file()
{
- ComponentClassLocator locator = new ComponentClassLocatorImpl();
+ ClassNameLocator locator = new ClassNameLocatorImpl();
- Collection<String> names = locator.locateComponentClassNames("org.apache.tapestry.ioc");
+ Collection<String> names = locator.locateClassNames("org.apache.tapestry.ioc");
assertInList(
names,
@@ -76,10 +76,10 @@
@Test
public void classes_in_local_folders()
{
- ComponentClassLocator locator = new ComponentClassLocatorImpl();
+ ClassNameLocator locator = new ClassNameLocatorImpl();
Collection<String> names = locator
- .locateComponentClassNames("org.apache.tapestry.corelib.components");
+ .locateClassNames("org.apache.tapestry.corelib.components");
assertInList(names, "org.apache.tapestry.corelib.components", "ActionLink", "Label");
@@ -89,9 +89,9 @@
@Test
public void classes_in_subpackages_in_local_folders()
{
- ComponentClassLocator locator = new ComponentClassLocatorImpl();
+ ClassNameLocator locator = new ClassNameLocatorImpl();
- Collection<String> names = locator.locateComponentClassNames("org.apache.tapestry.corelib");
+ Collection<String> names = locator.locateClassNames("org.apache.tapestry.corelib");
assertInList(
names,
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java Mon Mar 12 18:44:13 2007
@@ -39,7 +39,7 @@
private static final String LIB_ROOT_PACKAGE = "org.example.lib";
private ComponentClassResolverImpl create(ComponentInstantiatorSource source,
- ComponentClassLocator locator, LibraryMapping... mappings)
+ ClassNameLocator locator, LibraryMapping... mappings)
{
List<LibraryMapping> list = Arrays.asList(mappings);
@@ -54,7 +54,7 @@
public void simple_page_name()
{
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_app_packages(source);
@@ -75,7 +75,7 @@
public void is_page_name()
{
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_app_packages(source);
@@ -98,7 +98,7 @@
public void is_page_name_for_core_page()
{
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_app_packages(source);
train_for_packages(source, CORE_ROOT_PACKAGE);
@@ -125,26 +125,26 @@
verify();
}
- protected final ComponentClassLocator newComponentClassLocator()
+ protected final ClassNameLocator newClassNameLocator()
{
- ComponentClassLocator locator = newMock(ComponentClassLocator.class);
+ ClassNameLocator locator = newMock(ClassNameLocator.class);
stub_locateComponentClassNames(locator);
return locator;
}
- private void stub_locateComponentClassNames(ComponentClassLocator locator)
+ private void stub_locateComponentClassNames(ClassNameLocator locator)
{
Collection<String> noMatches = Collections.emptyList();
- expect(locator.locateComponentClassNames(isA(String.class))).andStubReturn(noMatches);
+ expect(locator.locateClassNames(isA(String.class))).andStubReturn(noMatches);
}
- protected final void train_locateComponentClassNames(ComponentClassLocator locator,
+ protected final void train_locateComponentClassNames(ClassNameLocator locator,
String packageName, String... classNames)
{
- expect(locator.locateComponentClassNames(packageName)).andReturn(Arrays.asList(classNames));
+ expect(locator.locateClassNames(packageName)).andReturn(Arrays.asList(classNames));
}
@Test
@@ -153,7 +153,7 @@
String className = APP_ROOT_PACKAGE + ".pages.SimplePage";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_app_packages(source);
@@ -176,7 +176,7 @@
String pageClassName = APP_ROOT_PACKAGE + ".pages.SimplePage";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_app_packages(source);
@@ -218,7 +218,7 @@
String className = CORE_ROOT_PACKAGE + ".pages.CorePage";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, CORE_ROOT_PACKAGE);
train_for_app_packages(source);
@@ -241,7 +241,7 @@
String className = CORE_ROOT_PACKAGE + ".pages.CorePage";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, CORE_ROOT_PACKAGE);
train_for_app_packages(source);
@@ -264,7 +264,7 @@
String className = LIB_ROOT_PACKAGE + ".pages.LibPage";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, LIB_ROOT_PACKAGE);
train_for_packages(source, CORE_ROOT_PACKAGE);
@@ -288,7 +288,7 @@
String className = LIB_ROOT_PACKAGE + ".pages.LibPage";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, LIB_ROOT_PACKAGE);
train_for_packages(source, CORE_ROOT_PACKAGE);
@@ -311,7 +311,7 @@
public void class_name_does_not_resolve_to_page_name()
{
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, CORE_ROOT_PACKAGE);
train_for_app_packages(source);
@@ -341,7 +341,7 @@
public void class_name_not_in_a_pages_package()
{
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, CORE_ROOT_PACKAGE);
train_for_app_packages(source);
@@ -374,7 +374,7 @@
String className = secondaryLibPackage + ".pages.LibPage";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, LIB_ROOT_PACKAGE);
train_for_packages(source, secondaryLibPackage);
@@ -403,7 +403,7 @@
String deepPackage = "org.deep";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, deepPackage);
train_for_packages(source, LIB_ROOT_PACKAGE);
@@ -450,7 +450,7 @@
String className = APP_ROOT_PACKAGE + ".components.SimpleComponent";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_app_packages(source);
@@ -475,7 +475,7 @@
String expectedClassName = APP_ROOT_PACKAGE + ".mixins.SimpleMixin";
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_app_packages(source);
@@ -494,7 +494,7 @@
public void mixin_type_not_found()
{
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, CORE_ROOT_PACKAGE);
train_for_app_packages(source);
@@ -523,7 +523,7 @@
public void component_type_not_found()
{
ComponentInstantiatorSource source = newComponentInstantiatorSource();
- ComponentClassLocator locator = newComponentClassLocator();
+ ClassNameLocator locator = newClassNameLocator();
train_for_packages(source, CORE_ROOT_PACKAGE);
train_for_app_packages(source);
Modified: tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java (original)
+++ tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java Mon Mar 12 18:44:13 2007
@@ -19,7 +19,7 @@
import org.apache.commons.logging.Log;
import org.apache.tapestry.internal.hibernate.HibernateSessionManagerImpl;
import org.apache.tapestry.internal.hibernate.HibernateSessionSourceImpl;
-import org.apache.tapestry.internal.services.ComponentClassLocator;
+import org.apache.tapestry.internal.services.ClassNameLocator;
import org.apache.tapestry.ioc.Configuration;
import org.apache.tapestry.ioc.annotations.Inject;
import org.apache.tapestry.ioc.annotations.InjectService;
@@ -39,12 +39,12 @@
*/
public static HibernateSessionSource build(Log log,
- @InjectService("ComponentClassLocator")
- ComponentClassLocator classLocator,
+ @InjectService("ClassNameLocator")
+ ClassNameLocator classNameLocator,
Collection<String> packageNames)
{
- return new HibernateSessionSourceImpl(log, packageNames, classLocator);
+ return new HibernateSessionSourceImpl(log, packageNames, classNameLocator);
}
/**
Modified: tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateSessionSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateSessionSource.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateSessionSource.java (original)
+++ tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/hibernate/HibernateSessionSource.java Mon Mar 12 18:44:13 2007
@@ -15,13 +15,21 @@
package org.apache.tapestry.hibernate;
import org.hibernate.Session;
+import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* Responsible for creating a Hibernate session as needed. Internally, is responsible for Hibernate
- * {@link Configuration}.
+ * {@link Configuration}, resulting in a {@link SessionFactory}.
*/
public interface HibernateSessionSource
{
- Session create();
+ /**
+ * Creates a new session using the {@link #getSessionFactory() SessionFactory} created at
+ * service startup.
+ */
+ Session create();
+
+ /** Returns the SessionFactory from which Hibernate sessions are created. */
+ SessionFactory getSessionFactory();
}
Modified: tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImpl.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImpl.java (original)
+++ tapestry/tapestry5/tapestry-hibernate/trunk/src/main/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImpl.java Mon Mar 12 18:44:13 2007
@@ -18,7 +18,7 @@
import org.apache.commons.logging.Log;
import org.apache.tapestry.hibernate.HibernateSessionSource;
-import org.apache.tapestry.internal.services.ComponentClassLocator;
+import org.apache.tapestry.internal.services.ClassNameLocator;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
@@ -28,7 +28,7 @@
private SessionFactory _sessionFactory;
public HibernateSessionSourceImpl(Log log, Collection<String> packageNames,
- ComponentClassLocator classLocator)
+ ClassNameLocator classNameLocator)
{
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
long startTime = System.currentTimeMillis();
@@ -43,7 +43,7 @@
{
configuration.addPackage(packageName);
- for (String className : classLocator.locateComponentClassNames(packageName))
+ for (String className : classNameLocator.locateClassNames(packageName))
{
try
{
@@ -76,4 +76,8 @@
return _sessionFactory.openSession();
}
+ public SessionFactory getSessionFactory()
+ {
+ return _sessionFactory;
+ }
}
Modified: tapestry/tapestry5/tapestry-hibernate/trunk/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-hibernate/trunk/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java?view=diff&rev=517488&r1=517487&r2=517488
==============================================================================
--- tapestry/tapestry5/tapestry-hibernate/trunk/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java (original)
+++ tapestry/tapestry5/tapestry-hibernate/trunk/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java Mon Mar 12 18:44:13 2007
@@ -19,7 +19,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.tapestry.hibernate.HibernateSessionSource;
-import org.apache.tapestry.internal.services.ComponentClassLocatorImpl;
+import org.apache.tapestry.internal.services.ClassNameLocatorImpl;
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
import org.apache.tapestry.test.TapestryTestCase;
import org.testng.annotations.Test;
@@ -36,7 +36,7 @@
"org.example.app0.entities");
HibernateSessionSource source = new HibernateSessionSourceImpl(_log, packageNames,
- new ComponentClassLocatorImpl());
+ new ClassNameLocatorImpl());
assertNotNull(source.create());
}