]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/JarFileIndexer.java
Import bundle zip (Eclipse)
[gpl/argeo-slc.git] / runtime / org.argeo.slc.repo / src / main / java / org / argeo / slc / repo / JarFileIndexer.java
index 92460b02138e5d46c52d92e12d715eefc2fcebad..55019c4d47caa64acee8bd749b871c6347c863e8 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2007-2012 Mathieu Baudier
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.argeo.slc.repo;
 
 import java.io.ByteArrayInputStream;
@@ -59,8 +74,8 @@ public class JarFileIndexer implements NodeIndexer {
 
                        jarIn = new JarInputStream(fileBinary.getStream());
                        Manifest manifest = jarIn.getManifest();
-                       if(manifest==null){
-                               log.error(fileNode+" has no MANIFEST");
+                       if (manifest == null) {
+                               log.error(fileNode + " has no MANIFEST");
                                return;
                        }
                        bo = new ByteArrayOutputStream();
@@ -93,9 +108,11 @@ public class JarFileIndexer implements NodeIndexer {
                        // OSGi
                        if (attrs.containsKey(new Name(Constants.BUNDLE_SYMBOLICNAME))) {
                                addOsgiMetadata(fileNode, attrs);
+                               JcrUtils.updateLastModified(fileNode);
                                if (log.isTraceEnabled())
                                        log.trace("Indexed OSGi bundle " + fileNode);
                        } else {
+                               JcrUtils.updateLastModified(fileNode);
                                if (log.isTraceEnabled())
                                        log.trace("Indexed JAR file " + fileNode);
                        }
@@ -335,9 +352,11 @@ public class JarFileIndexer implements NodeIndexer {
                boolean in = false;
                for (char c : str.toCharArray()) {
                        if (c == ',') {
-                               if (!in) {
+                               if (!in) {// new package
                                        res.add(curr.toString());
                                        curr = new StringBuffer("");
+                               } else {// a ',' within " "
+                                       curr.append(c);
                                }
                        } else if (c == '\"') {
                                in = !in;