felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cziege...@apache.org
Subject svn commit: r1614569 [1/5] - in /felix/trunk/framework: ./ src/main/appended-resources/META-INF/ src/main/java/org/apache/felix/framework/ src/main/java/org/osgi/dto/ src/main/java/org/osgi/framework/ src/main/java/org/osgi/framework/dto/ src/main/java...
Date Wed, 30 Jul 2014 07:22:35 GMT
Author: cziegeler
Date: Wed Jul 30 07:22:32 2014
New Revision: 1614569

URL: http://svn.apache.org/r1614569
Log:
FELIX-4590 : [Core R6] Update to R6 API

Added:
    felix/trunk/framework/src/main/java/org/osgi/dto/
    felix/trunk/framework/src/main/java/org/osgi/dto/DTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/dto/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/dto/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/PrototypeServiceFactory.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/ServiceObjects.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/dto/
    felix/trunk/framework/src/main/java/org/osgi/framework/dto/BundleDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/dto/FrameworkDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/dto/ServiceReferenceDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/dto/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/dto/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/bundle/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/bundle/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/resolver/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/resolver/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/service/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/service/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/weaving/WovenClassListener.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/weaving/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/weaving/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/launch/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/launch/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/NativeNamespace.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/dto/
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/dto/BundleStartLevelDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/dto/FrameworkStartLevelDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/dto/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/dto/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/dto/
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/dto/BundleRevisionDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/dto/BundleWireDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/dto/BundleWiringDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/dto/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/dto/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/CapabilityDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/CapabilityRefDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/RequirementDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/RequirementRefDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/ResourceDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/WireDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/WiringDTO.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/dto/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/resource/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/resource/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/service/packageadmin/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/service/packageadmin/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/service/startlevel/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/service/startlevel/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/service/url/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/service/url/packageinfo
    felix/trunk/framework/src/main/java/org/osgi/util/tracker/package-info.java   (with props)
    felix/trunk/framework/src/main/java/org/osgi/util/tracker/packageinfo
Modified:
    felix/trunk/framework/pom.xml
    felix/trunk/framework/src/main/appended-resources/META-INF/DEPENDENCIES
    felix/trunk/framework/src/main/appended-resources/META-INF/NOTICE
    felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkWiringImpl.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
    felix/trunk/framework/src/main/java/org/apache/felix/framework/WovenClassImpl.java
    felix/trunk/framework/src/main/java/org/osgi/framework/AdaptPermission.java
    felix/trunk/framework/src/main/java/org/osgi/framework/AdminPermission.java
    felix/trunk/framework/src/main/java/org/osgi/framework/AllServiceListener.java
    felix/trunk/framework/src/main/java/org/osgi/framework/Bundle.java
    felix/trunk/framework/src/main/java/org/osgi/framework/BundleActivator.java
    felix/trunk/framework/src/main/java/org/osgi/framework/BundleContext.java
    felix/trunk/framework/src/main/java/org/osgi/framework/BundleEvent.java
    felix/trunk/framework/src/main/java/org/osgi/framework/BundleException.java
    felix/trunk/framework/src/main/java/org/osgi/framework/BundleListener.java
    felix/trunk/framework/src/main/java/org/osgi/framework/BundlePermission.java
    felix/trunk/framework/src/main/java/org/osgi/framework/BundleReference.java
    felix/trunk/framework/src/main/java/org/osgi/framework/CapabilityPermission.java
    felix/trunk/framework/src/main/java/org/osgi/framework/Configurable.java
    felix/trunk/framework/src/main/java/org/osgi/framework/Constants.java
    felix/trunk/framework/src/main/java/org/osgi/framework/Filter.java
    felix/trunk/framework/src/main/java/org/osgi/framework/FrameworkEvent.java
    felix/trunk/framework/src/main/java/org/osgi/framework/FrameworkListener.java
    felix/trunk/framework/src/main/java/org/osgi/framework/FrameworkUtil.java
    felix/trunk/framework/src/main/java/org/osgi/framework/InvalidSyntaxException.java
    felix/trunk/framework/src/main/java/org/osgi/framework/PackagePermission.java
    felix/trunk/framework/src/main/java/org/osgi/framework/ServiceEvent.java
    felix/trunk/framework/src/main/java/org/osgi/framework/ServiceException.java
    felix/trunk/framework/src/main/java/org/osgi/framework/ServiceFactory.java
    felix/trunk/framework/src/main/java/org/osgi/framework/ServiceListener.java
    felix/trunk/framework/src/main/java/org/osgi/framework/ServicePermission.java
    felix/trunk/framework/src/main/java/org/osgi/framework/ServiceReference.java
    felix/trunk/framework/src/main/java/org/osgi/framework/ServiceRegistration.java
    felix/trunk/framework/src/main/java/org/osgi/framework/SignerProperty.java
    felix/trunk/framework/src/main/java/org/osgi/framework/SynchronousBundleListener.java
    felix/trunk/framework/src/main/java/org/osgi/framework/UnfilteredServiceListener.java
    felix/trunk/framework/src/main/java/org/osgi/framework/Version.java
    felix/trunk/framework/src/main/java/org/osgi/framework/VersionRange.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/bundle/CollisionHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/bundle/EventHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/bundle/FindHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/resolver/ResolverHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/resolver/ResolverHookFactory.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/service/EventHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/service/EventListenerHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/service/FindHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/service/ListenerHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/weaving/WeavingException.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/weaving/WeavingHook.java
    felix/trunk/framework/src/main/java/org/osgi/framework/hooks/weaving/WovenClass.java
    felix/trunk/framework/src/main/java/org/osgi/framework/launch/Framework.java
    felix/trunk/framework/src/main/java/org/osgi/framework/launch/FrameworkFactory.java
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/AbstractWiringNamespace.java
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/BundleNamespace.java
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/ExecutionEnvironmentNamespace.java
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/HostNamespace.java
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/IdentityNamespace.java
    felix/trunk/framework/src/main/java/org/osgi/framework/namespace/PackageNamespace.java
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/BundleStartLevel.java
    felix/trunk/framework/src/main/java/org/osgi/framework/startlevel/FrameworkStartLevel.java
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/BundleCapability.java
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/BundleRequirement.java
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/BundleRevision.java
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/BundleRevisions.java
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/BundleWire.java
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/BundleWiring.java
    felix/trunk/framework/src/main/java/org/osgi/framework/wiring/FrameworkWiring.java
    felix/trunk/framework/src/main/java/org/osgi/resource/Capability.java
    felix/trunk/framework/src/main/java/org/osgi/resource/Namespace.java
    felix/trunk/framework/src/main/java/org/osgi/resource/Requirement.java
    felix/trunk/framework/src/main/java/org/osgi/resource/Resource.java
    felix/trunk/framework/src/main/java/org/osgi/resource/Wire.java
    felix/trunk/framework/src/main/java/org/osgi/resource/Wiring.java
    felix/trunk/framework/src/main/java/org/osgi/service/packageadmin/ExportedPackage.java
    felix/trunk/framework/src/main/java/org/osgi/service/packageadmin/PackageAdmin.java
    felix/trunk/framework/src/main/java/org/osgi/service/packageadmin/RequiredBundle.java
    felix/trunk/framework/src/main/java/org/osgi/service/startlevel/StartLevel.java
    felix/trunk/framework/src/main/java/org/osgi/service/url/AbstractURLStreamHandlerService.java
    felix/trunk/framework/src/main/java/org/osgi/service/url/URLConstants.java
    felix/trunk/framework/src/main/java/org/osgi/service/url/URLStreamHandlerService.java
    felix/trunk/framework/src/main/java/org/osgi/service/url/URLStreamHandlerSetter.java
    felix/trunk/framework/src/main/java/org/osgi/util/tracker/AbstractTracked.java
    felix/trunk/framework/src/main/java/org/osgi/util/tracker/BundleTracker.java
    felix/trunk/framework/src/main/java/org/osgi/util/tracker/BundleTrackerCustomizer.java
    felix/trunk/framework/src/main/java/org/osgi/util/tracker/ServiceTracker.java
    felix/trunk/framework/src/main/java/org/osgi/util/tracker/ServiceTrackerCustomizer.java
    felix/trunk/framework/src/main/resources/default.properties

Modified: felix/trunk/framework/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/framework/pom.xml?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/pom.xml (original)
+++ felix/trunk/framework/pom.xml Wed Jul 30 07:22:32 2014
@@ -28,16 +28,16 @@
   <name>Apache Felix Framework</name>
   <artifactId>org.apache.felix.framework</artifactId>
   <version>4.5.0-SNAPSHOT</version>
