X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.ads%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fads%2FAdsContainer.java;h=eab158618d0adc99a02caa360659fccdd04d67b1;hb=cdfd09387221a87b3a36f54fd3d5e8a6f4279baf;hp=4a36f721db3c749c133fede75eb40e5c5dafac5d;hpb=c6c3aa132f6559ac1e2fa015cf2efba92802eba0;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java b/server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java index 4a36f721d..eab158618 100644 --- a/server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java +++ b/server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java @@ -1,6 +1,8 @@ package org.argeo.server.ads; import java.io.File; +import java.io.FileOutputStream; +import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.Properties; @@ -11,11 +13,13 @@ import javax.naming.NamingException; import javax.naming.directory.InitialDirContext; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.directory.server.configuration.MutableServerStartupConfiguration; import org.apache.directory.server.core.configuration.ShutdownConfiguration; import org.apache.directory.server.jndi.ServerContextFactory; +import org.argeo.ArgeoException; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.Resource; @@ -55,15 +59,23 @@ public class AdsContainer implements InitializingBean, DisposableBean { .getAbsolutePath() + File.separator + "ldif")); + // Deals with provided LDIF files if (ldifs.size() > 0) configuration.getLdifDirectory().mkdirs(); for (Resource ldif : ldifs) { - FileUtils.copyURLToFile(ldif.getURL(), new File(configuration - .getLdifDirectory().getAbsolutePath() - + File.separator + ldif.getFilename().replace(':', '_'))); - if (log.isDebugEnabled()) - log.debug("Copied " + ldif + " to LDIF directory " - + configuration.getLdifDirectory()); + File targetFile = new File(configuration.getLdifDirectory() + .getAbsolutePath() + + File.separator + ldif.getFilename().replace(':', '_')); + OutputStream output = null; + try { + output = new FileOutputStream(targetFile); + IOUtils.copy(ldif.getInputStream(), output); + if (log.isDebugEnabled()) + log.debug("Copied " + ldif + " to LDIF directory " + + configuration.getLdifDirectory()); + } finally { + IOUtils.closeQuietly(output); + } } Properties env = new Properties(); @@ -76,8 +88,8 @@ public class AdsContainer implements InitializingBean, DisposableBean { try { new InitialDirContext(env); } catch (NamingException e) { - throw new RuntimeException( - "Failed to start Apache Directory server", e); + throw new ArgeoException("Failed to start Apache Directory server", + e); } } @@ -99,8 +111,8 @@ public class AdsContainer implements InitializingBean, DisposableBean { try { new InitialContext(env); } catch (NamingException e) { - throw new RuntimeException( - "Failed to stop Apache Directory server", e); + throw new ArgeoException("Failed to stop Apache Directory server", + e); } if (workingDirectory.exists() && deleteWorkingDirOnExit) {