]> git.argeo.org Git - gpl/argeo-slc.git/blob - legacy/org.argeo.slc.support/src/org/argeo/slc/vfs/VfsResourceFactory.java
Merge remote-tracking branch 'origin/master' into testing
[gpl/argeo-slc.git] / legacy / org.argeo.slc.support / src / org / argeo / slc / vfs / VfsResourceFactory.java
1 package org.argeo.slc.vfs;
2
3 import org.apache.commons.vfs2.CacheStrategy;
4 import org.apache.commons.vfs2.FileSystemManager;
5 import org.apache.commons.vfs2.impl.StandardFileSystemManager;
6 import org.springframework.beans.factory.FactoryBean;
7 import org.springframework.beans.factory.InitializingBean;
8 import org.springframework.core.io.Resource;
9
10 public class VfsResourceFactory implements FactoryBean, InitializingBean {
11 private String url;
12 private FileSystemManager fileSystemManager;
13
14 public Object getObject() throws Exception {
15 return new VfsResource(fileSystemManager.resolveFile(url));
16 }
17
18 public Class<?> getObjectType() {
19 return Resource.class;
20 }
21
22 public boolean isSingleton() {
23 return false;
24 }
25
26 public void afterPropertiesSet() throws Exception {
27 if (fileSystemManager == null) {
28 fileSystemManager = new StandardFileSystemManager();
29 ((StandardFileSystemManager) fileSystemManager)
30 .setCacheStrategy(CacheStrategy.ON_RESOLVE);
31 ((StandardFileSystemManager) fileSystemManager).init();
32 }
33
34 }
35
36 }