Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
O
openbis
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
sispub
openbis
Commits
ae3fea12
Commit
ae3fea12
authored
14 years ago
by
brinn
Browse files
Options
Downloads
Patches
Plain Diff
refactor: replace TiffCompressor by FileConverter
SVN: 19560
parent
c5f9f7aa
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
datamover/source/java/ch/systemsx/cisd/datamover/transformation/TiffCompressorTransformator.java
+40
-54
40 additions, 54 deletions
...datamover/transformation/TiffCompressorTransformator.java
with
40 additions
and
54 deletions
datamover/source/java/ch/systemsx/cisd/datamover/transformation/TiffCompressorTransformator.java
+
40
−
54
View file @
ae3fea12
...
...
@@ -17,18 +17,17 @@
package
ch.systemsx.cisd.datamover.transformation
;
import
java.io.File
;
import
java.util.Arrays
;
import
java.util.Properties
;
import
org.apache.log4j.Logger
;
import
ch.systemsx.cisd.common.compression.file.ICompressionMethod
;
import
ch.systemsx.cisd.common.compression.tiff.TiffCompressor
;
import
ch.systemsx.cisd.common.compression.tiff.TiffConvertCompressionMethod
;
import
ch.systemsx.cisd.common.compression.tiff.TiffCpCompressionMethod
;
import
ch.systemsx.cisd.base.exceptions.InterruptedExceptionUnchecked
;
import
ch.systemsx.cisd.common.exceptions.ConfigurationFailureException
;
import
ch.systemsx.cisd.common.exceptions.EnvironmentFailureException
;
import
ch.systemsx.cisd.common.exceptions.Status
;
import
ch.systemsx.cisd.common.fileconverter.FileConverter
;
import
ch.systemsx.cisd.common.fileconverter.TiffCompressionStrategy
;
import
ch.systemsx.cisd.common.fileconverter.TiffCompressionStrategy.TiffCompressionMethod
;
import
ch.systemsx.cisd.common.logging.LogCategory
;
import
ch.systemsx.cisd.common.logging.LogFactory
;
import
ch.systemsx.cisd.common.utilities.PropertyUtils
;
...
...
@@ -41,11 +40,11 @@ import ch.systemsx.cisd.common.utilities.PropertyUtils;
public
class
TiffCompressorTransformator
implements
ITransformator
{
private
static
final
Logger
operationLog
=
LogFactory
.
getLogger
(
LogCategory
.
OPERATION
,
TiffCompressorTransformator
.
class
);
private
static
final
Logger
operationLog
=
LogFactory
.
getLogger
(
LogCategory
.
OPERATION
,
TiffCompressorTransformator
.
class
);
private
static
final
Logger
notificationLog
=
LogFactory
.
getLogger
(
LogCategory
.
NOTIFY
,
TiffCompressorTransformator
.
class
);
private
static
final
Logger
notificationLog
=
LogFactory
.
getLogger
(
LogCategory
.
NOTIFY
,
TiffCompressorTransformator
.
class
);
private
static
final
String
COMPRESSION_COMMAND_KEY
=
"compression-command"
;
...
...
@@ -53,77 +52,64 @@ public class TiffCompressorTransformator implements ITransformator
private
static
final
String
THREADS_PER_PROCESSOR_KEY
=
"threads-per-processor"
;
private
static
final
CompressionCommand
DEFAULT_COMPRESSION_COMMAND
=
CompressionCommand
.
TIFFCP
;
private
static
final
TiffCompressionMethod
DEFAULT_COMPRESSION_METHOD
=
TiffCompressionMethod
.
LIBTIFF_TIFFCP
;
private
static
final
int
DEFAULT_THREADS_PER_
PROCESS
OR
=
1
;
private
static
final
double
DEFAULT_THREADS_PER_
CPU_C
OR
E
=
1
.0
;
/**
* Enumeration of supported methods of compression with names matching transformator property
* value.
*/
private
enum
CompressionCommand
{
TIFFCP
,
CONVERT
}
private
final
ICompressionMethod
compressionMethod
;
private
final
TiffCompressionStrategy
compressionStrategy
;
private
final
int
threadsPer
Process
or
;
private
final
double
threadsPer
CpuC
or
e
;
public
TiffCompressorTransformator
(
Properties
properties
)
{
operationLog
.
info
(
"TiffCompressorTransformator created with properties: \n"
+
properties
);
compression
Method
=
extractCompressionMethod
(
properties
);
threadsPer
Process
or
=
extractThreadsPerProcessor
(
properties
);
compression
Strategy
=
extractCompressionMethod
(
properties
);
threadsPer
CpuC
or
e
=
extractThreadsPerProcessor
(
properties
);
}
private
int
extractThreadsPerProcessor
(
Properties
properties
)
private
double
extractThreadsPerProcessor
(
Properties
properties
)
{
int
result
=
PropertyUtils
.
get
Int
(
properties
,
THREADS_PER_PROCESSOR_KEY
,
DEFAULT_THREADS_PER_
PROCESS
OR
);
double
result
=
PropertyUtils
.
get
Double
(
properties
,
THREADS_PER_PROCESSOR_KEY
,
DEFAULT_THREADS_PER_
CPU_C
OR
E
);
if
(
result
>
0
)
{
return
result
;
}
else
{
throw
ConfigurationFailureException
.
fromTemplate
(
"Number of threads per processor set for property '%s' is %s but needs to be greater than %s"
,
THREADS_PER_PROCESSOR_KEY
,
result
,
0
);
throw
ConfigurationFailureException
.
fromTemplate
(
"Number of threads per processor set for property '%s' is %s "
+
"but needs to be greater than %s"
,
THREADS_PER_PROCESSOR_KEY
,
result
,
0
);
}
}
private
I
Compression
Method
extractCompressionMethod
(
Properties
properties
)
private
Tiff
Compression
Strategy
extractCompressionMethod
(
Properties
properties
)
{
final
String
compressionCommandName
=
PropertyUtils
.
getProperty
(
properties
,
COMPRESSION_COMMAND_KEY
);
Compression
Comman
d
compressionCommand
=
DEFAULT_COMPRESSION_
COMMAN
D
;
PropertyUtils
.
getProperty
(
properties
,
COMPRESSION_COMMAND_KEY
)
.
toUpperCase
()
;
Tiff
Compression
Metho
d
compressionCommand
=
DEFAULT_COMPRESSION_
METHO
D
;
if
(
compressionCommandName
!=
null
)
{
try
if
(
compressionCommandName
.
equals
(
"TIFFCP"
))
{
compressionCommand
=
Compression
Command
.
valueOf
(
compressionCommandName
)
;
}
catch
(
IllegalArgumentException
ex
)
compressionCommand
=
Tiff
Compression
Method
.
LIBTIFF_TIFFCP
;
}
else
if
(
compressionCommandName
.
equals
(
"CONVERT"
)
)
{
throw
ConfigurationFailureException
.
fromTemplate
(
"Compression command '%s' set for property '%s' is not among supported commands: %s"
,
compressionCommandName
,
COMPRESSION_COMMAND_KEY
,
Arrays
.
toString
(
CompressionCommand
.
values
()));
compressionCommand
=
TiffCompressionMethod
.
IMAGEMAGICK_CONVERT
;
}
else
{
throw
ConfigurationFailureException
.
fromTemplate
(
"Compression command '%s' set for property '%s' is not "
+
"among supported commands: TIFFCP, CONVERT"
,
compressionCommandName
,
COMPRESSION_COMMAND_KEY
);
}
}
final
String
compressionTypeOrNull
=
PropertyUtils
.
getProperty
(
properties
,
COMPRESSION_TYPE_KEY
);
switch
(
compressionCommand
)
{
case
CONVERT:
return
TiffConvertCompressionMethod
.
create
(
compressionTypeOrNull
);
case
TIFFCP:
return
TiffCpCompressionMethod
.
create
(
compressionTypeOrNull
);
}
return
null
;
// not possible
return
new
TiffCompressionStrategy
(
compressionCommand
,
compressionTypeOrNull
);
}
//
...
...
@@ -140,13 +126,13 @@ public class TiffCompressorTransformator implements ITransformator
try
{
errorMsgOrNull
=
TiffCompressor
.
compress
(
path
.
getAbsolutePath
(),
threadsPerProcessor
,
compression
Method
);
FileConverter
.
tryFailuresToString
(
FileConverter
.
performConversion
(
path
,
compression
Strategy
,
threadsPerCpuCore
,
Integer
.
MAX_VALUE
)
);
if
(
errorMsgOrNull
!=
null
)
{
notificationLog
.
error
(
errorMsgOrNull
);
}
}
catch
(
InterruptedException
ex
)
}
catch
(
InterruptedException
Unchecked
ex
)
{
ex
.
printStackTrace
();
return
Status
.
createError
(
"Tiff compression was interrupted:"
+
ex
.
getMessage
());
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment