Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * #%L
   * JBossOSGi Framework
   * %%
   * Copyright (C) 2010 - 2012 JBoss by Red Hat
   * %%
   * This program is free software: you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation, either version 2.1 of the
  * License, or (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Lesser Public License for more details.
  *
  * You should have received a copy of the GNU General Lesser Public
  * License along with this program.  If not, see
  * <http://www.gnu.org/licenses/lgpl-2.1.html>.
  * #L%
  */
 package org.jboss.osgi.framework.internal;
 
 import static org.jboss.osgi.framework.FrameworkMessages.MESSAGES;
 
 import java.util.List;
 
The default org.jboss.osgi.resolver.XEnvironment implementation.

Author(s):
thomas.diesler@jboss.com
Since:
15-Feb-2012
 
 public final class EnvironmentImpl extends AbstractEnvironment implements XEnvironment {
 
     private final LockManager lockManager;
 
     public EnvironmentImpl(LockManager lockManager) {
         this. = lockManager;
     }
 
     @Override
     public void installResources(XResource... resources) {
 
         // Check that all installed resources are instances of {@link XBundleRevision} and have an associated {@link Bundle}
         for (XResource res : resources) {
             if (!(res instanceof XBundleRevision))
                 throw .unsupportedResourceType(res);
             XBundleRevision brev = (XBundleRevisionres;
             if (brev.getBundle() == null)
                 throw .cannotObtainBundleFromResource(res);
         }
 
         LockContext lockContext = null;
         try {
             FrameworkWiringLock wireLock = .getItemForType(FrameworkWiringLock.class);
             lockContext = .lockItems(.getLockableItems(wireLockresources));
             super.installResources(resources);
         } finally {
             .unlockItems(lockContext);
         }
     }
 
     @Override
     public synchronized void uninstallResources(XResource... resources) {
         LockContext lockContext = null;
         try {
             FrameworkWiringLock wireLock = .getItemForType(FrameworkWiringLock.class);
             lockContext = .lockItems(.getLockableItems(wireLockresources));
             super.uninstallResources(resources);
         } finally {
             .unlockItems(lockContext);
         }
     }
 
     @Override
     public Wiring createWiring(XResource resList<WirerequiredList<Wireprovided) {
         XBundleRevision brev = (XBundleRevisionres;
         return new AbstractBundleWiring(brevrequiredprovided);
     }
 
     private LockableItem[] getLockableItems(LockableItem itemXResource... resources) {
         List<LockableItemitems = new ArrayList<LockableItem>();
         items.add(item);
         if (resources != null) {
            for (XResource res : resources) {
                XBundleRevision brev = (XBundleRevisionres;
                if (brev.getBundle() instanceof LockableItem) {
                    items.add((LockableItembrev.getBundle());
                }
            }
        }
        return items.toArray(new LockableItem[items.size()]);
    }
New to GrepCode? Check out our FAQ X