X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2FSedFilteredResource.java;h=676918e981f5902e24d3c0d2bf2958f8f7ad291c;hb=8c588d3128b3885ac4fe0a0d2fbd358640d336a5;hp=c012fd04877d8d79afe960106323dd2a37cff893;hpb=0bcca59c19e554f94ec03af0dc7c44047a2eade7;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/SedFilteredResource.java b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/SedFilteredResource.java index c012fd048..676918e98 100644 --- a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/SedFilteredResource.java +++ b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/SedFilteredResource.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Mathieu Baudier + * Copyright (C) 2007-2012 Argeo GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.argeo.slc.core.execution; import java.io.File; @@ -49,20 +48,22 @@ public class SedFilteredResource implements FactoryBean, InitializingBean { private String charset = "UTF-8"; private Charset cs; private CharsetDecoder decoder; - //private CharsetEncoder encoder; + + // private CharsetEncoder encoder; public Object getObject() throws Exception { if (filters.size() == 0) return source; - //int capacity = 100 * 1024;// 100 KB + // int capacity = 100 * 1024;// 100 KB ByteBuffer bb; if (source instanceof ByteArrayResource) { bb = ByteBuffer.wrap(((ByteArrayResource) source).getByteArray()); } else { + FileInputStream fis = null; try { File file = source.getFile(); - FileInputStream fis = new FileInputStream(file); + fis = new FileInputStream(file); FileChannel fc = fis.getChannel(); // Get the file's size and then map it into memory @@ -79,6 +80,8 @@ public class SedFilteredResource implements FactoryBean, InitializingBean { // FIXME : use nio to parse the stream as it goes bb = ByteBuffer.wrap(IOUtils.toByteArray(source .getInputStream())); + } finally { + IOUtils.closeQuietly(fis); } } CharBuffer cb = decoder.decode(bb); @@ -87,10 +90,10 @@ public class SedFilteredResource implements FactoryBean, InitializingBean { String output = matcher.replaceAll(patterns.get(pattern)); cb = CharBuffer.wrap(output); } -// ByteBuffer bbout = encoder.encode(cb); -// ByteArrayOutputStream out = new ByteArrayOutputStream(capacity); -// WritableByteChannel wchannel = Channels.newChannel(out); -// wchannel.write(bbout); + // ByteBuffer bbout = encoder.encode(cb); + // ByteArrayOutputStream out = new ByteArrayOutputStream(capacity); + // WritableByteChannel wchannel = Channels.newChannel(out); + // wchannel.write(bbout); ByteArrayResource res = new ByteArrayResource(cb.toString().getBytes()); return res; } @@ -106,7 +109,7 @@ public class SedFilteredResource implements FactoryBean, InitializingBean { public void afterPropertiesSet() throws Exception { cs = Charset.forName(charset); decoder = cs.newDecoder(); - //encoder = cs.newEncoder(); + // encoder = cs.newEncoder(); for (String sedStr : filters) { sedStr = sedStr.trim();