Added: 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/mobile/UserPromptCondition.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/mobile/UserPromptCondition.java?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/mobile/UserPromptCondition.java
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/mobile/UserPromptCondition.java
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,256 @@
+/*
+ * $Header: 
/cvshome/build/org.osgi.util.mobile/src/org/osgi/util/mobile/UserPromptCondition.java,v
 1.26 2006/07/10 08:18:30 pnagy Exp $
+ *
+ * Copyright (c) OSGi Alliance (2004, 2006). 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.util.mobile;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Dictionary;
+
+import org.osgi.framework.Bundle;
+import org.osgi.service.condpermadmin.Condition;
+import org.osgi.service.condpermadmin.ConditionInfo;
+
+/**
+ * Class representing a user prompt condition. Instances of this class hold two
+ * values: a prompt string that is to be displayed to the user and the
+ * permission level string according to MIDP2.0 (oneshot, session, blanket).
+ *  
+ */
+public class UserPromptCondition implements Condition {
+       
+       /*
+        * NOTE: An implementor may also choose to replace this class in
+        * their distribution with a class that directly interfaces with the
+        * policy implementation. This replacement class MUST NOT alter the
+        * public/protected signature of this class.
+        */
+       // this will need to be set by the implementation class
+       static Method factory = null;
+       Condition realUserPromptCondition;
+
+       private final Bundle bundle;
+       private final String levels;
+       private final String defaultLevel;
+       private final String catalogName;
+       private final String message;
+       
+       /**
+        * Returns a UserPromptCondition object with the given prompt string 
and permission
+        * level. The user should be given choice as to what level of 
permission is
+        * given. Thus, the lifetime of the permission is controlled by the 
user.
+        *
+        * @param bundle the bundle to ask about.
+        * @param conditionInfo the conditionInfo containing the construction 
information. Its 
+        *                      [EMAIL PROTECTED] ConditionInfo#getArgs()} 
method should return a String array with 4
+        *                      strings in it:
+        * <ol start="0">
+        * <li>the possible permission levels. This is a comma-separated list 
that can contain
+        *              following strings: ONESHOT SESSION BLANKET. The order 
is not important. This
+        *              parameter is case-insensitive.
+        *              </li>
+        * <li>the default permission level, one chosen from the possible 
permission levels. If
+        *              it is an empty string, then there is no default. This 
parameter
+        *              is case-insensitive.</li>
+        * <li>the message catalog base name. It will be loaded by a [EMAIL 
PROTECTED] java.util.ResourceBundle},
+        *              or equivalent
+        *              from an exporting OSGi Bundle. Thus, if the catalogName 
is "com.provider.messages.userprompt",
+        *              then there should be an OSGi Bundle exporting the 
"com.provider.messages" package, and inside
+        *              it files like "userprompt_en_US.properties".</li>
+        * <li>textual description of the condition, to be displayed to the 
user. If
+        *              it starts with a '%' sign, then the message is looked 
up from the catalog specified previously.
+        *              The key is the rest of the string after the '%' 
sign.</li>
+        * </ol>
+        * @return The requested UserPromptCondition.
+        * @throws IllegalArgumentException if the parameters are malformed.
+        * @throws NullPointerException if one of the parameters is 
<code>null</code>.
+        */
+       public static Condition getCondition(Bundle bundle,ConditionInfo 
conditionInfo)
+       {
+               String[] args = conditionInfo.getArgs();
+               if (args==null) throw new NullPointerException("args");
+               if (args.length!=4) throw new 
IllegalArgumentException("args.length=="+args.length+" (should be 4)");
+               if (bundle==null) throw new NullPointerException("bundle");
+               String levels = args[0];
+               String defaultLevel = args[1];
+               String catalogName = args[2];
+               String message = args[3];
+               if (levels==null) throw new NullPointerException("levels");
+               if (defaultLevel==null) throw new 
NullPointerException("defaultLevel");
+               if (catalogName==null) throw new 
NullPointerException("catalogName");
+               if (message==null) throw new NullPointerException("message");
+               
+               if (factory==null) {
+                       // the bundle implementing the UserPromptCondition has 
not started yet.
+                       // Do wrapping magick.
+                       return new 
UserPromptCondition(bundle,levels,defaultLevel,catalogName,message);
+               } else {
+                       // there is already a factory, no need to do any 
wrapping magic
+                       try {
+                               return (Condition) factory.invoke(null,new 
Object[]{bundle,levels,defaultLevel,catalogName,message});
+                       } catch (IllegalAccessException e) {
+                               e.printStackTrace();
+                       } catch (InvocationTargetException e) {
+                               Throwable original = e.getTargetException();
+                               if (original instanceof NullPointerException) 
throw (NullPointerException) original;
+                               if (original instanceof 
IllegalArgumentException) throw (IllegalArgumentException) original;
+                               e.printStackTrace();
+                       }
+                       // the factory method is not working, fallback behavior:
+                       factory = null;
+                       return new 
UserPromptCondition(bundle,levels,defaultLevel,catalogName,message);
+               }
+       }
+
+       /**
+        * Instances of the UserPromptCondition are simply store the 
construction parameters
+        * until a "real" UserPromptCondition is registered in setFactory(). At 
that point, it
+        * will delegate all calls there.
+        * @param unused this parameter is here so that 
ConditionalPermissionAdmin would not
+        *              use this as the constructor instead of the getInstance
+        * @param bundle
+        * @param levels
+        * @param defaultLevel
+        * @param catalogName
+        * @param message
+        */
+       private UserPromptCondition(Bundle bundle,String levels,String 
defaultLevel,String catalogName,String message) {
+               this.bundle=bundle;
+               this.levels=levels;
+               this.defaultLevel=defaultLevel;
+               this.catalogName=catalogName;
+               this.message=message;
+       }
+       
+       /**
+        * Check if a factory is registered, and if yes, create userprompt to 
delegate calls to.
+        */
+       private void lookForImplementation() {
+               if ((realUserPromptCondition==null)&&(factory!=null)) {
+                       try {
+                               realUserPromptCondition = (Condition) 
factory.invoke(null,new 
Object[]{bundle,levels,defaultLevel,catalogName,message});
+                               return;
+                       } catch (IllegalAccessException e) {
+                               e.printStackTrace();
+                       } catch (InvocationTargetException e) {
+                               e.printStackTrace();
+                       }
+                       // only if the factory call fails with some invocation 
exception
+                       factory = null;
+               }
+       }
+       
+       /**
+        * Checks if the [EMAIL PROTECTED] #isSatisfied()} method needs to 
prompt the user, thus cannot
+        * give results instantly. 
+        * This depends on the permission level given in 
+        * [EMAIL PROTECTED] UserPromptCondition#getCondition(Bundle, 
ConditionInfo)}. 
+        * <ul>
+        * <li>ONESHOT - isPostponed always returns true. The user is prompted 
for question every time.</li>
+        * <li>SESSION - isPostponed returns true until the user decides either 
yes or no for the current session.</li>
+        * <li>BLANKET - isPostponed returns true until the user decides either 
always or never.</li>
+        * </ul>
+        * Regardless of the session level, the user is always given the option 
to reject the prompt
+        * permanently, as if BLANKET/never was chosen. In this case, the 
question is not postponed
+        * anymore, and [EMAIL PROTECTED] #isSatisfied()} returns false.<br/>
+        * If the system supports an separately accessible permission 
management GUI,
+        * that may reset the condition
+        * to its initial state.
+        * 
+        * @return True, if user interaction is needed.
+        */
+       public boolean isPostponed() {
+               lookForImplementation();
+               if (realUserPromptCondition!=null) {
+                       return realUserPromptCondition.isPostponed();
+               } else {
+                       return true;
+               }
+       }
+
+       /**
+        * Checks whether the condition may change during the lifetime of the 
UserPromptCondition object.
+        * This depends on the permission level given in 
+        * [EMAIL PROTECTED] UserPromptCondition#getCondition(Bundle, 
ConditionInfo)}. 
+        * <ul>
+        *      <li>ONESHOT - true</li>
+        *  <li>SESSION - true, if the application model's session lifetime is
+        *              shorter than the UserPromptCondition object 
lifetime</li>
+        *  <li>BLANKET - false</li>
+        * </ul>
+        * If the system supports separately accessible permission management 
GUI,
+        * then this function may also return true for SESSION and BLANKET.
+        * 
+        * @return True, if the condition can change.
+        */
+       public boolean isMutable() {
+               lookForImplementation();
+               if (realUserPromptCondition!=null) {
+                       return realUserPromptCondition.isMutable();
+               } else {
+                       // since we don't know what the actual status is, we 
cannot say
+                       // "the condition cannot change anymore"
+                       return true;
+               }
+       }
+
+       /**
+        * Displays the prompt string to
+        * the user and returns true if the user accepts. Depending on the
+        * amount of levels the condition is assigned to, the prompt may have
+        * multiple accept buttons and one of them can be selected by default 
(see
+        * default level parameter at [EMAIL PROTECTED] 
UserPromptCondition#getCondition(Bundle, ConditionInfo)}).
+        * It must always be possible for the user
+        * to stop further prompting of this question, even with ONESHOT and 
SESSION levels.
+        * In case of BLANKET
+        * and SESSION levels, it is possible that the user has already 
answered the question,
+        * in this case there will be no prompting, but immediate return with 
the previous answer.
+        * 
+        * @return True if the user accepts the prompt (or accepts any prompt in
+        *         case there are multiple permission levels).
+        */
+       public boolean isSatisfied() {
+               lookForImplementation();
+               if (realUserPromptCondition!=null) {
+                       return realUserPromptCondition.isSatisfied();
+               } else {
+                       // paranoid security option
+                       return false;
+               }
+       }
+
+       /**
+        * Checks an array of UserPrompt conditions.
+        * 
+        * @param conds The array containing the UserPrompt conditions to 
evaluate.
+        * @param context Storage area for evaluation. The [EMAIL PROTECTED] 
org.osgi.service.condpermadmin.ConditionalPermissionAdmin}
+        *              may evaluate a condition several times for one 
permission check, so this context
+        *              will be used to store results of ONESHOT questions. 
This way asking the same question
+        *              twice in a row can be avoided. If context is null, 
temporary results will not be stored.
+        * @return True, if all conditions are satisfied.
+        * @throws NullPointerException if conds is null.
+        */
+       public boolean isSatisfied(Condition[] conds, Dictionary context) {
+               lookForImplementation();
+               if (realUserPromptCondition!=null) {
+                       return 
realUserPromptCondition.isSatisfied(conds,context);
+               } else {
+                       // paranoid security option
+                       return false;
+               }
+       }
+}

