]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/NormalizeWorkspace.java
Clean session management.
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / commands / NormalizeWorkspace.java
index 77cb0821202d9be79266c38e35e927c18528a7dd..d70d904f9bfdaf5028b6c6fed1f46018defdca53 100644 (file)
@@ -74,10 +74,10 @@ public class NormalizeWorkspace extends AbstractHandler implements SlcNames {
        private Keyring keyring;
        private Repository repository;
 
+       // RElevant default node indexers 
        private ArtifactIndexer artifactIndexer = new ArtifactIndexer();
        private JarFileIndexer jarFileIndexer = new JarFileIndexer();
        private DistributionBundleIndexer distBundleIndexer = new DistributionBundleIndexer();
-
        private PdeSourcesIndexer pdeSourceIndexer = new PdeSourcesIndexer(
                        artifactIndexer, jarFileIndexer);
 
@@ -143,9 +143,14 @@ public class NormalizeWorkspace extends AbstractHandler implements SlcNames {
                                                + session.getWorkspace().getName(),
                                                expectedCount.intValue());
                                NormalizingTraverser tiv = new NormalizingTraverser(monitor);
-                               Node artifactBaseNode =session.getNode(artifactBasePath); 
+                               Node artifactBaseNode = session.getNode(artifactBasePath);
                                artifactBaseNode.accept(tiv);
                        } catch (Exception e) {
+                               log.error("Error normalizing workspace "
+                                               + session.getWorkspace().getName() + ": "
+                                               + e.getMessage());
+                               if (log.isErrorEnabled())
+                                       e.printStackTrace();
                                return new Status(IStatus.ERROR, DistPlugin.ID,
                                                "Cannot normalize distribution "
                                                                + session.getWorkspace().getName(), e);
@@ -187,12 +192,22 @@ public class NormalizeWorkspace extends AbstractHandler implements SlcNames {
                                                        artifactIndexer.index(node);
                                                        jarFileIndexer.index(node);
                                                        distBundleIndexer.index(node);
-                                                       node.getSession().save();
+                                                       if (node.getSession().hasPendingChanges()) {
+                                                               node.getSession().save();
+                                                               if (log.isDebugEnabled())
+                                                                       log.debug("Processed jar artifact "
+                                                                                       + node.getPath());
+                                                       }
                                                        monitor.worked(1);
-                                                       if (log.isDebugEnabled())
-                                                               log.debug("Processed artifact "
-                                                                               + node.getPath());
                                                }
+                               } else if (node.getName().endsWith(".pom")) {
+                                       distBundleIndexer.index(node);
+                                       if (node.getSession().hasPendingChanges()) {
+                                               node.getSession().save();
+                                               if (log.isDebugEnabled())
+                                                       log.debug("Processed pom artifact " + node.getPath());
+                                       }
+                                       monitor.worked(1);
                                } else {
                                        monitor.worked(1);
                                }