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 2008/02/24 02:30:36 UTC
svn commit: r630562 - in /tapestry/tapestry5/trunk:
tapestry-core/src/main/java/org/apache/tapestry/corelib/components/
tapestry-core/src/main/java/org/apache/tapestry/internal/
tapestry-core/src/main/java/org/apache/tapestry/internal/renderers/ tapest...
Author: hlship
Date: Sat Feb 23 17:30:33 2008
New Revision: 630562
URL: http://svn.apache.org/viewvc?rev=630562&view=rev
Log:
TAPESTRY-1954: Move the ClassNameLocator service to the tapestry-ioc module
Added:
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImpl.java
- copied, changed from r630031, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/ClassNameLocator.java
- copied, changed from r630031, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java
tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImplTest.java
- copied, changed from r630031, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java
Modified:
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/components/Form.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/renderers/LocationRenderer.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClientPersistentFieldStorageImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceDigestGeneratorImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceStreamerImpl.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/StreamResponseResultProcessor.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java
tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java
tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/internal/hibernate/PackageNameHibernateConfigurer.java
tapestry/tapestry5/trunk/tapestry-hibernate/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/InternalUtils.java
tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java
tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/InternalUtilsTest.java
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/components/Form.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/components/Form.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/components/Form.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/corelib/components/Form.java Sat Feb 23 17:30:33 2008
@@ -22,7 +22,6 @@
import org.apache.tapestry.corelib.internal.FormSupportImpl;
import org.apache.tapestry.corelib.mixins.RenderInformals;
import org.apache.tapestry.dom.Element;
-import org.apache.tapestry.internal.TapestryInternalUtils;
import org.apache.tapestry.internal.services.ComponentInvocationMap;
import org.apache.tapestry.internal.services.ComponentResultProcessorWrapper;
import org.apache.tapestry.internal.services.HeartbeatImpl;
@@ -31,6 +30,7 @@
import org.apache.tapestry.internal.util.Base64ObjectOutputStream;
import org.apache.tapestry.ioc.Location;
import org.apache.tapestry.ioc.annotations.Inject;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.ioc.internal.util.TapestryException;
import org.apache.tapestry.runtime.Component;
import org.apache.tapestry.services.*;
@@ -49,10 +49,10 @@
* <p/>
* When the form is submitted, the component emits several notifications: first a {@link #PREPARE_FOR_SUBMIT}, then a
* {@link #PREPARE}: these allow the page to update its state as necessary to prepare for the form submission, then
- * (after components enclosed by the form have operated), a {@link #VALIDATE_FORM}event is emitted, to allow for cross-form
- * validation. After that, either a {@link #SUCCESS} OR {@link #FAILURE} event (depending on whether the {@link
- * ValidationTracker} has recorded any errors). Lastly, a {@link #SUBMIT} event, for any listeners that care only about
- * form submission, regardless of success or failure.
+ * (after components enclosed by the form have operated), a {@link #VALIDATE_FORM}event is emitted, to allow for
+ * cross-form validation. After that, either a {@link #SUCCESS} OR {@link #FAILURE} event (depending on whether the
+ * {@link ValidationTracker} has recorded any errors). Lastly, a {@link #SUBMIT} event, for any listeners that care only
+ * about form submission, regardless of success or failure.
* <p/>
* For all of these notifications, the event context is derived from the <strong>context</strong> parameter. This
* context is encoded into the form's action URI (the parameter is not read when the form is submitted, instead the
@@ -131,8 +131,8 @@
private boolean _clientValidation;
/**
- * Binding the zone parameter will cause the form submission to be handled as an Ajax request that updates
- * the indicated zone. Often a Form will update the same zone that contains it.
+ * Binding the zone parameter will cause the form submission to be handled as an Ajax request that updates the
+ * indicated zone. Often a Form will update the same zone that contains it.
*/
@Parameter(defaultPrefix = TapestryConstants.LITERAL_BINDING_PREFIX)
private String _zone;
@@ -300,7 +300,7 @@
_tracker = _environment.pop(ValidationTracker.class);
}
- @SuppressWarnings({"unchecked", "InfiniteLoopStatement"})
+ @SuppressWarnings({ "unchecked", "InfiniteLoopStatement" })
Object onAction(EventContext context) throws IOException
{
_tracker.clear();
@@ -366,7 +366,7 @@
}
finally
{
- TapestryInternalUtils.close(ois);
+ InternalUtils.close(ois);
}
heartbeat.end();
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/TapestryInternalUtils.java Sat Feb 23 17:30:33 2008
@@ -33,8 +33,6 @@
import org.apache.tapestry.ioc.services.PropertyAdapter;
import org.slf4j.Logger;
-import java.io.Closeable;
-import java.io.IOException;
import java.lang.reflect.Method;
import java.util.BitSet;
import java.util.Collections;
@@ -72,18 +70,6 @@
// Prevent instantiation.
}
- public static void close(Closeable stream)
- {
- if (stream != null) try
- {
- stream.close();
- }
- catch (IOException ex)
- {
- // Ignore.
- }
- }
-
/**
* Capitalizes the string, and inserts a space before each upper case character (or sequence of upper case
* characters). Thus "userId" becomes "User Id", etc. Also, converts underscore into space (and capitalizes the
@@ -508,8 +494,8 @@
}
/**
- * Encodes a string for inclusion in a URL. Slashes and percents are converted
- * to "%25" and "%2F" respectively, then the entire string is URL encoded.
+ * Encodes a string for inclusion in a URL. Slashes and percents are converted to "%25" and "%2F" respectively,
+ * then the entire string is URL encoded.
*
* @param input string to include, may not be blank
* @return encoded input
@@ -539,8 +525,8 @@
private static final Pattern ENCODED_SLASH_PATTERN = Pattern.compile(ENCODED_SLASH, Pattern.CASE_INSENSITIVE);
/**
- * Encodes percent and slash characters in the string for later decoding via
- * {@link #unescapePercentAndSlash(String)}.
+ * Encodes percent and slash characters in the string for later decoding via {@link
+ * #unescapePercentAndSlash(String)}.
*
* @param input string to encode
* @return modified string
@@ -551,8 +537,7 @@
}
/**
- * Used to decode certain escaped characters that are replaced
- * when using {@link #encodeContext(String)}}.
+ * Used to decode certain escaped characters that are replaced when using {@link #encodeContext(String)}}.
*
* @param input a previously encoded string
* @return the string with slash and percent characters restored
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/renderers/LocationRenderer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/renderers/LocationRenderer.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/renderers/LocationRenderer.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/renderers/LocationRenderer.java Sat Feb 23 17:30:33 2008
@@ -16,12 +16,12 @@
import org.apache.tapestry.MarkupWriter;
import org.apache.tapestry.dom.Element;
-import org.apache.tapestry.internal.TapestryInternalUtils;
import static org.apache.tapestry.ioc.IOCConstants.PERTHREAD_SCOPE;
import org.apache.tapestry.ioc.Location;
import org.apache.tapestry.ioc.Resource;
import org.apache.tapestry.ioc.annotations.Scope;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newSet;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.services.ObjectRenderer;
import java.io.*;
@@ -29,10 +29,9 @@
import java.util.Set;
/**
- * Responsible for rendering a {@link Location}. It is designed to only perform the full output
- * (which includes a snippet of the source file) once per render. This requires the use of the
- * "perthread" scope (since the service tracks, internally, which locations have already been
- * rendered, to avoid repetition).
+ * Responsible for rendering a {@link Location}. It is designed to only perform the full output (which includes a
+ * snippet of the source file) once per render. This requires the use of the "perthread" scope (since the service
+ * tracks, internally, which locations have already been rendered, to avoid repetition).
*/
@Scope(PERTHREAD_SCOPE)
public class LocationRenderer implements ObjectRenderer<Location>
@@ -116,7 +115,7 @@
}
finally
{
- TapestryInternalUtils.close(reader);
+ InternalUtils.close(reader);
}
writer.end(); // div
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClientPersistentFieldStorageImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClientPersistentFieldStorageImpl.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClientPersistentFieldStorageImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClientPersistentFieldStorageImpl.java Sat Feb 23 17:30:33 2008
@@ -15,13 +15,13 @@
package org.apache.tapestry.internal.services;
import org.apache.tapestry.Link;
-import org.apache.tapestry.internal.TapestryInternalUtils;
import org.apache.tapestry.internal.util.Base64ObjectInputStream;
import org.apache.tapestry.internal.util.Base64ObjectOutputStream;
import static org.apache.tapestry.ioc.IOCConstants.PERTHREAD_SCOPE;
import org.apache.tapestry.ioc.annotations.Scope;
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newMap;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.services.PersistentFieldChange;
import org.apache.tapestry.services.Request;
@@ -234,7 +234,7 @@
}
finally
{
- TapestryInternalUtils.close(in);
+ InternalUtils.close(in);
}
}
@@ -278,7 +278,7 @@
}
finally
{
- TapestryInternalUtils.close(os);
+ InternalUtils.close(os);
}
_clientData = os.toBase64();
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ComponentClassResolverImpl.java Sat Feb 23 17:30:33 2008
@@ -23,6 +23,7 @@
import org.apache.tapestry.ioc.internal.util.ConcurrentBarrier;
import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.ioc.internal.util.Invokable;
+import org.apache.tapestry.ioc.services.ClassNameLocator;
import org.apache.tapestry.services.ComponentClassResolver;
import org.apache.tapestry.services.LibraryMapping;
import org.slf4j.Logger;
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/MessagesSourceImpl.java Sat Feb 23 17:30:33 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -14,13 +14,13 @@
package org.apache.tapestry.internal.services;
-import org.apache.tapestry.internal.TapestryInternalUtils;
import org.apache.tapestry.internal.event.InvalidationEventHubImpl;
import org.apache.tapestry.internal.util.MultiKey;
import org.apache.tapestry.internal.util.URLChangeTracker;
import org.apache.tapestry.ioc.Messages;
import org.apache.tapestry.ioc.Resource;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.*;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.ioc.internal.util.LocalizedNameGenerator;
import java.io.BufferedInputStream;
@@ -29,10 +29,10 @@
import java.util.*;
/**
- * A utility class that encapsulates all the logic for reading properties files and assembling
- * {@link Messages} from them, in accordance with extension rules and locale. This represents code
- * that was refactored out of {@link ComponentMessagesSourceImpl}. This class can be used as a base
- * class, though the existing code base uses it as a utility. Composition trumps inheritance!
+ * A utility class that encapsulates all the logic for reading properties files and assembling {@link Messages} from
+ * them, in accordance with extension rules and locale. This represents code that was refactored out of {@link
+ * ComponentMessagesSourceImpl}. This class can be used as a base class, though the existing code base uses it as a
+ * utility. Composition trumps inheritance!
*/
public class MessagesSourceImpl extends InvalidationEventHubImpl implements MessagesSource
{
@@ -44,14 +44,13 @@
private final Map<MultiKey, Messages> _messagesByBundleIdAndLocale = newConcurrentMap();
/**
- * Keyed on bundle id and locale, the coooked properties include properties inherited from less
- * locale-specific properties files, or inherited from parent bundles.
+ * Keyed on bundle id and locale, the coooked properties include properties inherited from less locale-specific
+ * properties files, or inherited from parent bundles.
*/
private final Map<MultiKey, Map<String, String>> _cookedProperties = newConcurrentMap();
/**
- * Raw properties represent just the properties read from a specific properties file, in
- * isolation.
+ * Raw properties represent just the properties read from a specific properties file, in isolation.
*/
private final Map<Resource, Map<String, String>> _rawProperties = newConcurrentMap();
@@ -99,9 +98,9 @@
}
/**
- * Assembles a set of properties appropriate for the bundle in question, and the desired locale.
- * The properties reflect the properties of the bundles' parent (if any) for the locale,
- * overalyed with any properties defined for this bundle and its locale.
+ * Assembles a set of properties appropriate for the bundle in question, and the desired locale. The properties
+ * reflect the properties of the bundles' parent (if any) for the locale, overalyed with any properties defined for
+ * this bundle and its locale.
*/
private Map<String, String> findBundleProperties(MessagesBundle bundle, Locale locale)
{
@@ -153,8 +152,8 @@
}
/**
- * Returns a new map consisting of all the properties in previous overlayed with all the
- * properties in rawProperties. If rawProperties is empty, returns just the base map.
+ * Returns a new map consisting of all the properties in previous overlayed with all the properties in
+ * rawProperties. If rawProperties is empty, returns just the base map.
*/
private Map<String, String> extend(Map<String, String> base, Map<String, String> rawProperties)
{
@@ -217,7 +216,7 @@
}
finally
{
- TapestryInternalUtils.close(is);
+ InternalUtils.close(is);
}
for (Map.Entry e : p.entrySet())
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceDigestGeneratorImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceDigestGeneratorImpl.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceDigestGeneratorImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceDigestGeneratorImpl.java Sat Feb 23 17:30:33 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -15,8 +15,8 @@
package org.apache.tapestry.internal.services;
import org.apache.commons.codec.binary.Hex;
-import org.apache.tapestry.internal.TapestryInternalUtils;
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.services.ResourceDigestGenerator;
import java.io.BufferedInputStream;
@@ -67,7 +67,7 @@
}
finally
{
- TapestryInternalUtils.close(stream);
+ InternalUtils.close(stream);
}
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceStreamerImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceStreamerImpl.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceStreamerImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ResourceStreamerImpl.java Sat Feb 23 17:30:33 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -14,8 +14,8 @@
package org.apache.tapestry.internal.services;
-import org.apache.tapestry.internal.TapestryInternalUtils;
import org.apache.tapestry.ioc.Resource;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.services.Response;
import java.io.BufferedInputStream;
@@ -104,7 +104,7 @@
}
finally
{
- TapestryInternalUtils.close(is);
+ InternalUtils.close(is);
}
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/StreamResponseResultProcessor.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/StreamResponseResultProcessor.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/StreamResponseResultProcessor.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/StreamResponseResultProcessor.java Sat Feb 23 17:30:33 2008
@@ -15,7 +15,7 @@
package org.apache.tapestry.internal.services;
import org.apache.tapestry.StreamResponse;
-import org.apache.tapestry.internal.TapestryInternalUtils;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.services.ComponentEventResultProcessor;
import org.apache.tapestry.services.Response;
@@ -67,8 +67,8 @@
}
finally
{
- TapestryInternalUtils.close(is);
- TapestryInternalUtils.close(os);
+ InternalUtils.close(is);
+ InternalUtils.close(os);
}
}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/ComponentClassResolver.java Sat Feb 23 17:30:33 2008
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007 The Apache Software Foundation
+// Copyright 2006, 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -14,31 +14,28 @@
package org.apache.tapestry.services;
-import org.apache.tapestry.internal.services.ClassNameLocator;
+import org.apache.tapestry.ioc.services.ClassNameLocator;
/**
- * Resolves page names and component types to fully qualified class names. Pages and components may
- * be provided by the application or inside a <em>mapped package</em>. Page names often appear
- * inside URLs, and component types often appear in component template (when specifying the type of
- * an embedded component).
+ * Resolves page names and component types to fully qualified class names. Pages and components may be provided by the
+ * application or inside a <em>mapped package</em>. Page names often appear inside URLs, and component types often
+ * appear in component template (when specifying the type of an embedded component).
* <p/>
- * The service is configured using a collection of {@link LibraryMapping}s. Each mapping maps a
- * prefix, such as "core" to a root package name, such as "org.apache.tapestry.corelib". The root
- * package is expected to have sub-packages: "pages", "components", "mixins" and "base" ("base" is
- * for base classes).
+ * The service is configured using a collection of {@link LibraryMapping}s. Each mapping maps a prefix, such as "core"
+ * to a root package name, such as "org.apache.tapestry.corelib". The root 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 ClassNameLocator}), to build up a set
- * of case-insensitive maps from logical page name, component type, or mixin type to fully qualified
- * class name.
+ * 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/>
- * Certain ambiguities occur if mapped packages overlap, either in terms of the the prefixes or the
- * package names. Keep things clearly seperate to avoid lookup problems.
+ * Certain ambiguities occur if mapped packages overlap, either in terms of the the prefixes or the package names. Keep
+ * things clearly seperate to avoid lookup problems.
*/
public interface ComponentClassResolver
{
/**
- * Converts a logical page name (such as might be encoded into a URL) into a fully qualified
- * class name. The case of the page name is irrelevant.
+ * Converts a logical page name (such as might be encoded into a URL) into a fully qualified class name. The case of
+ * the page name is irrelevant.
*
* @param logicalPageName logical page name
* @return fully qualified class name for the page
@@ -47,8 +44,7 @@
String resolvePageNameToClassName(String logicalPageName);
/**
- * For a particular path, determines if the path is a logical page name. The check is case
- * insensitive.
+ * For a particular path, determines if the path is a logical page name. The check is case insensitive.
*
* @param pageName potential logical page name
* @return true if the page name is valid
@@ -56,9 +52,8 @@
boolean isPageName(String pageName);
/**
- * Converts a fully qualified page class name into a logical class name (often, for inclusion as
- * part of the URI). This value may later be passed to
- * {@link #resolvePageNameToClassName(String)}.
+ * Converts a fully qualified page class name into a logical class name (often, for inclusion as part of the URI).
+ * This value may later be passed to {@link #resolvePageNameToClassName(String)}.
*
* @param pageClassName fully qualified name of a page class
* @return equivalent logical page name
@@ -67,16 +62,16 @@
String resolvePageClassNameToPageName(String pageClassName);
/**
- * Returns the canonical form of a logical page name. The canonical form uses character case
- * matching the underlying class name.
+ * Returns the canonical form of a logical page name. The canonical form uses character case matching the underlying
+ * class name.
*
* @throws IllegalArgumentException if the page name does not match a logical page name
*/
String canonicalizePageName(String pageName);
/**
- * Converts a component type (a logical component name such as might be used inside a template
- * or annotation) into a fully qualified class name. Case is ignored in resolving the name.
+ * Converts a component type (a logical component name such as might be used inside a template or annotation) into a
+ * fully qualified class name. Case is ignored in resolving the name.
*
* @param componentType a logical component type
* @return fully qualified class name
@@ -85,8 +80,8 @@
String resolveComponentTypeToClassName(String componentType);
/**
- * Converts a logical mixin type (as with component types) into a fully qualified class name.
- * Case is ignored when resolving the name.
+ * Converts a logical mixin type (as with component types) into a fully qualified class name. Case is ignored when
+ * resolving the name.
*
* @param mixinType a logical mixin type
* @return fully qualified class name
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/services/TapestryModule.java Sat Feb 23 17:30:33 2008
@@ -101,7 +101,6 @@
binder.bind(LinkFactory.class, LinkFactoryImpl.class);
binder.bind(LocalizationSetter.class, LocalizationSetterImpl.class);
binder.bind(PageElementFactory.class, PageElementFactoryImpl.class);
- binder.bind(ClassNameLocator.class, ClassNameLocatorImpl.class);
binder.bind(RequestExceptionHandler.class, DefaultRequestExceptionHandler.class);
binder.bind(ResourceStreamer.class, ResourceStreamerImpl.class);
binder.bind(ClientPersistentFieldStorage.class, ClientPersistentFieldStorageImpl.class);
Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/test/TapestryTestCase.java Sat Feb 23 17:30:33 2008
@@ -20,7 +20,6 @@
import org.apache.tapestry.annotations.Path;
import org.apache.tapestry.beaneditor.BeanModel;
import org.apache.tapestry.beaneditor.PropertyModel;
-import org.apache.tapestry.internal.TapestryInternalUtils;
import org.apache.tapestry.internal.services.MapMessages;
import org.apache.tapestry.internal.services.MarkupWriterImpl;
import static org.apache.tapestry.internal.test.CodeEq.codeEq;
@@ -28,6 +27,7 @@
import org.apache.tapestry.ioc.annotations.Inject;
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
import static org.apache.tapestry.ioc.internal.util.CollectionFactory.newList;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
import org.apache.tapestry.ioc.test.IOCTestCase;
import org.apache.tapestry.model.ComponentModel;
import org.apache.tapestry.model.EmbeddedComponentModel;
@@ -932,7 +932,7 @@
}
finally
{
- TapestryInternalUtils.close(is);
+ InternalUtils.close(is);
}
Map<String, String> map = CollectionFactory.newCaseInsensitiveMap();
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/TapestryInternalUtilsTest.java Sat Feb 23 17:30:33 2008
@@ -30,8 +30,6 @@
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
-import java.io.Closeable;
-import java.io.IOException;
import java.util.*;
import java.util.regex.Pattern;
@@ -55,40 +53,6 @@
_classFactory = null;
}
- @Test
- public void close_null_is_noop()
- {
- TapestryInternalUtils.close(null);
- }
-
- @Test
- public void close_success() throws Exception
- {
- Closeable c = newMock(Closeable.class);
-
- c.close();
-
- replay();
-
- TapestryInternalUtils.close(c);
-
- verify();
- }
-
- @Test
- public void close_ignores_exceptions() throws Exception
- {
- Closeable c = newMock(Closeable.class);
-
- c.close();
- setThrowable(new IOException());
-
- replay();
-
- TapestryInternalUtils.close(c);
-
- verify();
- }
@Test(dataProvider = "to_user_presentable")
public void to_user_presentable(String input, String expected)
@@ -99,8 +63,8 @@
@DataProvider(name = "to_user_presentable")
public Object[][] to_user_presentable_data()
{
- return new Object[][]{{"hello", "Hello"}, {"userId", "User Id"}, {"useHTML", "Use HTML"},
- {"underscored_name", "Underscored Name"},};
+ return new Object[][] { { "hello", "Hello" }, { "userId", "User Id" }, { "useHTML", "Use HTML" },
+ { "underscored_name", "Underscored Name" }, };
}
@Test
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ComponentClassResolverImplTest.java Sat Feb 23 17:30:33 2008
@@ -15,6 +15,7 @@
package org.apache.tapestry.internal.services;
import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.ioc.services.ClassNameLocator;
import org.apache.tapestry.services.ComponentClassResolver;
import org.apache.tapestry.services.LibraryMapping;
import org.easymock.EasyMock;
Modified: tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/hibernate/HibernateModule.java Sat Feb 23 17:30:33 2008
@@ -19,7 +19,6 @@
import org.apache.tapestry.internal.hibernate.HibernateSessionManagerImpl;
import org.apache.tapestry.internal.hibernate.HibernateSessionSourceImpl;
import org.apache.tapestry.internal.hibernate.PackageNameHibernateConfigurer;
-import org.apache.tapestry.internal.services.ClassNameLocator;
import org.apache.tapestry.ioc.Configuration;
import static org.apache.tapestry.ioc.IOCConstants.PERTHREAD_SCOPE;
import org.apache.tapestry.ioc.OrderedConfiguration;
@@ -27,6 +26,7 @@
import org.apache.tapestry.ioc.annotations.InjectService;
import org.apache.tapestry.ioc.annotations.Scope;
import org.apache.tapestry.ioc.annotations.Symbol;
+import org.apache.tapestry.ioc.services.ClassNameLocator;
import org.apache.tapestry.ioc.services.PerthreadManager;
import org.apache.tapestry.ioc.services.PropertyShadowBuilder;
import org.apache.tapestry.services.AliasContribution;
Modified: tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/internal/hibernate/PackageNameHibernateConfigurer.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/internal/hibernate/PackageNameHibernateConfigurer.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/internal/hibernate/PackageNameHibernateConfigurer.java (original)
+++ tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry/internal/hibernate/PackageNameHibernateConfigurer.java Sat Feb 23 17:30:33 2008
@@ -16,8 +16,8 @@
import org.apache.tapestry.hibernate.HibernateConfigurer;
import org.apache.tapestry.hibernate.HibernateEntityPackageManager;
-import org.apache.tapestry.internal.services.ClassNameLocator;
import org.apache.tapestry.ioc.internal.util.Defense;
+import org.apache.tapestry.ioc.services.ClassNameLocator;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
Modified: tapestry/tapestry5/trunk/tapestry-hibernate/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-hibernate/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-hibernate/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-hibernate/src/test/java/org/apache/tapestry/internal/hibernate/HibernateSessionSourceImplTest.java Sat Feb 23 17:30:33 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -14,14 +14,10 @@
package org.apache.tapestry.internal.hibernate;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
import org.apache.tapestry.hibernate.HibernateConfigurer;
import org.apache.tapestry.hibernate.HibernateEntityPackageManager;
import org.apache.tapestry.hibernate.HibernateSessionSource;
-import org.apache.tapestry.internal.services.ClassNameLocatorImpl;
+import org.apache.tapestry.ioc.internal.services.ClassNameLocatorImpl;
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
import org.apache.tapestry.test.TapestryTestCase;
import org.example.app0.entities.User;
@@ -31,6 +27,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.Test;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
public class HibernateSessionSourceImplTest extends TapestryTestCase
{
Copied: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImpl.java (from r630031, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImpl.java?p2=tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImpl.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java&r1=630031&r2=630562&rev=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClassNameLocatorImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImpl.java Sat Feb 23 17:30:33 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,10 +12,11 @@
// 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.internal.TapestryInternalUtils;
import org.apache.tapestry.ioc.internal.util.CollectionFactory;
+import org.apache.tapestry.ioc.internal.util.InternalUtils;
+import org.apache.tapestry.ioc.services.ClassNameLocator;
import org.apache.tapestry.ioc.util.Stack;
import java.io.*;
@@ -47,8 +48,7 @@
}
/**
- * Synchronization should not be necessary, but perhaps the underlying ClassLoader's are
- * sensitive to threading.
+ * Synchronization should not be necessary, but perhaps the underlying ClassLoader's are sensitive to threading.
*/
public synchronized Collection<String> locateClassNames(String packageName)
{
@@ -128,8 +128,7 @@
}
/**
- * Check whether container supports opening a stream on a dir/package to get a list of its
- * contents.
+ * Check whether container supports opening a stream on a dir/package to get a list of its contents.
*
* @param packageURL
* @return
@@ -152,7 +151,7 @@
}
finally
{
- TapestryInternalUtils.close(is);
+ InternalUtils.close(is);
}
}
@@ -219,7 +218,7 @@
}
finally
{
- TapestryInternalUtils.close(lineReader);
+ InternalUtils.close(lineReader);
}
}
@@ -247,8 +246,7 @@
}
/**
- * Scan a dir for classes. Will recursively look in the supplied directory and all sub
- * directories.
+ * Scan a dir for classes. Will recursively look in the supplied directory and all sub directories.
*
* @param packageName Name of package that this directory corresponds to.
* @param dir Dir to scan for clases.
@@ -276,10 +274,9 @@
}
/**
- * For URLs to JARs that do not use JarURLConnection - allowed by the servlet spec - attempt to
- * produce a JarFile object all the same. Known servlet engines that function like this include
- * Weblogic and OC4J. This is not a full solution, since an unpacked WAR or EAR will not have
- * JAR "files" as such.
+ * For URLs to JARs that do not use JarURLConnection - allowed by the servlet spec - attempt to produce a JarFile
+ * object all the same. Known servlet engines that function like this include Weblogic and OC4J. This is not a full
+ * solution, since an unpacked WAR or EAR will not have JAR "files" as such.
*
* @param url URL of jar
* @return JarFile or null
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/InternalUtils.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/InternalUtils.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/InternalUtils.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/internal/util/InternalUtils.java Sat Feb 23 17:30:33 2008
@@ -24,6 +24,8 @@
import static org.apache.tapestry.ioc.internal.util.Defense.notBlank;
import org.apache.tapestry.ioc.services.ClassFactory;
+import java.io.Closeable;
+import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -520,5 +522,17 @@
public static void validateMarkerAnnotations(Class[] markerClasses)
{
for (Class markerClass : markerClasses) validateMarkerAnnotation(markerClass);
+ }
+
+ public static void close(Closeable stream)
+ {
+ if (stream != null) try
+ {
+ stream.close();
+ }
+ catch (IOException ex)
+ {
+ // Ignore.
+ }
}
}
Copied: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/ClassNameLocator.java (from r630031, tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/ClassNameLocator.java?p2=tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/ClassNameLocator.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java&r1=630031&r2=630562&rev=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry/internal/services/ClassNameLocator.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/ClassNameLocator.java Sat Feb 23 17:30:33 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,20 +12,19 @@
// 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.services;
import java.util.Collection;
/**
- * Scans the classpath for component classes, classes within particular packages.
+ * Scans the classpath for top-level classes within particular packages.
*/
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. No
- * other filtering (beyond inner classes) occurs, so there's no guarantee that the class names
- * returned are public (for example)
+ * Searches for all classes under the given package name. This consists of all top-level classes in the indicated
+ * package (or any 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
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry/ioc/services/TapestryIOCModule.java Sat Feb 23 17:30:33 2008
@@ -53,6 +53,7 @@
.withMarker(FactoryDefaults.class);
binder.bind(Runnable.class, RegistryStartup.class).withId("RegistryStartup");
binder.bind(MasterObjectProvider.class, MasterObjectProviderImpl.class);
+ binder.bind(ClassNameLocator.class, ClassNameLocatorImpl.class);
}
/**
@@ -100,10 +101,10 @@
* Byte</li> <li>Long to Short</li> <li>Long to Integer</li> <li>Double to Long</li> <li>Double to Float</li>
* <li>Float to Double</li> <li>Long to Double</li> <li>String to Boolean ("false" is always false, other non-blank
* strings are true)</li> <li>Long to Boolean (true if long value is non zero)</li> <li>Null to Boolean (always
- * false)</li> <li>Collection to Boolean (false if empty)</li> <li>Object[] to
- * List</li> <li>primitive[] to List</li> <li>Object to List (by wrapping as a singleton list)</li> <li>String to File</li>
- * <li>String to {@link org.apache.tapestry.ioc.util.TimeInterval}</li>
- * <li>{@link org.apache.tapestry.ioc.util.TimeInterval} to Long</li> </ul>
+ * false)</li> <li>Collection to Boolean (false if empty)</li> <li>Object[] to List</li> <li>primitive[] to
+ * List</li> <li>Object to List (by wrapping as a singleton list)</li> <li>String to File</li> <li>String to {@link
+ * org.apache.tapestry.ioc.util.TimeInterval}</li> <li>{@link org.apache.tapestry.ioc.util.TimeInterval} to
+ * Long</li> </ul>
*/
@SuppressWarnings("unchecked")
public static void contributeTypeCoercer(Configuration<CoercionTuple> configuration)
Copied: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImplTest.java (from r630031, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java)
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImplTest.java?p2=tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImplTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java&r1=630031&r2=630562&rev=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/ClassNameLocatorImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/services/ClassNameLocatorImplTest.java Sat Feb 23 17:30:33 2008
@@ -1,4 +1,4 @@
-// Copyright 2007 The Apache Software Foundation
+// Copyright 2007, 2008 The Apache Software Foundation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -12,10 +12,11 @@
// 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.internal.util.CollectionFactory;
import org.apache.tapestry.ioc.internal.util.InternalUtils;
+import org.apache.tapestry.ioc.services.ClassNameLocator;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -23,14 +24,14 @@
import java.util.Set;
/**
- * Tricky to test, since the code is literally hunting around inside its own brain. There's a lot of
- * room for unintended consequences here.
+ * 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 ClassNameLocatorImplTest extends Assert
{
/**
- * Use various packages in tapestry-ioc to test this, as those don't change unexpectedly(-ish)
- * and we know they are in a JAR on the classpath.
+ * Use various packages in javassist to test this, as those don't change unexpectedly(-ish) and we know they are in
+ * a JAR on the classpath.
*/
@Test
public void classes_in_jar_file()
@@ -38,19 +39,17 @@
ClassNameLocator locator = new ClassNameLocatorImpl();
Collection<String> names = locator
- .locateClassNames("org.apache.tapestry.ioc.internal.util");
+ .locateClassNames("javassist.util");
assertInList(
names,
- "org.apache.tapestry.ioc.internal.util",
- "MessagesImpl",
- "LocalizedNameGenerator",
- "IdAllocator");
+ "javassist.util",
+ "HotSwapper",
+ "Trigger");
assertNotInList(
names,
- "org.apache.tapestry.ioc.internal.util",
- "Orderer$1",
- "InheritanceSearch$State");
+ "javassist.util",
+ "Orderer$1");
}
@Test
@@ -58,19 +57,18 @@
{
ClassNameLocator locator = new ClassNameLocatorImpl();
- Collection<String> names = locator.locateClassNames("org.apache.tapestry.ioc");
+ Collection<String> names = locator.locateClassNames("javassist.util");
assertInList(
names,
- "org.apache.tapestry.ioc",
- "internal.Module",
- "internal.util.MessagesImpl");
+ "javassist.util",
+ "proxy.ProxyFactory");
}
/**
- * This time, we use a selection of classes from tapestry-core, since those will never be
- * packaged inside a JAR at this time.
+ * This time, we use a selection of classes from tapestry-ioc, since those will never be packaged inside a JAR at
+ * this time.
*/
@Test
@@ -79,11 +77,11 @@
ClassNameLocator locator = new ClassNameLocatorImpl();
Collection<String> names = locator
- .locateClassNames("org.apache.tapestry.corelib.components");
+ .locateClassNames("org.apache.tapestry.ioc.services");
- assertInList(names, "org.apache.tapestry.corelib.components", "ActionLink", "Label");
+ assertInList(names, "org.apache.tapestry.ioc.services", "SymbolSource", "TapestryIOCModule");
- assertNotInList(names, "org.apache.tapestry.corelib", "Label$1", "Loop$1");
+ assertNotInList(names, "org.apache.tapestry.ioc.services", "TapestryIOCModule$1");
}
@Test
@@ -91,16 +89,15 @@
{
ClassNameLocator locator = new ClassNameLocatorImpl();
- Collection<String> names = locator.locateClassNames("org.apache.tapestry.corelib");
+ Collection<String> names = locator.locateClassNames("org.apache.tapestry");
assertInList(
names,
- "org.apache.tapestry.corelib",
- "components.ActionLink",
- "base.AbstractField",
- "mixins.RenderInformals");
+ "org.apache.tapestry",
+ "ioc.Orderable",
+ "ioc.services.ChainBuilder");
- assertNotInList(names, "org.apache.tapestry.corelib", "components.Label$1");
+ assertNotInList(names, "org.apache.tapestry.ioc", "services.TapestryIOCModule$1");
}
void assertInList(Collection<String> names, String packageName, String... classNames)
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/InternalUtilsTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/InternalUtilsTest.java?rev=630562&r1=630561&r2=630562&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/InternalUtilsTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry/ioc/internal/util/InternalUtilsTest.java Sat Feb 23 17:30:33 2008
@@ -23,6 +23,8 @@
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
+import java.io.Closeable;
+import java.io.IOException;
import java.lang.reflect.Method;
import java.util.*;
@@ -78,7 +80,7 @@
@Test
public void array_size_when_non_null()
{
- Object[] array = {1, 2, 3};
+ Object[] array = { 1, 2, 3 };
assertEquals(InternalUtils.size(array), 3);
}
@@ -92,8 +94,8 @@
@DataProvider(name = "memberPrefixData")
public Object[][] memberPrefixData()
{
- return new Object[][]{{"simple", "simple"}, {"_name", "name"}, {"$name", "name"},
- {"$_$__$__$_$___$_$_$_$$name$", "name$"}};
+ return new Object[][] { { "simple", "simple" }, { "_name", "name" }, { "$name", "name" },
+ { "$_$__$__$_$___$_$_$_$$name$", "name$" } };
}
@Test
@@ -152,7 +154,8 @@
@DataProvider(name = "capitalize_inputs")
public Object[][] capitalize_inputs()
{
- return new Object[][]{{"hello", "Hello"}, {"Goodbye", "Goodbye"}, {"", ""}, {"a", "A"}, {"A", "A"}};
+ return new Object[][] { { "hello", "Hello" }, { "Goodbye", "Goodbye" }, { "", "" }, { "a", "A" },
+ { "A", "A" } };
}
@Test
@@ -297,7 +300,7 @@
try
{
- InternalUtils.validateMarkerAnnotations(new Class[]{Inject.class, NotRetainedRuntime.class});
+ InternalUtils.validateMarkerAnnotations(new Class[] { Inject.class, NotRetainedRuntime.class });
unreachable();
}
catch (IllegalArgumentException ex)
@@ -318,4 +321,40 @@
{
assertEquals(InternalUtils.joinSorted(Collections.emptyList()), "(none)");
}
+
+ @Test
+ public void close_null_is_noop()
+ {
+ InternalUtils.close(null);
+ }
+
+ @Test
+ public void close_success() throws Exception
+ {
+ Closeable c = newMock(Closeable.class);
+
+ c.close();
+
+ replay();
+
+ InternalUtils.close(c);
+
+ verify();
+ }
+
+ @Test
+ public void close_ignores_exceptions() throws Exception
+ {
+ Closeable c = newMock(Closeable.class);
+
+ c.close();
+ setThrowable(new IOException());
+
+ replay();
+
+ InternalUtils.close(c);
+
+ verify();
+ }
+
}