Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Sonatype Nexus (TM) Open Source Version
   * Copyright (c) 2008-2015 Sonatype, Inc.
   * All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
   *
   * This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
   * which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
   *
   * Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
  * of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
  * Eclipse Foundation. All other trademarks are the property of their respective owners.
  */
 package org.sonatype.nexus.plugins.capabilities.internal;
 
 import  javax.inject.Inject;
 
 import  org.sonatype.sisu.goodies.common.ComponentSupport;
 import  org.sonatype.sisu.goodies.eventbus.EventBus;
 
 import  com.google.common.eventbus.AllowConcurrentEvents;
 import  com.google.common.eventbus.Subscribe;
 import  com.google.inject.assistedinject.Assisted;
 
 import static com.google.common.base.Preconditions.checkNotNull;

Handles capability activation by reacting capability activation condition being satisfied/unsatisfied.

Since:
capabilities 2.0
 
     extends ComponentSupport
 {
 
   private final EventBus eventBus;
 
   private final DefaultCapabilityReference reference;
 
   private final Conditions conditions;
 
 
   @Inject
   ActivationConditionHandler(final EventBus eventBus,
                              final Conditions conditions,
                              final @Assisted DefaultCapabilityReference reference)
   {
     this. = checkNotNull(eventBus);
     this. = checkNotNull(conditions);
     this. = checkNotNull(reference);
   }
 
   boolean isConditionSatisfied() {
     return  != null && .isSatisfied();
   }
 
   @AllowConcurrentEvents
   @Subscribe
   public void handle(final ConditionEvent.Satisfied event) {
     if (event.getCondition() == ) {
       .activate();
     }
   }
 
   @AllowConcurrentEvents
   @Subscribe
   public void handle(final ConditionEvent.Unsatisfied event) {
     if (event.getCondition() == ) {
       .passivate();
     }
   }
 
     if ( == null) {
       try {
         Condition capabilityActivationCondition = .capability().activationCondition();
         if (capabilityActivationCondition == null) {
           capabilityActivationCondition = new SatisfiedCondition("Capability has no activation condition");
         }
          = .logical().and(
             capabilityActivationCondition,
             .nexus().active(),
             .capabilities().capabilityHasNoFailures()
         );
         if ( instanceof CapabilityContextAware) {
         }
       }
       catch (Exception e) {
          = new UnsatisfiedCondition("Failed to determine activation condition");
         log.error(
             "Could not get activation condition from capability {} ({}). Considering it as non activatable",
             .capability(), .context().id(), e
        );
      }
      .register(this);
    }
    return this;
  }
    if ( != null) {
      .unregister(this);
       = null;
    }
    return this;
  }
  public String toString() {
    return String.format(
        "Watching '%s' condition to activate/passivate capability '%s (id=%s)'",
    );
  }
  }
New to GrepCode? Check out our FAQ X