@Override
    public void process() {
        try {
            if (containers.length > 1) {
                throw new RuntimeException("This processor can only handle single containers");
            }
            ContainerUnloader container = containers[0];

            // Get config
            Configuration config = createConfiguration(container);

            //Workspace
            ProjectController pc = Lookup.getDefault().lookup(ProjectController.class);
            if (workspace == null) {
                workspace = pc.openNewWorkspace(config);
            } else if(!configurationMatchesExisting(config, workspace)) {
                // The configuration check failed, stop processing
                return;
            }
            processMeta(container, workspace);

            if (container.getSource() != null && !container.getSource().isEmpty()) {
                pc.setSource(workspace, container.getSource());

                // Remove extensions
                pc.renameWorkspace(workspace, container.getSource().replaceAll("(?<!^)[.].*", ""));
            }

            Progress.start(progressTicket, calculateWorkUnits());
            process(container, workspace);
            Progress.finish(progressTicket);
        } finally {
            clean();
        }
    }
@Test
    public void testProcess() {
        ImportContainerImpl importContainer = new ImportContainerImpl();
        NodeDraft nodeDraft = new NodeDraftImpl(importContainer, "1", 1);
        importContainer.addNode(nodeDraft);

        Workspace workspace = new WorkspaceImpl(null, 1);
        DefaultProcessor defaultProcessor = new DefaultProcessor();
        defaultProcessor.setContainers(new ImportContainerImpl[] {importContainer});
        defaultProcessor.setWorkspace(workspace);
        defaultProcessor.process();

        GraphModel graphModel = workspace.getLookup().lookup(GraphModel.class);
        Node node = graphModel.getGraph().getNode("1");
        Assert.assertNotNull(node);
    }