-  <dependencies>
-  </dependencies>
+
   <properties>
     <dollar>$</dollar>
   </properties>
-    <scm>
+  <scm>
       <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/framework</connection>
       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/framework</developerConnection>
       <url>http://svn.apache.org/repos/asf/felix/framework</url>
-    </scm>
+  </scm>
+
   <build>
     <plugins>
       <plugin>
@@ -60,7 +60,14 @@
             <Bundle-Name>Apache Felix Framework</Bundle-Name>
             <Bundle-Description>OSGi R5 framework implementation.</Bundle-Description>
             <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
-            <Export-Package>org.osgi.framework.*;-split-package:=merge-first,org.osgi.resource,org.osgi.service.*,org.osgi.util.tracker</Export-Package>
+            <Export-Package>
+                org.osgi.framework.*;-split-package:=merge-first,
+                org.osgi.resource,
+                org.osgi.resource.dto,
+                org.osgi.service.*,
+                org.osgi.util.tracker,
+                org.osgi.dto
+            </Export-Package>
             <Private-Package>org.apache.felix.framework.*</Private-Package>
             <Import-Package>!*</Import-Package>
           </instructions>
@@ -116,4 +123,12 @@
       </resource>
     </resources>
   </build>
+  <dependencies>
+    <dependency>
+       <groupId>org.osgi</groupId>
+       <artifactId>org.osgi.annotation</artifactId>
+       <version>6.0.0</version>
+       <scope>provided</scope>
+    </dependency>
+  </dependencies>
 </project>

Modified: felix/trunk/framework/src/main/appended-resources/META-INF/DEPENDENCIES
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/appended-resources/META-INF/DEPENDENCIES?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/appended-resources/META-INF/DEPENDENCIES (original)
+++ felix/trunk/framework/src/main/appended-resources/META-INF/DEPENDENCIES Wed Jul 30 07:22:32 2014
@@ -1,4 +1,4 @@
-Copyright 2013 The Apache Software Foundation
+Copyright 2014 The Apache Software Foundation
 
 This software was developed at the Apache Software Foundation
 (http://www.apache.org) and may have dependencies on other
@@ -8,14 +8,14 @@ I. Included Third-Party Software
 
 This product includes software developed at
 The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2012).
+Copyright (c) OSGi Alliance (2000, 2014).
 Licensed under the Apache License 2.0.
 
 II. Used Third-Party Software
 
 This product uses software developed at
 The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2012).
+Copyright (c) OSGi Alliance (2000, 2014).
 Licensed under the Apache License 2.0.
 
 III. License Summary

Modified: felix/trunk/framework/src/main/appended-resources/META-INF/NOTICE
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/appended-resources/META-INF/NOTICE?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/appended-resources/META-INF/NOTICE (original)
+++ felix/trunk/framework/src/main/appended-resources/META-INF/NOTICE Wed Jul 30 07:22:32 2014
@@ -1,4 +1,4 @@
 This product includes software developed at
 The OSGi Alliance (http://www.osgi.org/).
-Copyright (c) OSGi Alliance (2000, 2012).
+Copyright (c) OSGi Alliance (2000, 2014).
 Licensed under the Apache License 2.0.

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/BundleContextImpl.java Wed Jul 30 07:22:32 2014
@@ -34,7 +34,9 @@ import org.osgi.framework.Constants;
 import org.osgi.framework.Filter;
 import org.osgi.framework.FrameworkListener;
 import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceFactory;
 import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceObjects;
 import org.osgi.framework.ServicePermission;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
@@ -513,4 +515,19 @@ class BundleContextImpl implements Felix
 
         throw new IllegalStateException("Invalid BundleContext.");
     }
+
+    /* (non-Javadoc)
+     * @see org.osgi.framework.BundleContext#registerService(java.lang.Class, org.osgi.framework.ServiceFactory, java.util.Dictionary)
+     */
+    public <S> ServiceRegistration<S> registerService(Class<S> clazz,
+            ServiceFactory<S> factory, Dictionary<String, ?> properties) {
+        throw new UnsupportedOperationException(); // TODO
+    }
+
+    /* (non-Javadoc)
+     * @see org.osgi.framework.BundleContext#getServiceObjects(org.osgi.framework.ServiceReference)
+     */
+    public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference) {
+        throw new UnsupportedOperationException(); // TODO
+    }
 }
\ No newline at end of file

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/Felix.java Wed Jul 30 07:22:32 2014
@@ -18,10 +18,37 @@
  */
 package org.apache.felix.framework;
 
-import java.io.*;
-import java.net.*;
-import java.security.*;
-import java.util.*;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLStreamHandler;
+import java.security.AccessControlException;
+import java.security.Permission;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.WeakHashMap;
 
 import org.apache.felix.framework.BundleWiringImpl.BundleClassLoader;
 import org.apache.felix.framework.ServiceRegistry.ServiceRegistryCallbacks;
@@ -478,6 +505,7 @@ public class Felix extends BundleImpl im
 
     // This overrides the default behavior of BundleImpl.getFramework()
     // to return "this", since the system bundle is the framework.
+    @Override
     Felix getFramework()
     {
         return this;
@@ -505,41 +533,49 @@ public class Felix extends BundleImpl im
         return super.adapt(type);
     }
 
+    @Override
     public long getBundleId()
     {
         return 0;
     }
 
+    @Override
     public long getLastModified()
     {
         return 0;
     }
 
+    @Override
     void setLastModified(long l)
     {
         // Ignore.
     }
 
+    @Override
     String _getLocation()
     {
         return Constants.SYSTEM_BUNDLE_LOCATION;
     }
 
+    @Override
     public int getPersistentState()
     {
         return Bundle.ACTIVE;
     }
 
+    @Override
     public void setPersistentStateInactive()
     {
         // Ignore.
     }
 
+    @Override
     public void setPersistentStateActive()
     {
         // Ignore.
     }
 
+    @Override
     public void setPersistentStateUninstalled()
     {
         // Ignore.
@@ -551,6 +587,7 @@ public class Felix extends BundleImpl im
      * @param defaultLevel This parameter is ignored by the system bundle.
      * @return Always returns zero.
     **/
+    @Override
     int getStartLevel(int defaultLevel)
     {
         return 0;
@@ -564,11 +601,13 @@ public class Felix extends BundleImpl im
      * @throws IllegalArgumentException Always throws exception since system
      *         bundle's start level cannot be changed.
     **/
+    @Override
     void setStartLevel(int level)
     {
         throw new IllegalArgumentException("Cannot set the system bundle's start level.");
     }
 
+    @Override
     public boolean hasPermission(Object obj)
     {
         return true;
@@ -821,7 +860,7 @@ public class Felix extends BundleImpl im
                             {
                                 if (bundle != this)
                                 {
-                                    setBundleProtectionDomain((BundleImpl) bundle, (BundleRevisionImpl) ((BundleImpl) bundle).adapt(BundleRevisionImpl.class));
+                                    setBundleProtectionDomain((BundleImpl) bundle, ((BundleImpl) bundle).adapt(BundleRevisionImpl.class));
                                 }
                             }
                             catch (Exception ex)
@@ -887,6 +926,7 @@ public class Felix extends BundleImpl im
      *
      * @throws org.osgi.framework.BundleException if any error occurs.
     **/
+    @Override
     public void start() throws BundleException
     {
         int startLevel = FelixConstants.FRAMEWORK_DEFAULT_STARTLEVEL;
@@ -936,6 +976,7 @@ public class Felix extends BundleImpl im
         fireFrameworkEvent(FrameworkEvent.STARTED, this, null);
     }
 
+    @Override
     public void start(int options) throws BundleException
     {
         start();
@@ -945,6 +986,7 @@ public class Felix extends BundleImpl im
      * This method asynchronously shuts down the framework, it must be called at the
      * end of a session in order to shutdown all active bundles.
     **/
+    @Override
     public void stop() throws BundleException
     {
         Object sm = System.getSecurityManager();
@@ -978,6 +1020,7 @@ public class Felix extends BundleImpl im
         }
     }
 
+    @Override
     public void stop(int options) throws BundleException
     {
         stop();
@@ -1022,16 +1065,19 @@ public class Felix extends BundleImpl im
         return event;
     }
 
+    @Override
     public void uninstall() throws BundleException
     {
         throw new BundleException("Cannot uninstall the system bundle.");
     }
 
+    @Override
     public void update() throws BundleException
     {
         update(null);
     }
 
+    @Override
     public void update(InputStream is) throws BundleException
     {
         Object sm = System.getSecurityManager();
@@ -1114,6 +1160,7 @@ public class Felix extends BundleImpl im
         }).start();
     }
 
+    @Override
     public String toString()
     {
         return getSymbolicName() + " [" + getBundleId() +"]";
@@ -3196,7 +3243,7 @@ public class Felix extends BundleImpl im
                 }
             }
         }
-        return (Bundle[]) bundles.toArray(new Bundle[bundles.size()]);
+        return bundles.toArray(new Bundle[bundles.size()]);
     }
 
     /**
@@ -3208,7 +3255,7 @@ public class Felix extends BundleImpl im
     Bundle[] getBundles()
     {
         Collection<Bundle> bundles = m_installedBundles[IDENTIFIER_MAP_IDX].values();
-        return (Bundle[]) bundles.toArray(new Bundle[bundles.size()]);
+        return bundles.toArray(new Bundle[bundles.size()]);
     }
 
     void addBundleListener(BundleImpl bundle, BundleListener l)
@@ -3573,7 +3620,7 @@ public class Felix extends BundleImpl im
     {
         try
         {
-            return (S) m_registry.getService(bundle, ref);
+            return m_registry.getService(bundle, ref);
         }
         catch (ServiceException ex)
         {
@@ -4385,7 +4432,7 @@ public class Felix extends BundleImpl im
             // Remove dependencies.
             m_dependencies.removeDependencies(bundle);
             // Reset the bundle object.
-            ((BundleImpl) bundle).refresh();
+            bundle.refresh();
             // Fire UNRESOLVED event if necessary
             // and notify state change..
             if (fire)
@@ -5249,4 +5296,12 @@ public class Felix extends BundleImpl im
     {
         return m_urlHandlersActivator.getContentHandlerService(mimeType);
     }
+
+    /* (non-Javadoc)
+     * @see org.osgi.framework.launch.Framework#init(org.osgi.framework.FrameworkListener[])
+     */
+    public void init(FrameworkListener... listeners) throws BundleException {
+        this.init(); // TODO
+    }
+
 }

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkWiringImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkWiringImpl.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkWiringImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/FrameworkWiringImpl.java Wed Jul 30 07:22:32 2014
@@ -21,11 +21,15 @@ package org.apache.felix.framework;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+
 import org.osgi.framework.AdminPermission;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkListener;
 import org.osgi.framework.ServiceRegistration;
+import org.osgi.framework.wiring.BundleCapability;
 import org.osgi.framework.wiring.FrameworkWiring;
+import org.osgi.resource.Requirement;
 import org.osgi.service.packageadmin.PackageAdmin;
 
 class FrameworkWiringImpl implements FrameworkWiring, Runnable
@@ -185,4 +189,11 @@ class FrameworkWiringImpl implements Fra
             }
         }
     }
+
+    /* (non-Javadoc)
+     * @see org.osgi.framework.wiring.FrameworkWiring#findProviders(org.osgi.resource.Requirement)
+     */
+    public Collection<BundleCapability> findProviders(Requirement requirement) {
+        throw new UnsupportedOperationException(); // TODO
+    }
 }
\ No newline at end of file

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java Wed Jul 30 07:22:32 2014
@@ -21,14 +21,25 @@ package org.apache.felix.framework;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import org.apache.felix.framework.util.MapToDictionary;
 import org.apache.felix.framework.util.StringMap;
 import org.apache.felix.framework.util.Util;
 import org.apache.felix.framework.wiring.BundleCapabilityImpl;
-import org.osgi.framework.*;
+import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleReference;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceException;
+import org.osgi.framework.ServiceFactory;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.framework.wiring.BundleCapability;
 import org.osgi.framework.wiring.BundleRevision;
 import org.osgi.framework.wiring.BundleWire;
@@ -307,6 +318,7 @@ class ServiceRegistrationImpl implements
         // Add the framework assigned properties.
         props.put(Constants.OBJECTCLASS, m_classes);
         props.put(Constants.SERVICE_ID, m_serviceId);
+        props.put("service.bundleid", m_bundle.getBundleId()); // TODO use constants once available
 
         // Update the service property map.
         m_propMap = props;
@@ -470,6 +482,7 @@ class ServiceRegistrationImpl implements
             return ServiceRegistrationImpl.this.getUsingBundles();
         }
 
+        @Override
         public String toString()
         {
             String[] ocs = (String[]) getProperty("objectClass");

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/WovenClassImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/WovenClassImpl.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/WovenClassImpl.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/WovenClassImpl.java Wed Jul 30 07:22:32 2014
@@ -24,6 +24,7 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
+
 import org.apache.felix.framework.util.ImmutableList;
 import org.apache.felix.framework.util.manifestparser.ManifestParser;
 import org.osgi.framework.AdminPermission;
@@ -373,4 +374,12 @@ class WovenClassImpl implements WovenCla
         }
         return bytes;
     }
+
+    /* (non-Javadoc)
+     * @see org.osgi.framework.hooks.weaving.WovenClass#getState()
+     */
+    public int getState() {
+        throw new UnsupportedOperationException(); // TODO
+    }
+
 }
\ No newline at end of file

