ImporterBootstrap uses Spring's DefaultResourceLoader to load views

- Handles file: and classpath: references
 - Falls back to classloader-based resource search


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13454 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-03-03 15:25:22 +00:00
parent 4acb627a08
commit 8f1fe3f3df

View File

@@ -62,6 +62,9 @@ import org.alfresco.util.TempFileProvider;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEvent;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.FileCopyUtils; import org.springframework.util.FileCopyUtils;
/** /**
@@ -81,7 +84,7 @@ public class ImporterBootstrap extends AbstractLifecycleBean
// Logger // Logger
private static final Log logger = LogFactory.getLog(ImporterBootstrap.class); private static final Log logger = LogFactory.getLog(ImporterBootstrap.class);
private boolean logEnabled = false; // private boolean logEnabled = false;
private boolean allowWrite = true; private boolean allowWrite = true;
private boolean useExistingStore = false; private boolean useExistingStore = false;
@@ -288,13 +291,11 @@ public class ImporterBootstrap extends AbstractLifecycleBean
} }
/** /**
* Set log * @deprecated Was never used
*
* @param logEnabled
*/ */
public void setLog(boolean logEnabled) public void setLog(boolean logEnabled)
{ {
this.logEnabled = logEnabled; // Ignore
} }
/** /**
@@ -486,8 +487,9 @@ public class ImporterBootstrap extends AbstractLifecycleBean
private Reader getReader(String view, String encoding) private Reader getReader(String view, String encoding)
{ {
// Get Input Stream // Get Input Stream
InputStream viewStream = getClass().getClassLoader().getResourceAsStream(view); ResourceLoader resourceLoader = new DefaultResourceLoader(getClass().getClassLoader());
if (viewStream == null) Resource viewResource = resourceLoader.getResource(view);
if (viewResource == null)
{ {
throw new ImporterException("Could not find view file " + view); throw new ImporterException("Could not find view file " + view);
} }
@@ -495,6 +497,7 @@ public class ImporterBootstrap extends AbstractLifecycleBean
// Wrap in buffered reader // Wrap in buffered reader
try try
{ {
InputStream viewStream = viewResource.getInputStream();
InputStreamReader inputReader = (encoding == null) ? new InputStreamReader(viewStream) : new InputStreamReader(viewStream, encoding); InputStreamReader inputReader = (encoding == null) ? new InputStreamReader(viewStream) : new InputStreamReader(viewStream, encoding);
BufferedReader reader = new BufferedReader(inputReader); BufferedReader reader = new BufferedReader(inputReader);
return reader; return reader;
@@ -503,6 +506,10 @@ public class ImporterBootstrap extends AbstractLifecycleBean
{ {
throw new ImporterException("Could not create reader for view " + view + " as encoding " + encoding + " is not supported"); throw new ImporterException("Could not create reader for view " + view + " as encoding " + encoding + " is not supported");
} }
catch (IOException e)
{
throw new ImporterException("Could not open resource for view " + view);
}
} }
/** /**