X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fmodel%2FWorkspaceElem.java;h=3be73b5e568fc6ee9f78d87c75e8e7c1dee630a5;hb=39ceeb3083d5d9df0cf2f93bd26285e4c33234e3;hp=e35c66da4515f3f799bb2872bff04282eff1d65d;hpb=1e6cf7254fb9f150251594cf0383b3b1c5210517;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/model/WorkspaceElem.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/model/WorkspaceElem.java index e35c66da4..3be73b5e5 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/model/WorkspaceElem.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/model/WorkspaceElem.java @@ -5,7 +5,10 @@ import javax.jcr.NodeIterator; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.query.InvalidQueryException; -import javax.jcr.query.Query; +import javax.jcr.query.QueryManager; +import javax.jcr.query.qom.QueryObjectModel; +import javax.jcr.query.qom.QueryObjectModelFactory; +import javax.jcr.query.qom.Selector; import org.argeo.ArgeoException; import org.argeo.jcr.JcrUtils; @@ -76,16 +79,34 @@ public class WorkspaceElem extends DistParentElem { login(); // Retrieve already existing distribution - Query groupQuery = currSession - .getWorkspace() - .getQueryManager() - .createQuery( - "select * from [" - + SlcTypes.SLC_MODULAR_DISTRIBUTION - + "]", Query.JCR_SQL2); + + // Use QOM rather than SQL2 - it seems more robust for remoting + // with JCR 2.2 (might also be some model refresh issue with the + // remoting) + QueryManager queryManager = currSession.getWorkspace() + .getQueryManager(); + QueryObjectModelFactory factory = queryManager.getQOMFactory(); + Selector selector = factory.selector( + SlcTypes.SLC_MODULAR_DISTRIBUTION, + SlcTypes.SLC_MODULAR_DISTRIBUTION); + // Curiously this works... + // Selector selector = factory.selector( + // SlcTypes.SLC_JAR_FILE, + // SlcTypes.SLC_JAR_FILE); + + QueryObjectModel query = factory.createQuery(selector, null, + null, null); + + // Query groupQuery = currSession + // .getWorkspace() + // .getQueryManager() + // .createQuery( + // "select * from [" + // + SlcTypes.SLC_MODULAR_DISTRIBUTION + // + "]", Query.JCR_SQL2); NodeIterator distributions = null; try { - distributions = groupQuery.execute().getNodes(); + distributions = query.execute().getNodes(); } catch (InvalidQueryException iqe) { // For legacy only does not throw an exception while // browsing @@ -131,4 +152,4 @@ public class WorkspaceElem extends DistParentElem { JcrUtils.logoutQuietly(currSession); super.dispose(); } -} +} \ No newline at end of file