Save This Page
Home » org.apache.sling.commons.osgi-2.0.6-source-release » org.apache.sling.commons.osgi.bundleversion » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one
    3    * or more contributor license agreements.  See the NOTICE file
    4    * distributed with this work for additional information
    5    * regarding copyright ownership.  The ASF licenses this file
    6    * to you under the Apache License, Version 2.0 (the
    7    * "License"); you may not use this file except in compliance
    8    * with the License.  You may obtain a copy of the License at
    9    *
   10    *   http://www.apache.org/licenses/LICENSE-2.0
   11    *
   12    * Unless required by applicable law or agreed to in writing,
   13    * software distributed under the License is distributed on an
   14    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   15    * KIND, either express or implied.  See the License for the
   16    * specific language governing permissions and limitations
   17    * under the License.
   18    */
   19   package org.apache.sling.commons.osgi.bundleversion;
   20   
   21   import org.osgi.framework.Bundle;
   22   import org.osgi.framework.Constants;
   23   import org.osgi.framework.Version;
   24   
   25   /** BundleVersionInfo based on a Bundle object */
   26   public class BundleBundleVersionInfo extends BundleVersionInfo<Bundle> {
   27   
   28       private Bundle source;
   29       private final long lastModified;
   30       
   31       public BundleBundleVersionInfo(Bundle b) {
   32           source = b;
   33           
   34           long lastMod = BND_LAST_MODIFIED_MISSING;
   35           final String mod = (String)source.getHeaders().get(BND_LAST_MODIFIED);
   36           if(mod != null) {
   37               try {
   38                   lastMod = Long.parseLong(mod);
   39               } catch(NumberFormatException ignore) {
   40               }
   41           }
   42           lastModified = lastMod;
   43       }
   44       
   45       public long getBundleLastModified() {
   46           return lastModified;
   47       }
   48   
   49       public String getBundleSymbolicName() {
   50           return source.getSymbolicName();
   51       }
   52   
   53       public Bundle getSource() {
   54           return source;
   55       }
   56   
   57       public Version getVersion() {
   58           return (Version)source.getHeaders().get(Constants.BUNDLE_VERSION);
   59       }
   60   
   61       public boolean isBundle() {
   62           return true;
   63       }
   64   
   65       public boolean isSnapshot() {
   66           return getVersion().toString().contains(SNAPSHOT_MARKER);
   67       }
   68   }

Save This Page
Home » org.apache.sling.commons.osgi-2.0.6-source-release » org.apache.sling.commons.osgi.bundleversion » [javadoc | source]