Added: felix/trunk/framework/src/main/java/org/osgi/dto/DTO.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/osgi/dto/DTO.java?rev=1614569&view=auto
==============================================================================
--- felix/trunk/framework/src/main/java/org/osgi/dto/DTO.java (added)
+++ felix/trunk/framework/src/main/java/org/osgi/dto/DTO.java Wed Jul 30 07:22:32 2014
@@ -0,0 +1,273 @@
+/*
+ * Copyright (c) OSGi Alliance (2012, 2014). All Rights Reserved.
+ * 
+ * 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.osgi.dto;
+
+import java.lang.reflect.Array;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.IdentityHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Super type for Data Transfer Objects.
+ * 
+ * <p>
+ * A Data Transfer Object (DTO) is easily serializable having only public fields
+ * of primitive types and their wrapper classes, Strings, and DTOs. List, Set,
+ * Map and array aggregates may also be used. The aggregates must only hold
+ * objects of the listed types or aggregates.
+ * 
+ * <p>
+ * The object graph from a Data Transfer Object must be a tree to simplify
+ * serialization and deserialization.
+ * 
+ * @author $Id$
+ * @NotThreadSafe
+ */
+public abstract class DTO {
+
+    /**
+     * Return a string representation of this DTO suitable for use when
+     * debugging.
+     * 
+     * <p>
+     * The format of the string representation is not specified and subject to
+     * change.
+     * 
+     * @return A string representation of this DTO suitable for use when
+     *         debugging.
+     */
+    @Override
+    public String toString() {
+        return appendValue(new StringBuilder(), new IdentityHashMap<Object, String>(), "#", this).toString();
+    }
+
+    /**
+     * Append the specified DTO's string representation to the specified
+     * StringBuilder.
+     * 
+     * @param result StringBuilder to which the string representation is
+     *        appended.
+     * @param objectRefs References to "seen" objects.
+     * @param refpath The reference path of the specified DTO.
+     * @param dto The DTO whose string representation is to be appended.
+     * @return The specified StringBuilder.
+     */
+    private static StringBuilder appendDTO(final StringBuilder result, final Map<Object, String> objectRefs, final String refpath, final DTO dto) {
+        result.append("{");
+        String delim = "";
+        for (Field field : dto.getClass().getFields()) {
+            if (Modifier.isStatic(field.getModifiers())) {
+                continue;
+            }
+            result.append(delim);
+            final String name = field.getName();
+            appendString(result, name);
+            result.append(":");
+            Object value = null;
+            try {
+                value = field.get(dto);
+            } catch (IllegalAccessException e) {
+                // use null value;
+            }
+            appendValue(result, objectRefs, refpath + "/" + name, value);
+            delim = ", ";
+        }
+        result.append("}");
+        return result;
+    }
+
+    /**
+     * Append the specified value's string representation to the specified
+     * StringBuilder.
+     * 
+     * <p>
+     * This method handles cycles in the object graph, using path-based
+     * references, even though the specification requires the object graph from
+     * a DTO to be a tree.
+     * 
+     * @param result StringBuilder to which the string representation is
+     *        appended.
+     * @param objectRefs References to "seen" objects.
+     * @param refpath The reference path of the specified value.
+     * @param value The object whose string representation is to be appended.
+     * @return The specified StringBuilder.
+     */
+    private static StringBuilder appendValue(final StringBuilder result, final Map<Object, String> objectRefs, final String refpath, final Object value) {
+        if (value == null) {
+            return result.append("null");
+        }
+        // Simple Java types
+        if (value instanceof String || value instanceof Character) {
+            return appendString(result, compress(value.toString()));
+        }
+        if (value instanceof Number || value instanceof Boolean) {
+            return result.append(value.toString());
+        }
+
+        // Complex types
+        final String path = objectRefs.get(value);
+        if (path != null) {
+            result.append("{\"$ref\":");
+            appendString(result, path);
+            result.append("}");
+            return result;
+        }
+        objectRefs.put(value, refpath);
+
+        if (value instanceof DTO) {
+            return appendDTO(result, objectRefs, refpath, (DTO) value);
+        }
+        if (value instanceof Map) {
+            return appendMap(result, objectRefs, refpath, (Map<?, ?>) value);
+        }
+        if (value instanceof List || value instanceof Set) {
+            return appendIterable(result, objectRefs, refpath, (Iterable<?>) value);
+        }
+        if (value.getClass().isArray()) {
+            return appendArray(result, objectRefs, refpath, value);
+        }
+        return appendString(result, compress(value.toString()));
+    }
+
+    /**
+     * Append the specified array's string representation to the specified
+     * StringBuilder.
+     * 
+     * @param result StringBuilder to which the string representation is
+     *        appended.
+     * @param objectRefs References to "seen" objects.
+     * @param refpath The reference path of the specified array.
+     * @param array The array whose string representation is to be appended.
+     * @return The specified StringBuilder.
+     */
+    private static StringBuilder appendArray(final StringBuilder result, final Map<Object, String> objectRefs, final String refpath, final Object array) {
+        result.append("[");
+        final int length = Array.getLength(array);
+        for (int i = 0; i < length; i++) {
+            if (i > 0) {
+                result.append(",");
+            }
+            appendValue(result, objectRefs, refpath + "/" + i, Array.get(array, i));
+        }
+        result.append("]");
+        return result;
+    }
+
+    /**
+     * Append the specified iterable's string representation to the specified
+     * StringBuilder.
+     * 
+     * @param result StringBuilder to which the string representation is
+     *        appended.
+     * @param objectRefs References to "seen" objects.
+     * @param refpath The reference path of the specified list.
+     * @param iterable The iterable whose string representation is to be
+     *        appended.
+     * @return The specified StringBuilder.
+     */
+    private static StringBuilder appendIterable(final StringBuilder result, final Map<Object, String> objectRefs, final String refpath, final Iterable<?> iterable) {
+        result.append("[");
+        int i = 0;
+        for (Object item : iterable) {
+            if (i > 0) {
+                result.append(",");
+            }
+            appendValue(result, objectRefs, refpath + "/" + i, item);
+            i++;
+        }
+        result.append("]");
+        return result;
+    }
+
+    /**
+     * Append the specified map's string representation to the specified
+     * StringBuilder.
+     * 
+     * @param result StringBuilder to which the string representation is
+     *        appended.
+     * @param objectRefs References to "seen" objects.
+     * @param refpath The reference path of the specified map.
+     * @param map The map whose string representation is to be appended.
+     * @return The specified StringBuilder.
+     */
+    private static StringBuilder appendMap(final StringBuilder result, final Map<Object, String> objectRefs, final String refpath, final Map<?, ?> map) {
+        result.append("{");
+        String delim = "";
+        for (Map.Entry<?, ?> entry : map.entrySet()) {
+            result.append(delim);
+            final String name = String.valueOf(entry.getKey());
+            appendString(result, name);
+            result.append(":");
+            final Object value = entry.getValue();
+            appendValue(result, objectRefs, refpath + "/" + name, value);
+            delim = ", ";
+        }
+        result.append("}");
+        return result;
+    }
+
+    /**
+     * Append the specified string to the specified StringBuilder.
+     * 
+     * @param result StringBuilder to which the string is appended.
+     * @param string The string to be appended.
+     * @return The specified StringBuilder.
+     */
+    private static StringBuilder appendString(final StringBuilder result, final CharSequence string) {
+        result.append("\"");
+        int i = result.length();
+        result.append(string);
+        while (i < result.length()) { // escape if necessary
+            char c = result.charAt(i);
+            if ((c == '"') || (c == '\\')) {
+                result.insert(i, '\\');
+                i = i + 2;
+                continue;
+            }
+            if (c < 0x20) {
+                result.insert(i + 1, Integer.toHexString(c | 0x10000));
+                result.replace(i, i + 2, "\\u");
+                i = i + 6;
+                continue;
+            }
+            i++;
+        }
+        result.append("\"");
+        return result;
+    }
+
+    /**
+     * Compress, in length, the specified string.
+     * 
+     * @param in The string to potentially compress.
+     * @return The string compressed, if necessary.
+     */
+    private static CharSequence compress(final CharSequence in) {
+        final int length = in.length();
+        if (length <= 21) {
+            return in;
+        }
+        StringBuilder result = new StringBuilder(21);
+        result.append(in, 0, 9);
+        result.append("...");
+        result.append(in, length - 9, length);
+        return result;
+    }
+}

Propchange: felix/trunk/framework/src/main/java/org/osgi/dto/DTO.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/framework/src/main/java/org/osgi/dto/DTO.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision rev url

Propchange: felix/trunk/framework/src/main/java/org/osgi/dto/DTO.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: felix/trunk/framework/src/main/java/org/osgi/dto/package-info.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/osgi/dto/package-info.java?rev=1614569&view=auto
==============================================================================
--- felix/trunk/framework/src/main/java/org/osgi/dto/package-info.java (added)
+++ felix/trunk/framework/src/main/java/org/osgi/dto/package-info.java Wed Jul 30 07:22:32 2014
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) OSGi Alliance (2012, 2013). All Rights Reserved.
+ *
+ * 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.
+ */
+
+/**
+ * OSGi Data Transfer Object Package Version 1.0.
+ *
+ * <p>
+ * Bundles wishing to use this package must list the package in the
+ * Import-Package header of the bundle's manifest. This package has two types of
+ * users: the consumers that use the API in this package and the providers that
+ * implement the API in this package.
+ *
+ * <p>
+ * Example import for consumers using the API in this package:
+ * <p>
+ * {@code  Import-Package: org.osgi.dto; version="[1.0,2.0)"}
+ * <p>
+ * Example import for providers implementing the API in this package:
+ * <p>
+ * {@code  Import-Package: org.osgi.dto; version="[1.0,1.1)"}
+ *
+ * @author $Id$
+ */
+
+@Version("1.0")
+package org.osgi.dto;
+
+import org.osgi.annotation.versioning.Version;
+

Propchange: felix/trunk/framework/src/main/java/org/osgi/dto/package-info.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: felix/trunk/framework/src/main/java/org/osgi/dto/package-info.java
------------------------------------------------------------------------------
    svn:keywords = author date id revision rev url

Propchange: felix/trunk/framework/src/main/java/org/osgi/dto/package-info.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: felix/trunk/framework/src/main/java/org/osgi/dto/packageinfo
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/osgi/dto/packageinfo?rev=1614569&view=auto
==============================================================================
--- felix/trunk/framework/src/main/java/org/osgi/dto/packageinfo (added)
+++ felix/trunk/framework/src/main/java/org/osgi/dto/packageinfo Wed Jul 30 07:22:32 2014
@@ -0,0 +1 @@
+version 1.0

Modified: felix/trunk/framework/src/main/java/org/osgi/framework/AdaptPermission.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/osgi/framework/AdaptPermission.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/osgi/framework/AdaptPermission.java (original)
+++ felix/trunk/framework/src/main/java/org/osgi/framework/AdaptPermission.java Wed Jul 30 07:22:32 2014
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) OSGi Alliance (2010, 2012). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2010, 2013). All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,7 +41,7 @@ import java.util.Map;
  * {@code AdaptPermission} has one action: {@code adapt}.
  * 
  * @ThreadSafe
