Hi Sergiu,
On Mar 13, 2009, at 12:38 AM, sdumitriu (SVN) wrote:
> Author: sdumitriu
> Date: 2009-03-13 00:38:08 +0100 (Fri, 13 Mar 2009)
> New Revision: 17602
>
> Modified:
> platform/core/trunk/xwiki-cache/xwiki-cache-tests/src/main/java/
> org/xwiki/cache/tests/AbstractTestCache.java
> platform/core/trunk/xwiki-containers/xwiki-container-api/src/main/
> java/org/xwiki/container/ApplicationContext.java
> platform/core/trunk/xwiki-containers/xwiki-container-portlet/src/
> main/java/org/xwiki/container/portlet/PortletApplicationContext.java
> platform/core/trunk/xwiki-containers/xwiki-container-servlet/src/
> main/java/org/xwiki/container/servlet/ServletApplicationContext.java
> platform/core/trunk/xwiki-core/src/test/java/com/xpn/xwiki/test/
> TestApplicationContext.java
> Log:
> XWIKI-3312: Add a getTemporaryDirectory() method to ApplicationContext
> Done.
> Patch submitted by Dan Miron, enhanced and extended.
>
>
> Modified: platform/core/trunk/xwiki-cache/xwiki-cache-tests/src/main/
> java/org/xwiki/cache/tests/AbstractTestCache.java
> ===================================================================
> --- platform/core/trunk/xwiki-cache/xwiki-cache-tests/src/main/java/
> org/xwiki/cache/tests/AbstractTestCache.java 2009-03-12 23:03:56 UTC
> (rev 17601)
> +++ platform/core/trunk/xwiki-cache/xwiki-cache-tests/src/main/java/
> org/xwiki/cache/tests/AbstractTestCache.java 2009-03-12 23:38:08 UTC
> (rev 17602)
> @@ -19,6 +19,7 @@
> */
> package org.xwiki.cache.tests;
>
> +import java.io.File;
> import java.io.InputStream;
> import java.net.MalformedURLException;
> import java.net.URL;
> @@ -130,6 +131,21 @@
> }
>
> /**
> + * {...@inheritdoc}
> + *
> + * @see
> org.xwiki.container.ApplicationContext#getTemporaryDirectory()
> + */
> + public File getTemporaryDirectory()
> + {
> + try {
> + // The system temporary directory is a good place for
> temporary test data.
> + return new File(System.getProperty("java.io.tmpdir"));
> + } catch (SecurityException e) {
> + return new File(".");
> + }
> + }
I don't understand why you had to modify the cache module.
> +
> + /**
> * @return a instance of the cache factory.
> * @throws Exception error when searching for cache factory
> component.
> */
>
> Modified: platform/core/trunk/xwiki-containers/xwiki-container-api/
> src/main/java/org/xwiki/container/ApplicationContext.java
> ===================================================================
> --- platform/core/trunk/xwiki-containers/xwiki-container-api/src/
> main/java/org/xwiki/container/ApplicationContext.java 2009-03-12
> 23:03:56 UTC (rev 17601)
> +++ platform/core/trunk/xwiki-containers/xwiki-container-api/src/
> main/java/org/xwiki/container/ApplicationContext.java 2009-03-12
> 23:38:08 UTC (rev 17602)
> @@ -20,6 +20,7 @@
> */
> package org.xwiki.container;
>
> +import java.io.File;
> import java.io.InputStream;
> import java.net.MalformedURLException;
> import java.net.URL;
> @@ -27,5 +28,15 @@
> public interface ApplicationContext
> {
> InputStream getResourceAsStream(String resourceName);
> +
> URL getResource(String resourceName) throws MalformedURLException;
> +
> + /**
> + * Gets the directory which the container must provide for
> storing temporary data. The contents of this directory
> + * may be deleted between container restarts (<em>temporary</
> em>, as the name implies), so it is not a safe place to
> + * store permanent/important data.
> + *
> + * @return a {...@link File} object pointing to a directory that
> the application can use for storing temporary files
> + */
> + File getTemporaryDirectory();
I don't like this too much but it's ok for now. However I don't think
this is a good generic solution for the future. I think it would be
better to implement a temporary storage that uses the same storage api
as the other storages (main storage, version storage, attachment
storage, etc). The pb with returning a File is that 1) it ties us to a
disk storage which might not be available in all environments for
various reasons and 2) it's not extensible and you cannot swap another
implementation (like it you want to use a memory storage for example).
For this we need the new storage/model of course which is why it's ok
to have this now.
WDYT?
Thanks
-Vincent
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs