|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.broadleafcommerce.common.file.service.BroadleafFileServiceImpl
@Service(value="blFileService") public class BroadleafFileServiceImpl
Many components in the Broadleaf Framework can benefit from creating and manipulating temporary files as well
as storing and accessing files in a remote repository (such as AmazonS3).
This service provides a pluggable way to provide those services via FileServiceProvider implementations.
This service can be used by any component that needs to write files to an area shared by multiple application servers.
For example usage, see SiteMapGenerator. The Broadleaf CMS module also uses this component to load, store, and
manipulate images for the file-system.
Generally, the process to create a new asset in the shared file system is ...
1. Call initializeWorkArea() to get a temporary directory
2. Create files, directories, etc. using the FileWorkArea.filePathLocation as the root directory.
3. Once your file processing is complete, call #addOrUpdateResources(FileWorkArea, FileApplicationType) to
4. Call #closeWorkArea() to clear out the temporary files
| Field Summary | |
|---|---|
protected FileServiceProvider |
defaultFileServiceProvider
|
protected String |
fileServiceClasspathDirectory
|
protected List<FileServiceProvider> |
fileServiceProviders
|
protected int |
maxGeneratedDirectoryDepth
|
protected String |
tempFileSystemBaseDirectory
|
| Constructor Summary | |
|---|---|
BroadleafFileServiceImpl()
|
|
| Method Summary | |
|---|---|
protected String |
addLeadingSlash(String fileName)
|
void |
addOrUpdateResource(FileWorkArea workArea,
File file,
boolean removeFilesFromWorkArea)
Takes in a work area and a fileName. |
void |
addOrUpdateResources(FileWorkArea workArea,
boolean removeFilesFromWorkArea)
Takes in a work area and application type and moves all of the files to the configured FileProvider. |
void |
addOrUpdateResources(FileWorkArea workArea,
List<File> files,
boolean removeFilesFromWorkArea)
Takes in a temporary work area and a list of Files and copies them to the configured FileProvider's permanent storage. |
protected void |
buildFileList(File file,
Collection<File> fileList)
Adds the file to the passed in Collection. |
protected String |
buildFilePath(String directory,
String fileName)
Builds a file path that ensures the directory and filename are separated by a single separator. |
protected void |
checkFiles(FileWorkArea workArea,
List<File> fileList)
|
boolean |
checkForResourceOnClassPath(String name)
Returns true if the resource is available on the classpath. |
void |
closeWorkArea(FileWorkArea fwArea)
Closes the passed in work area. |
protected StringBuilder |
getBaseDirectory(boolean skipSite)
Returns the baseDirectory for writing and reading files as the property assetFileSystemPath if it exists or java.tmp.io if that property has not been set. |
InputStream |
getClasspathResource(String name)
Allows assets to be included in the Java classpath. |
FileServiceProvider |
getDefaultFileServiceProvider()
|
List<FileServiceProvider> |
getFileServiceProviders()
|
File |
getLocalResource(String resourceName)
Checks for a resource in the temporary directory of the file-system. |
protected File |
getLocalResource(String resourceName,
boolean skipSite)
|
int |
getMaxGeneratedDirectoryDepth()
|
File |
getResource(String name)
Returns a File representing the passed in name. |
File |
getResource(String name,
FileApplicationType applicationType)
Returns a File representing the passed in name and application type. |
File |
getSharedLocalResource(String resourceName)
Checks for a resource in the temporary directory of the file-system. |
protected String |
getTempDirectory(StringBuilder baseDirectory)
Returns a directory that is unique for this work area. |
String |
getTempFileSystemBaseDirectory()
|
FileWorkArea |
initializeWorkArea()
Create a file work area that can be used for further operations. |
protected org.springframework.core.io.ClassPathResource |
lookupResourceOnClassPath(String name)
|
protected String |
removeLeadingSlash(String fileName)
|
boolean |
removeResource(String resourceName)
Removes the resource matching the passed in file name from the FileProvider |
protected FileServiceProvider |
selectFileServiceProvider()
Returns the FileServiceProvider that can handle the passed in application type. |
void |
setDefaultFileServiceProvider(FileServiceProvider defaultFileServiceProvider)
|
void |
setFileServiceProviders(List<FileServiceProvider> fileServiceProviders)
|
void |
setMaxGeneratedDirectoryDepth(int maxGeneratedDirectoryDepth)
|
void |
setTempFileSystemBaseDirectory(String tempFileSystemBaseDirectory)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected List<FileServiceProvider> fileServiceProviders
protected FileServiceProvider defaultFileServiceProvider
@Value(value="${file.service.temp.file.base.directory}")
protected String tempFileSystemBaseDirectory
@Value(value="${asset.server.max.generated.file.system.directories}")
protected int maxGeneratedDirectoryDepth
@Value(value="${asset.server.file.classpath.directory}")
protected String fileServiceClasspathDirectory
| Constructor Detail |
|---|
public BroadleafFileServiceImpl()
| Method Detail |
|---|
public FileWorkArea initializeWorkArea()
initializeWorkArea in interface BroadleafFileServicepublic void closeWorkArea(FileWorkArea fwArea)
closeWorkArea in interface BroadleafFileServiceWork - Areapublic File getResource(String name)
BroadleafFileServiceBroadleafFileService.getResource(String, FileApplicationType) method
which may access a copy of the file that is stored locally.
getResource in interface BroadleafFileServicename - - fully qualified path to the resource
protected File getLocalResource(String resourceName,
boolean skipSite)
public File getLocalResource(String resourceName)
BroadleafFileService
getLocalResource in interface BroadleafFileServicepublic File getSharedLocalResource(String resourceName)
BroadleafFileService
getSharedLocalResource in interface BroadleafFileService
public File getResource(String name,
FileApplicationType applicationType)
BroadleafFileService
getResource in interface BroadleafFileServicename - - fully qualified path to the resourceapplicationType - - The type of file being accessed
protected String buildFilePath(String directory,
String fileName)
directory - fileName -
public boolean checkForResourceOnClassPath(String name)
BroadleafFileService
checkForResourceOnClassPath in interface BroadleafFileServiceprotected org.springframework.core.io.ClassPathResource lookupResourceOnClassPath(String name)
public InputStream getClasspathResource(String name)
BroadleafFileService
getClasspathResource in interface BroadleafFileServicename - - fully qualified path to the resource
public boolean removeResource(String resourceName)
removeResource in interface BroadleafFileServiceresourceName - - fully qualified path to the resource
public void addOrUpdateResource(FileWorkArea workArea,
File file,
boolean removeFilesFromWorkArea)
addOrUpdateResource in interface BroadleafFileServiceworkArea - applicationType - fileNames - removeFilesFromWorkArea -
public void addOrUpdateResources(FileWorkArea workArea,
boolean removeFilesFromWorkArea)
addOrUpdateResources in interface BroadleafFileServiceworkArea - applicationType -
public void addOrUpdateResources(FileWorkArea workArea,
List<File> files,
boolean removeFilesFromWorkArea)
BroadleafFileService
addOrUpdateResources in interface BroadleafFileServiceprotected FileServiceProvider selectFileServiceProvider()
applicationType -
protected void checkFiles(FileWorkArea workArea,
List<File> fileList)
protected String removeLeadingSlash(String fileName)
protected String addLeadingSlash(String fileName)
protected StringBuilder getBaseDirectory(boolean skipSite)
protected String getTempDirectory(StringBuilder baseDirectory)
protected void buildFileList(File file,
Collection<File> fileList)
file - fileList - public String getTempFileSystemBaseDirectory()
public void setTempFileSystemBaseDirectory(String tempFileSystemBaseDirectory)
public List<FileServiceProvider> getFileServiceProviders()
public void setFileServiceProviders(List<FileServiceProvider> fileServiceProviders)
public int getMaxGeneratedDirectoryDepth()
public void setMaxGeneratedDirectoryDepth(int maxGeneratedDirectoryDepth)
public FileServiceProvider getDefaultFileServiceProvider()
public void setDefaultFileServiceProvider(FileServiceProvider defaultFileServiceProvider)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||