- * @version $Id: 3bc095bd294db2d8ea25971a3d71991de1495b1a $
+ * @author $Id: 9f0866e633ce08566547b4955a2ece54c46944e0 $
  */
 public final class AdaptPermission extends BasicPermission {
 
@@ -286,6 +286,7 @@ public final class AdaptPermission exten
 	 * @return {@code true} if the specified permission is implied by this
 	 *         object; {@code false} otherwise.
 	 */
+	@Override
 	public boolean implies(Permission p) {
 		if (!(p instanceof AdaptPermission)) {
 			return false;
@@ -339,6 +340,7 @@ public final class AdaptPermission exten
 	 * @return Canonical string representation of the {@code AdaptPermission}
 	 *         actions.
 	 */
+	@Override
 	public String getActions() {
 		String result = actions;
 		if (result == null) {
@@ -353,6 +355,7 @@ public final class AdaptPermission exten
 	 * 
 	 * @return A new {@code PermissionCollection} object.
 	 */
+	@Override
 	public PermissionCollection newPermissionCollection() {
 		return new AdaptPermissionCollection();
 	}
@@ -369,6 +372,7 @@ public final class AdaptPermission exten
 	 *         the same name and actions as this {@code AdaptPermission} object;
 	 *         {@code false} otherwise.
 	 */
+	@Override
 	public boolean equals(Object obj) {
 		if (obj == this) {
 			return true;
@@ -388,6 +392,7 @@ public final class AdaptPermission exten
 	 * 
 	 * @return A hash code value for this object.
 	 */
+	@Override
 	public int hashCode() {
 		int h = 31 * 17 + getName().hashCode();
 		h = 31 * h + getActions().hashCode();
@@ -424,9 +429,8 @@ public final class AdaptPermission exten
 	}
 
 	/**
-	 * Called by {@code <@link AdaptPermission#implies(Permission)>}. This
-	 * method is only called on a requested permission which cannot have a
-	 * filter set.
+	 * Called by {@link AdaptPermission#implies(Permission)}. This method is
+	 * only called on a requested permission which cannot have a filter set.
 	 * 
 	 * @return a map of properties for this permission.
 	 */
@@ -438,8 +442,8 @@ public final class AdaptPermission exten
 		final Map<String, Object> map = new HashMap<String, Object>(5);
 		map.put("adaptClass", getName());
 		if (bundle != null) {
-			AccessController.doPrivileged(new PrivilegedAction<Object>() {
-				public Object run() {
+			AccessController.doPrivileged(new PrivilegedAction<Void>() {
+				public Void run() {
 					map.put("id", new Long(bundle.getBundleId()));
 					map.put("location", bundle.getLocation());
 					String name = bundle.getSymbolicName();
@@ -502,6 +506,7 @@ final class AdaptPermissionCollection ex
 	 * @throws SecurityException If this {@code AdaptPermissionCollection}
 	 *         object has been marked read-only.
 	 */
+	@Override
 	public void add(final Permission permission) {
 		if (!(permission instanceof AdaptPermission)) {
 			throw new IllegalArgumentException("invalid permission: " + permission);
@@ -547,6 +552,7 @@ final class AdaptPermissionCollection ex
 	 * @return {@code true} if {@code permission} is a proper subset of a
 	 *         permission in the set; {@code false} otherwise.
 	 */
+	@Override
 	public boolean implies(final Permission permission) {
 		if (!(permission instanceof AdaptPermission)) {
 			return false;
@@ -590,6 +596,7 @@ final class AdaptPermissionCollection ex
 	 * 
 	 * @return Enumeration of all {@code AdaptPermission} objects.
 	 */
+	@Override
 	public synchronized Enumeration<Permission> elements() {
 		List<Permission> all = new ArrayList<Permission>(permissions.values());
 		return Collections.enumeration(all);
@@ -607,7 +614,9 @@ final class AdaptPermissionCollection ex
 
 	private synchronized void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException {
 		ObjectInputStream.GetField gfields = in.readFields();
-		permissions = (HashMap<String, AdaptPermission>) gfields.get("permissions", null);
+		@SuppressWarnings("unchecked")
+		HashMap<String, AdaptPermission> p = (HashMap<String, AdaptPermission>) gfields.get("permissions", null);
+		permissions = p;
 		all_allowed = gfields.get("all_allowed", false);
 	}
 }

Modified: felix/trunk/framework/src/main/java/org/osgi/framework/AdminPermission.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/osgi/framework/AdminPermission.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/osgi/framework/AdminPermission.java (original)
+++ felix/trunk/framework/src/main/java/org/osgi/framework/AdminPermission.java Wed Jul 30 07:22:32 2014
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) OSGi Alliance (2000, 2012). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2000, 2013). All Rights Reserved.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -52,8 +52,10 @@ import java.util.Map;
  * lifecycle          BundleContext.installBundle
  *                    Bundle.update
  *                    Bundle.uninstall
- * listener           BundleContext.addBundleListener for SynchronousBundleListener
- *                    BundleContext.removeBundleListener for SynchronousBundleListener
+ * listener           BundleContext.addBundleListener for
+ *                      SynchronousBundleListener
+ *                    BundleContext.removeBundleListener for
+ *                      SynchronousBundleListener
  * metadata           Bundle.getHeaders
  *                    Bundle.getLocation
  * resolve            FrameworkWiring.refreshBundles
@@ -67,7 +69,8 @@ import java.util.Map;
  * startlevel         FrameworkStartLevel.setStartLevel
  *                    FrameworkStartLevel.setInitialBundleStartLevel
  * context            Bundle.getBundleContext
- * weave              WovenClass.setBytes
+ * weave              WovenClass.getBytes
+ *                    WovenClass.setBytes
  *                    WovenClass.getDynamicImports for modification
  * </pre>
  * 
@@ -89,7 +92,7 @@ import java.util.Map;
  * Filter attribute names are processed in a case sensitive manner.
  * 
  * @ThreadSafe
- * @version $Id: cd883e81fde210ce8f0cabaebea377378d672818 $
+ * @author $Id: 2a803b07dcdc9af47ca0cb208d96fcd9c0bcfb0c $
  */
 
 public final class AdminPermission extends BasicPermission {
@@ -236,8 +239,9 @@ public final class AdminPermission exten
 	 * Examples:
 	 * 
 	 * <pre>
-	 * (signer=\*,o=ACME,c=US)   
-	 * (&amp;(signer=\*,o=ACME,c=US)(name=com.acme.*)(location=http://www.acme.com/bundles/*))
+	 * (signer=\*,o=ACME,c=US)
+	 * (&amp;(signer=\*,o=ACME,c=US)(name=com.acme.*)
+	 *   (location=http://www.acme.com/bundles/*))
 	 * (id&gt;=1)
 	 * </pre>
 	 * 
@@ -593,6 +597,7 @@ public final class AdminPermission exten
 	 * @return {@code true} if the specified permission is implied by this
 	 *         object; {@code false} otherwise.
 	 */
+	@Override
 	public boolean implies(Permission p) {
 		if (!(p instanceof AdminPermission)) {
 			return false;
@@ -663,6 +668,7 @@ public final class AdminPermission exten
 	 * @return Canonical string representation of the {@code AdminPermission}
 	 *         actions.
 	 */
+	@Override
 	public String getActions() {
 		String result = actions;
 		if (result == null) {
@@ -740,6 +746,7 @@ public final class AdminPermission exten
 	 * 
 	 * @return A new {@code PermissionCollection} object.
 	 */
+	@Override
 	public PermissionCollection newPermissionCollection() {
 		return new AdminPermissionCollection();
 	}
@@ -751,6 +758,7 @@ public final class AdminPermission exten
 	 * @return {@code true} if {@code obj} is equivalent to this
 	 *         {@code AdminPermission}; {@code false} otherwise.
 	 */
+	@Override
 	public boolean equals(Object obj) {
 		if (obj == this) {
 			return true;
@@ -770,6 +778,7 @@ public final class AdminPermission exten
 	 * 
 	 * @return Hash code value for this object.
 	 */
+	@Override
 	public int hashCode() {
 		int h = 31 * 17 + getName().hashCode();
 		h = 31 * h + getActions().hashCode();
@@ -833,8 +842,8 @@ public final class AdminPermission exten
 		recurse.set(bundle);
 		try {
 			final Map<String, Object> map = new HashMap<String, Object>(4);
-			AccessController.doPrivileged(new PrivilegedAction<Object>() {
-				public Object run() {
+			AccessController.doPrivileged(new PrivilegedAction<Void>() {
+				public Void run() {
 					map.put("id", new Long(bundle.getBundleId()));
 					map.put("location", bundle.getLocation());
 					String name = bundle.getSymbolicName();
@@ -893,6 +902,7 @@ final class AdminPermissionCollection ex
 	 * @throws SecurityException If this {@code AdminPermissionCollection}
 	 *         object has been marked read-only.
 	 */
+	@Override
 	public void add(Permission permission) {
 		if (!(permission instanceof AdminPermission)) {
 			throw new IllegalArgumentException("invalid permission: " + permission);
@@ -936,6 +946,7 @@ final class AdminPermissionCollection ex
 	 *         {@code AdminPermission} in this collection, {@code false}
 	 *         otherwise.
 	 */
+	@Override
 	public boolean implies(Permission permission) {
 		if (!(permission instanceof AdminPermission)) {
 			return false;
@@ -979,6 +990,7 @@ final class AdminPermissionCollection ex
 	 * 
 	 * @return Enumeration of all {@code AdminPermission} objects.
 	 */
+	@Override
 	public synchronized Enumeration<Permission> elements() {
 		List<Permission> all = new ArrayList<Permission>(permissions.values());
 		return Collections.enumeration(all);
@@ -997,6 +1009,7 @@ final class AdminPermissionCollection ex
 
 	private synchronized void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException {
 		ObjectInputStream.GetField gfields = in.readFields();
+		@SuppressWarnings("unchecked")
 		Hashtable<String, AdminPermission> hashtable = (Hashtable<String, AdminPermission>) gfields.get("permissions", null);
 		permissions = new HashMap<String, AdminPermission>(hashtable);
 		all_allowed = gfields.get("all_allowed", false);

Modified: felix/trunk/framework/src/main/java/org/osgi/framework/AllServiceListener.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/osgi/framework/AllServiceListener.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/osgi/framework/AllServiceListener.java (original)
+++ felix/trunk/framework/src/main/java/org/osgi/framework/AllServiceListener.java Wed Jul 30 07:22:32 2014
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) OSGi Alliance (2005, 2012). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2005, 2013). All Rights Reserved.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,8 @@
 
 package org.osgi.framework;
 
+import org.osgi.annotation.versioning.ConsumerType;
+
 /**
  * A {@code ServiceEvent} listener that does not filter based upon package
  * wiring. {@code AllServiceListener} is a listener interface that may be
@@ -52,9 +54,9 @@ package org.osgi.framework;
  * @see ServicePermission
  * @ThreadSafe
  * @since 1.3
- * @version $Id: 7a0c82db414be7064a06e1868eb41a8c8f8d9d6c $
+ * @author $Id: fc2039183bb7c2117c182949118bb4cdd3b2e6c2 $
  */
-
+@ConsumerType
 public interface AllServiceListener extends ServiceListener {
 	// This is a marker interface
 }

Modified: felix/trunk/framework/src/main/java/org/osgi/framework/Bundle.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/osgi/framework/Bundle.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/osgi/framework/Bundle.java (original)
+++ felix/trunk/framework/src/main/java/org/osgi/framework/Bundle.java Wed Jul 30 07:22:32 2014
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) OSGi Alliance (2000, 2012). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2000, 2013). All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,6 +25,7 @@ import java.util.Dictionary;
 import java.util.Enumeration;
 import java.util.List;
 import java.util.Map;
+import org.osgi.annotation.versioning.ProviderType;
 import org.osgi.framework.wiring.FrameworkWiring;
 
 /**
@@ -44,12 +45,12 @@ import org.osgi.framework.wiring.Framewo
  * <p>
  * A bundle can be in one of six states:
  * <ul>
- * <li>{@link #UNINSTALLED}
- * <li>{@link #INSTALLED}
- * <li>{@link #RESOLVED}
- * <li>{@link #STARTING}
- * <li>{@link #STOPPING}
- * <li>{@link #ACTIVE}
+ * <li>{@link #UNINSTALLED}</li>
+ * <li>{@link #INSTALLED}</li>
+ * <li>{@link #RESOLVED}</li>
+ * <li>{@link #STARTING}</li>
+ * <li>{@link #STOPPING}</li>
+ * <li>{@link #ACTIVE}</li>
  * </ul>
  * <p>
  * Values assigned to these states have no specified ordering; they represent
@@ -74,9 +75,9 @@ import org.osgi.framework.wiring.Framewo
  * bundle id} and is greater if it has a higher bundle id.
  * 
  * @ThreadSafe
- * @noimplement
- * @version $Id: 8a58ab72af389b1999b88348e4944203b7096510 $
+ * @author $Id: 81a8f18b2fcc7810817cd19f6d5e0709db1c1d12 $
  */
+@ProviderType
 public interface Bundle extends Comparable<Bundle> {
 	/**
 	 * The bundle is uninstalled and may not be used.
@@ -114,14 +115,14 @@ public interface Bundle extends Comparab
 	 * include:
 	 * <ul>
 	 * <li>The bundle's class path from its {@link Constants#BUNDLE_CLASSPATH}
-	 * Manifest header.
+	 * Manifest header.</li>
 	 * <li>The bundle's package dependencies from its
 	 * {@link Constants#EXPORT_PACKAGE} and {@link Constants#IMPORT_PACKAGE}
-	 * Manifest headers.
+	 * Manifest headers.</li>
 	 * <li>The bundle's required bundle dependencies from its
-	 * {@link Constants#REQUIRE_BUNDLE} Manifest header.
+	 * {@link Constants#REQUIRE_BUNDLE} Manifest header.</li>
 	 * <li>A fragment bundle's host dependency from its
-	 * {@link Constants#FRAGMENT_HOST} Manifest header.
+	 * {@link Constants#FRAGMENT_HOST} Manifest header.</li>
 	 * </ul>
 	 * <p>
 	 * Note that the bundle is not active yet. A bundle must be put in the
@@ -262,12 +263,11 @@ public interface Bundle extends Comparab
 	 * <ul>
 	 * <li>If the {@link #START_TRANSIENT} option is set, then a
 	 * {@code BundleException} is thrown indicating this bundle cannot be
-	 * started due to the Framework's current start level.
-	 * 
+	 * started due to the Framework's current start level.</li>
 	 * <li>Otherwise, the Framework must set this bundle's persistent autostart
 	 * setting to <em>Started with declared activation</em> if the
 	 * {@link #START_ACTIVATION_POLICY} option is set or
-	 * <em>Started with eager activation</em> if not set.
+	 * <em>Started with eager activation</em> if not set.</li>
 	 * </ul>
 	 * <p>
 	 * When the Framework's current start level becomes equal to or more than
@@ -279,82 +279,71 @@ public interface Bundle extends Comparab
 	 * then this method must wait for activation or deactivation to complete
 	 * before continuing. If this does not occur in a reasonable time, a
 	 * {@code BundleException} is thrown to indicate this bundle was unable to
-	 * be started.
-	 * 
-	 * <li>If this bundle's state is {@code ACTIVE} then this method returns
-	 * immediately.
-	 * 
+	 * be started.</li>
 	 * <li>If the {@link #START_TRANSIENT} option is not set then set this
 	 * bundle's autostart setting to <em>Started with declared activation</em>
 	 * if the {@link #START_ACTIVATION_POLICY} option is set or
 	 * <em>Started with eager activation</em> if not set. When the Framework is
 	 * restarted and this bundle's autostart setting is not <em>Stopped</em>,
-	 * this bundle must be automatically started.
-	 * 
+	 * this bundle must be automatically started.</li>
+	 * <li>If this bundle's state is {@code ACTIVE} then this method returns
+	 * immediately.</li>
 	 * <li>If this bundle's state is not {@code RESOLVED}, an attempt is made to
 	 * resolve this bundle. If the Framework cannot resolve this bundle, a
-	 * {@code BundleException} is thrown.
-	 * 
+	 * {@code BundleException} is thrown.</li>
 	 * <li>If the {@link #START_ACTIVATION_POLICY} option is set and this
 	 * bundle's declared activation policy is {@link Constants#ACTIVATION_LAZY
 	 * lazy} then:
 	 * <ul>
 	 * <li>If this bundle's state is {@code STARTING} then this method returns
-	 * immediately.
-	 * <li>This bundle's state is set to {@code STARTING}.
-	 * <li>A bundle event of type {@link BundleEvent#LAZY_ACTIVATION} is fired.
+	 * immediately.</li>
+	 * <li>This bundle's state is set to {@code STARTING}.</li>
+	 * <li>A bundle event of type {@link BundleEvent#LAZY_ACTIVATION} is fired.</li>
 	 * <li>This method returns immediately and the remaining steps will be
-	 * followed when this bundle's activation is later triggered.
+	 * followed when this bundle's activation is later triggered.</li>
 	 * </ul>
-	 * <i></i>
-	 * <li>This bundle's state is set to {@code STARTING}.
-	 * 
-	 * <li>A bundle event of type {@link BundleEvent#STARTING} is fired.
-	 * 
+	 * </li>
+	 * <li>This bundle's state is set to {@code STARTING}.</li>
+	 * <li>A bundle event of type {@link BundleEvent#STARTING} is fired.</li>
 	 * <li>The {@link BundleActivator#start(BundleContext)} method of this
 	 * bundle's {@code BundleActivator}, if one is specified, is called. If the
 	 * {@code BundleActivator} is invalid or throws an exception then:
 	 * <ul>
-	 * <li>This bundle's state is set to {@code STOPPING}.
-	 * <li>A bundle event of type {@link BundleEvent#STOPPING} is fired.
-	 * <li>Any services registered by this bundle must be unregistered.
-	 * <li>Any services used by this bundle must be released.
-	 * <li>Any listeners registered by this bundle must be removed.
-	 * <li>This bundle's state is set to {@code RESOLVED}.
-	 * <li>A bundle event of type {@link BundleEvent#STOPPED} is fired.
-	 * <li>A {@code BundleException} is then thrown.
+	 * <li>This bundle's state is set to {@code STOPPING}.</li>
+	 * <li>A bundle event of type {@link BundleEvent#STOPPING} is fired.</li>
+	 * <li>Any services registered by this bundle must be unregistered.</li>
+	 * <li>Any services used by this bundle must be released.</li>
+	 * <li>Any listeners registered by this bundle must be removed.</li>
+	 * <li>This bundle's state is set to {@code RESOLVED}.</li>
+	 * <li>A bundle event of type {@link BundleEvent#STOPPED} is fired.</li>
+	 * <li>A {@code BundleException} is then thrown.</li>
 	 * </ul>
-	 * <i></i>
-	 * <li>If this bundle's state is {@code UNINSTALLED}, because this bundle
-	 * was uninstalled while the {@code BundleActivator.start} method was
-	 * running, a {@code BundleException} is thrown.
-	 * 
-	 * <li>This bundle's state is set to {@code ACTIVE}.
-	 * 
-	 * <li>A bundle event of type {@link BundleEvent#STARTED} is fired.
+	 * </li>
+	 * <li>This bundle's state is set to {@code ACTIVE}.</li>
+	 * <li>A bundle event of type {@link BundleEvent#STARTED} is fired.</li>
 	 * </ol>
 	 * 
 	 * <b>Preconditions </b>
 	 * <ul>
 	 * <li>{@code getState()} in &#x007B; {@code INSTALLED}, {@code RESOLVED}
 	 * &#x007D; or &#x007B; {@code INSTALLED}, {@code RESOLVED},
-	 * {@code STARTING} &#x007D; if this bundle has a lazy activation policy.
+	 * {@code STARTING} &#x007D; if this bundle has a lazy activation policy.</li>
 	 * </ul>
 	 * <b>Postconditions, no exceptions thrown </b>
 	 * <ul>
 	 * <li>Bundle autostart setting is modified unless the
-	 * {@link #START_TRANSIENT} option was set.
+	 * {@link #START_TRANSIENT} option was set.</li>
 	 * <li>{@code getState()} in &#x007B; {@code ACTIVE} &#x007D; unless the
-	 * lazy activation policy was used.
+	 * lazy activation policy was used.</li>
 	 * <li>{@code BundleActivator.start()} has been called and did not throw an
-	 * exception unless the lazy activation policy was used.
+	 * exception unless the lazy activation policy was used.</li>
 	 * </ul>
 	 * <b>Postconditions, when an exception is thrown </b>
 	 * <ul>
 	 * <li>Depending on when the exception occurred, bundle autostart setting is
-	 * modified unless the {@link #START_TRANSIENT} option was set.
+	 * modified unless the {@link #START_TRANSIENT} option was set.</li>
 	 * <li>{@code getState()} not in &#x007B; {@code STARTING}, {@code ACTIVE}
-	 * &#x007D;.
+	 * &#x007D;.</li>
 	 * </ul>
 	 * 
 	 * @param options The options for starting this bundle. See
@@ -404,62 +393,53 @@ public interface Bundle extends Comparab
 	 * The following steps are required to stop a bundle:
 	 * <ol>
 	 * <li>If this bundle's state is {@code UNINSTALLED} then an
-	 * {@code IllegalStateException} is thrown.
-	 * 
+	 * {@code IllegalStateException} is thrown.</li>
 	 * <li>If this bundle is in the process of being activated or deactivated
 	 * then this method must wait for activation or deactivation to complete
 	 * before continuing. If this does not occur in a reasonable time, a
 	 * {@code BundleException} is thrown to indicate this bundle was unable to
-	 * be stopped.
+	 * be stopped.</li>
 	 * <li>If the {@link #STOP_TRANSIENT} option is not set then then set this
 	 * bundle's persistent autostart setting to to <em>Stopped</em>. When the
 	 * Framework is restarted and this bundle's autostart setting is
-	 * <em>Stopped</em>, this bundle must not be automatically started.
-	 * 
+	 * <em>Stopped</em>, this bundle must not be automatically started.</li>
 	 * <li>If this bundle's state is not {@code STARTING} or {@code ACTIVE} then
-	 * this method returns immediately.
-	 * 
-	 * <li>This bundle's state is set to {@code STOPPING}.
-	 * 
-	 * <li>A bundle event of type {@link BundleEvent#STOPPING} is fired.
-	 * 
+	 * this method returns immediately.</li>
+	 * <li>This bundle's state is set to {@code STOPPING}.</li>
+	 * <li>A bundle event of type {@link BundleEvent#STOPPING} is fired.</li>
 	 * <li>If this bundle's state was {@code ACTIVE} prior to setting the state
 	 * to {@code STOPPING}, the {@link BundleActivator#stop(BundleContext)}
 	 * method of this bundle's {@code BundleActivator}, if one is specified, is
 	 * called. If that method throws an exception, this method must continue to
 	 * stop this bundle and a {@code BundleException} must be thrown after
-	 * completion of the remaining steps.
-	 * 
-	 * <li>Any services registered by this bundle must be unregistered.
-	 * <li>Any services used by this bundle must be released.
-	 * <li>Any listeners registered by this bundle must be removed.
-	 * 
+	 * completion of the remaining steps.</li>
+	 * <li>Any services registered by this bundle must be unregistered.</li>
+	 * <li>Any services used by this bundle must be released.</li>
+	 * <li>Any listeners registered by this bundle must be removed.</li>
 	 * <li>If this bundle's state is {@code UNINSTALLED}, because this bundle
 	 * was uninstalled while the {@code BundleActivator.stop} method was
-	 * running, a {@code BundleException} must be thrown.
-	 * 
-	 * <li>This bundle's state is set to {@code RESOLVED}.
-	 * 
-	 * <li>A bundle event of type {@link BundleEvent#STOPPED} is fired.
+	 * running, a {@code BundleException} must be thrown.</li>
+	 * <li>This bundle's state is set to {@code RESOLVED}.</li>
+	 * <li>A bundle event of type {@link BundleEvent#STOPPED} is fired.</li>
 	 * </ol>
 	 * 
 	 * <b>Preconditions </b>
 	 * <ul>
-	 * <li>{@code getState()} in &#x007B; {@code ACTIVE} &#x007D;.
+	 * <li>{@code getState()} in &#x007B; {@code ACTIVE} &#x007D;.</li>
 	 * </ul>
 	 * <b>Postconditions, no exceptions thrown </b>
 	 * <ul>
 	 * <li>Bundle autostart setting is modified unless the
-	 * {@link #STOP_TRANSIENT} option was set.
+	 * {@link #STOP_TRANSIENT} option was set.</li>
 	 * <li>{@code getState()} not in &#x007B; {@code ACTIVE}, {@code STOPPING}
-	 * &#x007D;.
+	 * &#x007D;.</li>
 	 * <li>{@code BundleActivator.stop} has been called and did not throw an
-	 * exception.
+	 * exception.</li>
 	 * </ul>
 	 * <b>Postconditions, when an exception is thrown </b>
 	 * <ul>
 	 * <li>Bundle autostart setting is modified unless the
-	 * {@link #STOP_TRANSIENT} option was set.
+	 * {@link #STOP_TRANSIENT} option was set.</li>
 	 * </ul>
 	 * 
 	 * @param options The options for stopping this bundle. See
@@ -520,45 +500,40 @@ public interface Bundle extends Comparab
 	 * The following steps are required to update a bundle:
 	 * <ol>
 	 * <li>If this bundle's state is {@code UNINSTALLED} then an
-	 * {@code IllegalStateException} is thrown.
-	 * 
+	 * {@code IllegalStateException} is thrown.</li>
 	 * <li>If this bundle's state is {@code ACTIVE}, {@code STARTING} or
 	 * {@code STOPPING}, this bundle is stopped as described in the
 	 * {@code Bundle.stop} method. If {@code Bundle.stop} throws an exception,
-	 * the exception is rethrown terminating the update.
-	 * 
+	 * the exception is rethrown terminating the update.</li>
 	 * <li>The updated version of this bundle is read from the input stream and
 	 * installed. If the Framework is unable to install the updated version of
 	 * this bundle, the original version of this bundle must be restored and a
 	 * {@code BundleException} must be thrown after completion of the remaining
-	 * steps.
-	 * 
-	 * <li>This bundle's state is set to {@code INSTALLED}.
-	 * 
+	 * steps.</li>
+	 * <li>This bundle's state is set to {@code INSTALLED}.</li>
 	 * <li>If the updated version of this bundle was successfully installed, a
-	 * bundle event of type {@link BundleEvent#UPDATED} is fired.
-	 * 
+	 * bundle event of type {@link BundleEvent#UPDATED} is fired.</li>
 	 * <li>If this bundle's state was originally {@code ACTIVE}, the updated
 	 * bundle is started as described in the {@code Bundle.start} method. If
 	 * {@code Bundle.start} throws an exception, a Framework event of type
-	 * {@link FrameworkEvent#ERROR} is fired containing the exception.
+	 * {@link FrameworkEvent#ERROR} is fired containing the exception.</li>
 	 * </ol>
 	 * 
 	 * <b>Preconditions </b>
 	 * <ul>
-	 * <li>{@code getState()} not in &#x007B; {@code UNINSTALLED} &#x007D;.
+	 * <li>{@code getState()} not in &#x007B; {@code UNINSTALLED} &#x007D;.</li>
 	 * </ul>
 	 * <b>Postconditions, no exceptions thrown </b>
 	 * <ul>
 	 * <li>{@code getState()} in &#x007B; {@code INSTALLED}, {@code RESOLVED},
-	 * {@code ACTIVE} &#x007D;.
-	 * <li>This bundle has been updated.
+	 * {@code ACTIVE} &#x007D;.</li>
+	 * <li>This bundle has been updated.</li>
 	 * </ul>
 	 * <b>Postconditions, when an exception is thrown </b>
 	 * <ul>
 	 * <li>{@code getState()} in &#x007B; {@code INSTALLED}, {@code RESOLVED},
-	 * {@code ACTIVE} &#x007D;.
-	 * <li>Original bundle is still used; no update occurred.
+	 * {@code ACTIVE} &#x007D;.</li>
+	 * <li>Original bundle is still used; no update occurred.</li>
 	 * </ul>
 	 * 
 	 * @param input The {@code InputStream} from which to read the new bundle or
@@ -633,35 +608,31 @@ public interface Bundle extends Comparab
 	 * The following steps are required to uninstall a bundle:
 	 * <ol>
 	 * <li>If this bundle's state is {@code UNINSTALLED} then an
-	 * {@code IllegalStateException} is thrown.
-	 * 
+	 * {@code IllegalStateException} is thrown.</li>
 	 * <li>If this bundle's state is {@code ACTIVE}, {@code STARTING} or
 	 * {@code STOPPING}, this bundle is stopped as described in the
 	 * {@code Bundle.stop} method. If {@code Bundle.stop} throws an exception, a
 	 * Framework event of type {@link FrameworkEvent#ERROR} is fired containing
-	 * the exception.
-	 * 
-	 * <li>This bundle's state is set to {@code UNINSTALLED}.
-	 * 
-	 * <li>A bundle event of type {@link BundleEvent#UNINSTALLED} is fired.
-	 * 
+	 * the exception.</li>
+	 * <li>This bundle's state is set to {@code UNINSTALLED}.</li>
+	 * <li>A bundle event of type {@link BundleEvent#UNINSTALLED} is fired.</li>
 	 * <li>This bundle and any persistent storage area provided for this bundle
-	 * by the Framework are removed.
+	 * by the Framework are removed.</li>
 	 * </ol>
 	 * 
 	 * <b>Preconditions </b>
 	 * <ul>
-	 * <li>{@code getState()} not in &#x007B; {@code UNINSTALLED} &#x007D;.
+	 * <li>{@code getState()} not in &#x007B; {@code UNINSTALLED} &#x007D;.</li>
 	 * </ul>
 	 * <b>Postconditions, no exceptions thrown </b>
 	 * <ul>
-	 * <li>{@code getState()} in &#x007B; {@code UNINSTALLED} &#x007D;.
-	 * <li>This bundle has been uninstalled.
+	 * <li>{@code getState()} in &#x007B; {@code UNINSTALLED} &#x007D;.</li>
+	 * <li>This bundle has been uninstalled.</li>
 	 * </ul>
 	 * <b>Postconditions, when an exception is thrown </b>
 	 * <ul>
-	 * <li>{@code getState()} not in &#x007B; {@code UNINSTALLED} &#x007D;.
-	 * <li>This Bundle has not been uninstalled.
+	 * <li>{@code getState()} not in &#x007B; {@code UNINSTALLED} &#x007D;.</li>
+	 * <li>This Bundle has not been uninstalled.</li>
 	 * </ul>
 	 * 
 	 * @throws BundleException If the uninstall failed. This can occur if
@@ -727,12 +698,12 @@ public interface Bundle extends Comparab
 	 * <p>
 	 * A bundle's unique identifier has the following attributes:
 	 * <ul>
-	 * <li>Is unique and persistent.
-	 * <li>Is a {@code long}.
+	 * <li>Is unique and persistent.</li>
+	 * <li>Is a {@code long}.</li>
 	 * <li>Its value is not reused for another bundle, even after a bundle is
-	 * uninstalled.
-	 * <li>Does not change while a bundle remains installed.
-	 * <li>Does not change when a bundle is updated.
+	 * uninstalled.</li>
+	 * <li>Does not change while a bundle remains installed.</li>
+	 * <li>Does not change when a bundle is updated.</li>
 	 * </ul>
 	 * 
 	 * <p>
@@ -789,8 +760,8 @@ public interface Bundle extends Comparab
 	/**
 	 * Returns this bundle's {@code ServiceReference} list for all services it
 	 * is using or returns {@code null} if this bundle is not using any
-	 * services. A bundle is considered to be using a service if its use count
-	 * for that service is greater than zero.
+	 * services. A bundle is considered to be using a service if it has any
+	 * unreleased service objects.
 	 * 
 	 * <p>
 	 * If the Java Runtime Environment supports permissions, a

Modified: felix/trunk/framework/src/main/java/org/osgi/framework/BundleActivator.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/osgi/framework/BundleActivator.java?rev=1614569&r1=1614568&r2=1614569&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/osgi/framework/BundleActivator.java (original)
+++ felix/trunk/framework/src/main/java/org/osgi/framework/BundleActivator.java Wed Jul 30 07:22:32 2014
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) OSGi Alliance (2000, 2012). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2000, 2013). All Rights Reserved.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,6 +16,8 @@
 
 package org.osgi.framework;
 
+import org.osgi.annotation.versioning.ConsumerType;
+
 /**
  * Customizes the starting and stopping of a bundle.
  * <p>
@@ -34,19 +36,19 @@ package org.osgi.framework;
  * {@code BundleActivator}. The form of the Manifest header is:
  * 
  * <p>
- * {@code Bundle-Activator: <i>class-name</i>}
+ * {@code Bundle-Activator:} <i>class-name</i>
  * 
  * <p>
- * where {@code <i>class-name</i>} is a fully qualified Java classname.
+ * where <i>class-name</i> is a fully qualified Java classname.
  * <p>
  * The specified {@code BundleActivator} class must have a public constructor
  * that takes no parameters so that a {@code BundleActivator} object can be
  * created by {@code Class.newInstance()}.
  * 
  * @NotThreadSafe
- * @version $Id: f5b2debe0064ab60669102d0a087feaeab13dc0e $
+ * @author $Id: a9d91a8ae13157f49a6a55b0c7f25b63b6bd00bd $
  */
-
+@ConsumerType
 public interface BundleActivator {
 	/**
 	 * Called when this bundle is started so the Framework can perform the



Mime
View raw message