public static CDOSession openSession(Map<String, Object> jobContext) { RepositoryConnector connector = getRepositoryConnector(jobContext); return connector.createSession(); }
private void hookListener(final RepositoryConnector repositoryConnector) { CDONet4jSession session = repositoryConnector.createSession(); session.options().setPassiveUpdateMode(PassiveUpdateMode.ADDITIONS); CDOView view = repositoryConnector.openView(session); view.options().addChangeSubscriptionPolicy(CDOAdapterPolicy.ALL); CDOResource resource = view.getResource(ServerConstants.WORKSPACE_RESOURCE); workspace = (Workspace) resource.getContents().get(0); cache = CacheBuilder.newBuilder().expireAfterAccess(10, TimeUnit.MINUTES).concurrencyLevel(5).maximumWeight(50000).weigher(new PropertySizeWeigher()).build(new PropertyFileCacheLoader(repositoryConnector.openView(session))); //this is very expensive, so don't do it during the bind phase new Thread(new Runnable() { @Override public void run() { long time = System.currentTimeMillis(); workspace.eAdapters().add(new ListeningAdapter()); LOGGER.info("Installed EContentAdapter in {} seconds",(System.currentTimeMillis()-time)/1000); } },"Install Persistence Listener").start(); }
writer = IndexActivator.getDefault().obtainIndexWriter(); writer.deleteAll(); session = connector.createSession(); CDOView view = connector.openView(session); CDOResource resource = view.getResource(ServerConstants.WORKSPACE_RESOURCE);