blob: 5bb513d9093a336aa2e687d7fe430574957cc1a1 [file] [log] [blame]
/*
* Copyright (c) 2012, 2013 Eike Stepper (Berlin, Germany) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eike Stepper - initial API and implementation
*/
package org.eclipse.emf.cdo.tests.hibernate;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.server.CDOServerExporter;
import org.eclipse.emf.cdo.server.CDOServerImporter;
import org.eclipse.emf.cdo.session.CDOSession;
import org.eclipse.emf.cdo.spi.server.InternalRepository;
import org.eclipse.emf.cdo.tests.AbstractCDOTest;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.cdo.util.CommitException;
import org.eclipse.emf.common.util.TreeIterator;
import org.eclipse.emf.ecore.EObject;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
/**
* @author Martin Taal
*/
public class Hibernate_Failure_Test extends AbstractCDOTest
{
@Override
protected void doSetUp() throws Exception
{
disableConsole();
super.doSetUp();
skipStoreWithoutRawAccess();
}
@Override
protected void doTearDown() throws Exception
{
disableConsole();
super.doTearDown();
}
/**
* TODO
* {@link org.eclipse.emf.cdo.server.IStoreAccessor.Raw#rawStore(org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision, org.eclipse.net4j.util.om.monitor.OMMonitor)
* rawStore()} is not adequate with range-based list mappings because they need deltas!
*/
@Skips("DB.ranges")
public void testImport() throws Exception
{
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
// CDOResource resource = transaction.createResource(getResourcePath("/res1"));
transaction.commit();
// Customer eike = createCustomer("Eike");
// resource.getContents().add(eike);
// SalesOrder salesOrder = createSalesOrder(eike);
// salesOrder.getOrderDetails().add(getModel1Factory().createOrderDetail());
// resource.getContents().add(salesOrder);
// transaction.commit();
session.close();
InternalRepository repo1 = getRepository();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
CDOServerExporter.XML exporter = new CDOServerExporter.XML(repo1);
exporter.exportRepository(baos);
System.out.println(baos.toString());
InternalRepository repo2 = getRepository("repo2", false);
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
CDOServerImporter.XML importer = new CDOServerImporter.XML(repo2);
importer.importRepository(bais);
useAfterImport("repo2");
}
private void useAfterImport(String repoName) throws CommitException
{
CDOSession session2 = openSession(repoName);
CDOTransaction transaction2 = session2.openTransaction();
// Read all repo contents
TreeIterator<EObject> iter = transaction2.getRootResource().getAllContents();
while (iter.hasNext())
{
iter.next();
}
// Add content from a new package
CDOResource resource = transaction2.createResource(getResourcePath("/r1"));
resource.getContents().add(getModel3Factory().createPolygon());
transaction2.commit();
session2.close();
}
}