Modified: 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/tracker/ServiceTracker.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/tracker/ServiceTracker.java?rev=681945&r1=681944&r2=681945&view=diff
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/tracker/ServiceTracker.java
 (original)
+++ 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/tracker/ServiceTracker.java
 Sat Aug  2 02:56:01 2008
@@ -1,7 +1,7 @@
 /*
- * $Header: 
/cvshome/build/org.osgi.util.tracker/src/org/osgi/util/tracker/ServiceTracker.java,v
 1.21 2006/07/12 21:05:17 hargrave Exp $
+ * $Header: 
/cvshome/build/org.osgi.util.tracker/src/org/osgi/util/tracker/ServiceTracker.java,v
 1.29 2007/02/19 19:04:33 hargrave Exp $
  * 
- * Copyright (c) OSGi Alliance (2000, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2000, 2007). 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.
@@ -40,14 +40,21 @@
  * references to the services being tracked. The <code>getService</code> and
  * <code>getServices</code> methods can be called to get the service objects
  * for the tracked service.
+ * <p>
+ * The <code>ServiceTracker</code> class is thread-safe. It does not call a
+ * <code>ServiceTrackerCustomizer</code> object while holding any locks.
+ * <code>ServiceTrackerCustomizer</code> implementations must also be
+ * thread-safe.
  * 
- * @version $Revision: 1.21 $
+ * @ThreadSafe
+ * @version $Revision: 1.29 $
  */
 public class ServiceTracker implements ServiceTrackerCustomizer {
        /* set this to true to compile in debug messages */
        static final boolean                            DEBUG                   
= false;
        /**
-        * Bundle context against which this <code>ServiceTracker</code> object 
is tracking.
+        * Bundle context against which this <code>ServiceTracker</code> object 
is
+        * tracking.
         */
        protected final BundleContext           context;
        /**
@@ -80,7 +87,7 @@
         * Tracked services: <code>ServiceReference</code> object -> customized
         * Object and <code>ServiceListener</code> object
         */
-       private Tracked                                         tracked;
+       private volatile Tracked                        tracked;
        /**
         * Modification count. This field is initialized to zero by open, set 
to -1
         * by close and incremented by modified.
@@ -700,16 +707,17 @@
         * 
         * The tracking count is initialized to 0 when this
         * <code>ServiceTracker</code> object is opened. Every time a service is
-        * added or removed from this <code>ServiceTracker</code> object the
-        * tracking count is incremented.
+        * added, modified or removed from this <code>ServiceTracker</code> 
object
+        * the tracking count is incremented.
         * 
         * <p>
         * The tracking count can be used to determine if this
-        * <code>ServiceTracker</code> object has added or removed a service by
-        * comparing a tracking count value previously collected with the 
current
-        * tracking count value. If the value has not changed, then no service 
has
-        * been added or removed from this <code>ServiceTracker</code> object
-        * since the previous tracking count was collected.
+        * <code>ServiceTracker</code> object has added, modified or removed a
+        * service by comparing a tracking count value previously collected 
with the
+        * current tracking count value. If the value has not changed, then no
+        * service has been added, modified or removed from this
+        * <code>ServiceTracker</code> object since the previous tracking count
+        * was collected.
         * 
         * @since 1.2
         * @return The tracking count for this <code>ServiceTracker</code> 
object
@@ -722,6 +730,8 @@
        /**
         * Called by the Tracked object whenever the set of tracked services is
         * modified. Increments the tracking count and clears the cache.
+        * 
+        * @GuardedBy tracked
         */
        /*
         * This method must not be synchronized since it is called by Tracked 
while
@@ -738,13 +748,6 @@
        }
 
        /**
-        * Finalize. This method no longer performs any function but it kept to
-        * maintain binary compatibility with prior versions of this class.
-        */
-       protected void finalize() throws Throwable {
-       }
-
-       /**
         * Inner class to track services. If a <code>ServiceTracker</code> 
object
         * is reused (closed then reopened), then a new Tracked object is used. 
This
         * class is a hashtable mapping <code>ServiceReference</code> object ->
@@ -753,6 +756,7 @@
         * tracked services. This is not a public class. It is only for use by 
the
         * implementation of the <code>ServiceTracker</code> class.
         * 
+        * @ThreadSafe
         */
        class Tracked extends Hashtable implements ServiceListener {
                static final long                       serialVersionUID        
= -7420065199791006079L;
@@ -767,9 +771,11 @@
                 * 
                 * Since the ArrayList implementation is not synchronized, all 
access to
                 * this list must be protected by the same synchronized object 
for
-                * thread safety.
+                * thread-safety.
+                * 
+                * @GuardedBy this
                 */
-               private ArrayList                       adding;
+               private final ArrayList         adding;
 
                /**
                 * true if the tracked object is closed.
@@ -793,9 +799,11 @@
                 * 
                 * Since the LinkedList implementation is not synchronized, all 
access
                 * to this list must be protected by the same synchronized 
object for
-                * thread safety.
+                * thread-safety.
+                * 
+                * @GuardedBy this
                 */
-               private LinkedList                      initial;
+               private final LinkedList        initial;
 
                /**
                 * Tracked constructor.
@@ -816,6 +824,7 @@
                 * addServiceListener call.
                 * 
                 * @param references The initial list of services to be tracked.
+                * @GuardedBy this
                 */
                protected void setInitialServices(ServiceReference[] 
references) {
                        if (references == null) {
@@ -920,7 +929,7 @@
                                case ServiceEvent.REGISTERED :
                                case ServiceEvent.MODIFIED :
                                        if (listenerFilter != null) { // 
constructor supplied
-                                                                               
                        // filter
+                                               // filter
                                                track(reference);
                                                /*
                                                 * If the customizer throws an 
unchecked exception, it
@@ -959,7 +968,7 @@
                 * 
                 * @param reference Reference to a service to be tracked.
                 */
-               protected void track(ServiceReference reference) {
+               private void track(ServiceReference reference) {
                        Object object;
                        synchronized (this) {
                                object = this.get(reference);
@@ -1127,6 +1136,7 @@
         * This class is used by the ServiceTracker if open is called with true.
         * 
         * @since 1.3
+        * @ThreadSafe
         */
        class AllTracked extends Tracked implements AllServiceListener {
                static final long       serialVersionUID        = 
4050764875305137716L;

Modified: 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/tracker/ServiceTrackerCustomizer.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/tracker/ServiceTrackerCustomizer.java?rev=681945&r1=681944&r2=681945&view=diff
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/tracker/ServiceTrackerCustomizer.java
 (original)
+++ 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/tracker/ServiceTrackerCustomizer.java
 Sat Aug  2 02:56:01 2008
@@ -1,7 +1,7 @@
 /*
- * $Header: 
/cvshome/build/org.osgi.util.tracker/src/org/osgi/util/tracker/ServiceTrackerCustomizer.java,v
 1.10 2006/06/16 16:31:13 hargrave Exp $
+ * $Header: 
/cvshome/build/org.osgi.util.tracker/src/org/osgi/util/tracker/ServiceTrackerCustomizer.java,v
 1.13 2007/02/19 19:04:33 hargrave Exp $
  * 
- * Copyright (c) OSGi Alliance (2000, 2006). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2000, 2007). 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.
@@ -22,25 +22,32 @@
 
 /**
  * The <code>ServiceTrackerCustomizer</code> interface allows a
- * <code>ServiceTracker</code> object to customize the service objects that are
- * tracked. The <code>ServiceTrackerCustomizer</code> object is called when a
- * service is being added to the <code>ServiceTracker</code> object. The
- * <code>ServiceTrackerCustomizer</code> can then return an object for the 
tracked
- * service. The <code>ServiceTrackerCustomizer</code> object is also called 
when a
- * tracked service is modified or has been removed from the
+ * <code>ServiceTracker</code> object to customize the service objects that
+ * are tracked. The <code>ServiceTrackerCustomizer</code> object is called
+ * when a service is being added to the <code>ServiceTracker</code> object.
+ * The <code>ServiceTrackerCustomizer</code> can then return an object for the
+ * tracked service. The <code>ServiceTrackerCustomizer</code> object is also
+ * called when a tracked service is modified or has been removed from the
  * <code>ServiceTracker</code> object.
  * 
  * <p>
  * The methods in this interface may be called as the result of a
- * <code>ServiceEvent</code> being received by a <code>ServiceTracker</code> 
object.
- * Since <code>ServiceEvent</code> s are synchronously delivered by the 
Framework,
- * it is highly recommended that implementations of these methods do not
- * register (<code>BundleContext.registerService</code>), modify (
+ * <code>ServiceEvent</code> being received by a <code>ServiceTracker</code>
+ * object. Since <code>ServiceEvent</code> s are synchronously delivered by
+ * the Framework, it is highly recommended that implementations of these 
methods
+ * do not register (<code>BundleContext.registerService</code>), modify (
  * <code>ServiceRegistration.setProperties</code>) or unregister (
  * <code>ServiceRegistration.unregister</code>) a service while being
  * synchronized on any object.
  * 
- * @version $Revision: 1.10 $
+ * <p>
+ * The <code>ServiceTracker</code> class is thread-safe. It does not call a
+ * <code>ServiceTrackerCustomizer</code> object while holding any locks.
+ * <code>ServiceTrackerCustomizer</code> implementations must also be
+ * thread-safe.
+ * 
+ * @ThreadSafe
+ * @version $Revision: 1.13 $
  */
 public interface ServiceTrackerCustomizer {
        /**
@@ -48,17 +55,17 @@
         * 
         * <p>
         * This method is called before a service which matched the search
-        * parameters of the <code>ServiceTracker</code> object is added to it. 
This
-        * method should return the service object to be tracked for this
-        * <code>ServiceReference</code> object. The returned service object is 
stored
-        * in the <code>ServiceTracker</code> object and is available from the
-        * <code>getService</code> and <code>getServices</code> methods.
+        * parameters of the <code>ServiceTracker</code> object is added to it.
+        * This method should return the service object to be tracked for this
+        * <code>ServiceReference</code> object. The returned service object is
+        * stored in the <code>ServiceTracker</code> object and is available 
from
+        * the <code>getService</code> and <code>getServices</code> methods.
         * 
         * @param reference Reference to service being added to the
         *        <code>ServiceTracker</code> object.
         * @return The service object to be tracked for the
-        *         <code>ServiceReference</code> object or <code>null</code> if 
the
-        *         <code>ServiceReference</code> object should not be tracked.
+        *         <code>ServiceReference</code> object or <code>null</code> if
+        *         the <code>ServiceReference</code> object should not be 
tracked.
         */
        public Object addingService(ServiceReference reference);
 
@@ -73,8 +80,7 @@
         * @param reference Reference to service that has been modified.
         * @param service The service object for the modified service.
         */
-       public void modifiedService(ServiceReference reference,
-                       Object service);
+       public void modifiedService(ServiceReference reference, Object service);
 
        /**
         * A service tracked by the <code>ServiceTracker</code> object has been
@@ -87,6 +93,5 @@
         * @param reference Reference to service that has been removed.
         * @param service The service object for the removed service.
         */
-       public void removedService(ServiceReference reference,
-                       Object service);
+       public void removedService(ServiceReference reference, Object service);
 }

Modified: 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/xml/XMLParserActivator.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/xml/XMLParserActivator.java?rev=681945&r1=681944&r2=681945&view=diff
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/xml/XMLParserActivator.java
 (original)
+++ 
felix/trunk/org.osgi.compendium/src/main/java/org/osgi/util/xml/XMLParserActivator.java
 Sat Aug  2 02:56:01 2008
@@ -1,5 +1,5 @@
 /*
- * $Header: 
/cvshome/build/org.osgi.util.xml/src/org/osgi/util/xml/XMLParserActivator.java,v
 1.10 2006/06/21 17:41:20 hargrave Exp $
+ * $Header: 
/cvshome/build/org.osgi.util.xml/src/org/osgi/util/xml/XMLParserActivator.java,v
 1.11 2006/10/27 18:17:06 hargrave Exp $
  * 
  * Copyright (c) OSGi Alliance (2002, 2006). All Rights Reserved.
  * 
@@ -137,7 +137,6 @@
         *         bundle is marked as stopped and the Framework will remove 
this
         *         bundle's listeners, unregister all services registered by 
this
         *         bundle, and release all services used by this bundle.
-        * @see Bundle#start
         */
        public void start(BundleContext context) throws Exception {
                this.context = context;
@@ -159,7 +158,6 @@
        }
 
        /**
-        * <p>
         * This method has nothing to do as all active service registrations 
will
         * automatically get unregistered when the bundle stops.
         * 
@@ -168,7 +166,6 @@
         *         bundle is still marked as stopped, and the Framework will 
remove
         *         the bundle's listeners, unregister all services registered 
by the
         *         bundle, and release all services used by the bundle.
-        * @see Bundle#stop
         */
        public void stop(BundleContext context) throws Exception {
        }

Modified: felix/trunk/org.osgi.compendium/src/main/resources/about.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/about.html?rev=681945&r1=681944&r2=681945&view=diff
==============================================================================
--- felix/trunk/org.osgi.compendium/src/main/resources/about.html (original)
+++ felix/trunk/org.osgi.compendium/src/main/resources/about.html Sat Aug  2 
02:56:01 2008
@@ -1,9 +1,9 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<!-- $Header: /cvshome/build/osgi/about.html,v 1.3 2006/03/14 01:21:34 
hargrave Exp $ -->
+<!-- $Header: /cvshome/build/osgi/about.html,v 1.4 2006/10/30 18:29:29 
hargrave Exp $ -->
 <html>
 <head>
 <title>About</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
+<meta http-equiv=Content-Type content="text/html; charset=UTF-8">
 </head>
 <body lang="EN-US">
 <h2>About This Content</h2>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,13 @@
+<!-- $Header: 
/cvshome/build/info.dmtree/src/info/dmtree/notification/package.html,v 1.2 
2006/07/12 21:07:14 hargrave Exp $ -->
+<BODY>
+<p>Device Management Tree Notification Package Version 1.0.
+This package contains the public API of the Notification service. This service
+enables the sending of asynchronous notifications to management servers.
+Permission classes are provided by the <code>info.dmtree.security</code> 
package.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.notification;version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/spi/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/spi/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/spi/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/spi/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,15 @@
+<!-- $Header: 
/cvshome/build/info.dmtree/src/info/dmtree/notification/spi/package.html,v 1.2 
2006/07/12 21:07:14 hargrave Exp $ -->
+<BODY>
+<p>Device Management Tree Notification SPI Package Version 1.0.
+This package contains the SPI (Service Provider Interface) of the Notification
+service. These interfaces are implemented by Protocol Adapters capable of 
+delivering notifications to management servers on a specific protocol.  Users 
of
+the <code>NotificationService</code> interface do not interact directly with 
this 
+package.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.notification.spi;version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/spi/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/spi/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/spi/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/notification/spi/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/package.html?rev=681945&view=auto
==============================================================================
--- felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/package.html 
(added)
+++ felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/package.html 
Sat Aug  2 02:56:01 2008
@@ -0,0 +1,16 @@
+<!-- $Header: /cvshome/build/info.dmtree/src/info/dmtree/package.html,v 1.2 
2006/07/12 21:07:14 hargrave Exp $ -->
+<BODY>
+<p>Device Management Tree Package Version 1.0.
+This package contains the public API for the Device Management Tree 
+manipulations. Permission classes are provided by the 
+<code>info.dmtree.security</code> package, and DMT plugin interfaces can be 
found in
+the <code>info.dmtree.spi</code> package.  Asynchronous notifications to 
remote 
+management servers can be sent using the interfaces in the 
+<code>info.dmtree.notification</code> package.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree;version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/packageinfo?rev=681945&view=auto
==============================================================================
--- felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/packageinfo 
(added)
+++ felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/packageinfo 
Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/registry/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/registry/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/registry/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/registry/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,15 @@
+<!-- $Header: 
/cvshome/build/info.dmtree/src/info/dmtree/registry/package.html,v 1.2 
2006/07/12 21:07:14 hargrave Exp $ -->
+<BODY>
+<p>Device Management Tree Registry Package Version 1.0.
+This package contains the factory class providing access to the different
+Device Management services for non-OSGi applications.  The 
+<code>DmtServiceFactory</code> class contained in this package provides methods
+for retrieving <code>NotificationService</code> and <code>DmtAdmin</code>
+service implementations.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.registry;version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/registry/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/registry/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/registry/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/registry/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/security/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/security/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/security/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/security/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,12 @@
+<!-- $Header: 
/cvshome/build/info.dmtree/src/info/dmtree/security/package.html,v 1.2 
2006/07/12 21:07:14 hargrave Exp $ -->
+<BODY>
+<p>Device Management Tree Security Package Version 1.0.
+This package contains the permission classes used by the Device
+Management API in environments that support the Java 2 security model.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.security;version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/security/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/security/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/security/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/security/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/spi/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/spi/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/spi/package.html 
(added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/spi/package.html 
Sat Aug  2 02:56:01 2008
@@ -0,0 +1,13 @@
+<!-- $Header: /cvshome/build/info.dmtree/src/info/dmtree/spi/package.html,v 
1.2 2006/07/12 21:07:14 hargrave Exp $ -->
+<BODY>
+<p>Device Management Tree SPI Package Version 1.0.
+This package contains the interface classes that compose the Device Management 
+SPI (Service Provider Interface).  These interfaces are implemented by DMT 
plugins;
+users of the <code>DmtAdmin</code> interface do not interact directly with 
these.
+<p>Bundles wishing to use this package must list the package
+in the Import-Package header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: info.dmtree.spi;version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/spi/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/spi/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/spi/packageinfo 
(added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/info/dmtree/spi/packageinfo 
Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/application/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/application/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/application/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/application/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,10 @@
+<!-- $Header: 
/cvshome/build/org.osgi.application/src/org/osgi/application/package.html,v 1.2 
2006/07/12 21:07:09 hargrave Exp $ -->
+<BODY>
+<p>Foreign Application 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.
+For example:
+<pre>
+Import-Package: org.osgi.application; version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/application/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/application/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/application/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/application/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/application/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/application/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/application/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/application/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+<!-- $Header: 
/cvshome/build/org.osgi.service.application/src/org/osgi/service/application/package.html,v
 1.5 2006/07/12 21:07:13 hargrave Exp $ -->
<BODY>
<p>Application 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.
For example:
<pre>
Import-Package: org.osgi.service.application; version=1.0
</pre>
</BODY>

\ No newline at end of file

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/application/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/application/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/application/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/application/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,10 @@
+<!-- $Header: 
/cvshome/build/org.osgi.service.deploymentadmin/src/org/osgi/service/deploymentadmin/package.html,v
 1.4 2006/07/12 21:07:12 hargrave Exp $ -->
+<BODY>
+<p>Deployment Admin Package Version 1.0.
+<p>Bundles wishing to use this package must list the package
+in the <TT>Import-Package</TT> header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: org.osgi.service.deploymentadmin; version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/spi/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/spi/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/spi/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/spi/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,12 @@
+<!-- $Header: 
/cvshome/build/org.osgi.service.deploymentadmin/src/org/osgi/service/deploymentadmin/spi/package.html,v
 1.3 2006/07/12 21:07:12 hargrave Exp $ -->
+<BODY>
+<p>Deployment Admin SPI Package Version 1.0.
+The SPI is used by Resource Processors.
+<p>Bundles wishing to use this package must list the package
+in the <TT>Import-Package</TT> header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: org.osgi.service.deploymentadmin.spi; version=1.0
+</pre>
+</BODY>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/spi/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/spi/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/spi/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/deploymentadmin/spi/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/monitor/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/monitor/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/monitor/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/monitor/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,10 @@
+<!-- $Header: 
/cvshome/build/org.osgi.service.monitor/src/org/osgi/service/monitor/package.html,v
 1.4 2006/07/12 21:07:13 hargrave Exp $ -->
+<BODY>
+<p>Monitor Admin Package Version 1.0.
+<p>Bundles wishing to use this package must list the package
+in the <TT>Import-Package</TT> header of the bundle's manifest.
+For example:
+<pre>
+Import-Package: org.osgi.service.monitor; version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/monitor/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/monitor/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/monitor/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/service/monitor/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/gsm/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/gsm/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/gsm/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/gsm/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,10 @@
+<!-- $Header: 
/cvshome/build/org.osgi.util.gsm/src/org/osgi/util/gsm/package.html,v 1.2 
2006/07/12 21:06:54 hargrave Exp $ -->
+<BODY>
+<p>Mobile GSM Conditions 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.
+For example:
+<pre>
+Import-Package: org.osgi.util.gsm; version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/gsm/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/gsm/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/gsm/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/gsm/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0
\ No newline at end of file

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/mobile/package.html
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/mobile/package.html?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/mobile/package.html
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/mobile/package.html
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1,10 @@
+<!-- $Header: 
/cvshome/build/org.osgi.util.mobile/src/org/osgi/util/mobile/package.html,v 1.2 
2006/07/12 21:07:11 hargrave Exp $ -->
+<BODY>
+<p>Mobile Conditions 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.
+For example:
+<pre>
+Import-Package: org.osgi.util.mobile; version=1.0
+</pre>
+</BODY>

Added: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/mobile/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/mobile/packageinfo?rev=681945&view=auto
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/mobile/packageinfo
 (added)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/mobile/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -0,0 +1 @@
+version 1.0
\ No newline at end of file

Modified: 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/tracker/packageinfo
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/tracker/packageinfo?rev=681945&r1=681944&r2=681945&view=diff
==============================================================================
--- 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/tracker/packageinfo
 (original)
+++ 
felix/trunk/org.osgi.compendium/src/main/resources/org/osgi/util/tracker/packageinfo
 Sat Aug  2 02:56:01 2008
@@ -1 +1 @@
-version 1.3.2
+version 1.3.3

Added: felix/trunk/org.osgi.compendium/xmlns/app/app.xsd
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/xmlns/app/app.xsd?rev=681945&view=auto
==============================================================================
--- felix/trunk/org.osgi.compendium/xmlns/app/app.xsd (added)
+++ felix/trunk/org.osgi.compendium/xmlns/app/app.xsd Sat Aug  2 02:56:01 2008
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+ * $Header: /cvshome/build/xmlns/app/app.xsd,v 1.2 2006/03/29 15:40:11 
hargrave Exp $
+ * 
+ * Copyright (c) OSGi Alliance (2005, 2006). 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.
+ */
+-->            
+<xs:schema
+    xmlns="http://www.osgi.org/xmlns/app/v1.0.0";
+    xmlns:app="http://www.osgi.org/xmlns/app/v1.0.0"; 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema";  
+    targetNamespace="http://www.osgi.org/xmlns/app/v1.0.0";
+    elementFormDefault="qualified" 
+    attributeFormDefault="unqualified" 
+    version="1.0.0">
+    
+       <xs:element name="descriptor" type="app:descriptorType">
+               <xs:annotation>
+                       <xs:documentation>descriptor element encloses the 
applicaiton descriptors provided in a document</xs:documentation>
+               </xs:annotation>
+       </xs:element>
+
+       <xs:complexType name="descriptorType">
+               <xs:sequence>
+                       <xs:element name="application" 
type="app:applicationType" minOccurs="1" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+
+       <xs:complexType name="applicationType">
+               <xs:annotation>
+                       <xs:documentation>describes the service dependecies of 
an application</xs:documentation>
+               </xs:annotation>
+               <xs:sequence>
+                       <xs:element name="reference" minOccurs="0" 
maxOccurs="unbounded" type="referenceType"/>
+               </xs:sequence>
+               <xs:attribute name="class" type="xs:string"/>
+       </xs:complexType>
+
+       <xs:complexType name="referenceType">
+               <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
+               <xs:attribute name="interface" type="xs:string" use="required"/>
+               <xs:attribute name="cardinality" default="1..1" use="optional" 
type="cardinalityType"/>
+               <xs:attribute name="policy" use="optional" default="static" 
type="policyType"/>
+               <xs:attribute name="target" type="xs:string" use="optional"/>
+       </xs:complexType>
+
+        <xs:simpleType name="cardinalityType">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="0..1"/>
+                       <xs:enumeration value="0..n"/>
+                       <xs:enumeration value="1..1"/>
+                       <xs:enumeration value="1..n"/>
+               </xs:restriction>
+       </xs:simpleType>
+
+       <xs:simpleType name="policyType">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="static"/>
+                       <xs:enumeration value="dynamic"/>
+               </xs:restriction>
+       </xs:simpleType>
+
+
+</xs:schema>

Modified: felix/trunk/org.osgi.compendium/xmlns/scr/scr.xsd
URL: 
http://svn.apache.org/viewvc/felix/trunk/org.osgi.compendium/xmlns/scr/scr.xsd?rev=681945&r1=681944&r2=681945&view=diff
==============================================================================
--- felix/trunk/org.osgi.compendium/xmlns/scr/scr.xsd (original)
+++ felix/trunk/org.osgi.compendium/xmlns/scr/scr.xsd Sat Aug  2 02:56:01 2008
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- 
 /*
- * $Header: /cvshome/build/xmlns/scr/scr.xsd,v 1.11 2006/03/14 01:21:41 
hargrave Exp $
+ * $Header: /cvshome/build/xmlns/scr/scr.xsd,v 1.12 2006/07/11 13:27:46 
hargrave Exp $
  * 
- * Copyright (c) OSGi Alliance (2005). All Rights Reserved.
+ * Copyright (c) OSGi Alliance (2005, 2006). 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.


Reply via email to