Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.itest.home; import java.io.File; import java.io.IOException; import java.net.URL; import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; import com.google.common.io.Files; import com.google.common.io.Resources; import com.enonic.cms.core.home.HomeDir; @Component @Profile("itest") public final class HomeDirFactory implements FactoryBean<HomeDir>, InitializingBean, DisposableBean { private HomeDir homeDir; @Override public void afterPropertiesSet() throws Exception { this.homeDir = new HomeDir(Files.createTempDir()); copyFile("config/cms.properties"); copyFile("config/vhost.properties"); } @Override public void destroy() { FileUtils.deleteQuietly(this.homeDir.toFile()); } private void copyFile(final String resource) throws IOException { final String from = "/homeDir/" + resource; final File to = new File(this.homeDir.toFile(), resource); final URL url = getClass().getResource(from); if (url == null) { throw new IOException("Resource [" + from + "] not found"); } Files.createParentDirs(to); Files.copy(Resources.newInputStreamSupplier(url), to); } public HomeDir getObject() { return this.homeDir; } public Class<?> getObjectType() { return HomeDir.class; } public boolean isSingleton() { return true; } }