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.felix.bundleplugin;
20  
21  
22  import aQute.lib.osgi.Builder;
23  
24  
25  /**
26   * Extension of {@link aQute.lib.osgi.Builder} to handle package versions
27   * 
28   * @author <a href="mailto:dev@felix.apache.org">Felix Project Team</a>
29   */
30  public final class PackageVersionAnalyzer extends Builder
31  {
32      /*
33       * Remove META-INF subfolders from exports and set package versions to bundle version.
34       */
35      /*
36          public Map analyzeBundleClasspath( Jar dot, Map bundleClasspath, Map contained, Map referred, Map uses )
37              throws IOException
38          {
39              Map classSpace = super.analyzeBundleClasspath( dot, bundleClasspath, contained, referred, uses );
40              String bundleVersion = getProperty( BUNDLE_VERSION );
41              for ( Iterator it = contained.entrySet().iterator(); it.hasNext(); )
42              {
43                  Map.Entry entry = ( Map.Entry ) it.next();
44  
45                  // remove packages under META-INF
46                  String packageName = ( String ) entry.getKey();
47                  if ( packageName.startsWith( "META-INF." ) )
48                  {
49                      it.remove();
50                  }
51  
52                  // set package versions to bundle version values
53                  if ( bundleVersion != null )
54                  {
55                      Map values = ( Map ) entry.getValue();
56                      if ( values.get( "version" ) == null )
57                      {
58                          values.put( "version", bundleVersion );
59                      }
60                  }
61              }
62              return classSpace;
63          }
64      */
65  }