/** * OpenSpotLight - Open Source IT Governance Platform * * Copyright (c) 2009, CARAVELATECH CONSULTORIA E TECNOLOGIA EM INFORMATICA LTDA * or third-party contributors as indicated by the @author tags or express * copyright attribution statements applied by the authors. All third-party * contributions are distributed under license by CARAVELATECH CONSULTORIA E * TECNOLOGIA EM INFORMATICA LTDA. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA * *********************************************************************** * OpenSpotLight - Plataforma de Governança de TI de Código Aberto * * Direitos Autorais Reservados (c) 2009, CARAVELATECH CONSULTORIA E TECNOLOGIA * EM INFORMATICA LTDA ou como contribuidores terceiros indicados pela etiqueta * @author ou por expressa atribuição de direito autoral declarada e atribuída pelo autor. * Todas as contribuições de terceiros estão distribuídas sob licença da * CARAVELATECH CONSULTORIA E TECNOLOGIA EM INFORMATICA LTDA. * * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os * termos da Licença Pública Geral Menor do GNU conforme publicada pela Free Software * Foundation. * * Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA * GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA * FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor do GNU para mais detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto com este * programa; se não, escreva para: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA */ package org.openspotlight.bundle.language.java.bundle.test; import org.junit.Ignore; import org.openspotlight.jcr.provider.DefaultJcrDescriptor; import org.openspotlight.jcr.provider.JcrConnectionDescriptor; import org.openspotlight.jcr.provider.JcrConnectionProvider; import org.openspotlight.jcr.provider.SessionWithLock; import javax.jcr.*; import javax.jcr.lock.LockException; import javax.jcr.nodetype.ConstraintViolationException; import javax.jcr.nodetype.NoSuchNodeTypeException; import javax.jcr.version.VersionException; import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @Ignore public class ClasspathImport { private static File extractZippedOnTempFile() throws IOException, FileNotFoundException { final File temp = File.createTempFile("stress-data", ".xml"); final ZipInputStream zis = new ZipInputStream(new FileInputStream("src/test/resources/data/exported-stress-data.xml.zip")); final OutputStream fos = new BufferedOutputStream(new FileOutputStream(temp)); final byte data[] = new byte[2048]; int count; ZipEntry entry; while ((entry = zis.getNextEntry()) != null) { if (entry.getName().endsWith("xml")) { while ((count = zis.read(data, 0, 2048)) != -1) { fos.write(data, 0, count); } break; } } fos.flush(); fos.close(); zis.close(); return temp; } public static void importClassPathData( final JcrConnectionDescriptor descriptor ) throws IOException, FileNotFoundException, RepositoryException, PathNotFoundException, ItemExistsException, ConstraintViolationException, VersionException, InvalidSerializedDataException, LockException, AccessDeniedException, InvalidItemStateException, NoSuchNodeTypeException { final File temp = extractZippedOnTempFile(); importDataFromFile(temp, descriptor); } private static void importDataFromFile( final File temp, final JcrConnectionDescriptor descriptor ) throws FileNotFoundException, RepositoryException, IOException, PathNotFoundException, ItemExistsException, ConstraintViolationException, VersionException, InvalidSerializedDataException, LockException, AccessDeniedException, InvalidItemStateException, NoSuchNodeTypeException { final InputStream is = new FileInputStream(temp); final JcrConnectionProvider desc = JcrConnectionProvider.createFromData(descriptor); desc.closeRepositoryAndCleanResources(); final SessionWithLock session = desc.openSession(); final Node root = session.getRootNode(); final BufferedInputStream bufferedInputStream = new BufferedInputStream(is); session.importXML(root.getPath(), bufferedInputStream, ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING); session.save(); session.logout(); } public static void main( final String... args ) throws Exception { importClassPathData(DefaultJcrDescriptor.TEMP_DESCRIPTOR); } }