package org.jboss.windup.rules.apps.javaee.rules; import org.jboss.windup.config.GraphRewrite; import org.jboss.windup.config.metadata.RuleMetadata; import org.jboss.windup.config.phase.PostMigrationRulesPhase; import org.jboss.windup.config.query.Query; import org.jboss.windup.config.ruleprovider.IteratingRuleProvider; import org.jboss.windup.rules.apps.javaee.model.EjbSessionBeanModel; import org.jboss.windup.rules.apps.javaee.service.EjbRemoteServiceModelService; import org.ocpsoft.rewrite.config.ConditionBuilder; import org.ocpsoft.rewrite.context.EvaluationContext; /** * Discovers remote interfaces and marks them for reporting. * * @author <a href="mailto:bradsdavis@gmail.com">Brad Davis</a> */ @RuleMetadata(phase = PostMigrationRulesPhase.class, perform = "Mark EJB Remote Class Files") public class DiscoverRemoteEjbRuleProvider extends IteratingRuleProvider<EjbSessionBeanModel> { @Override public ConditionBuilder when() { return Query.fromType(EjbSessionBeanModel.class); } public void perform(GraphRewrite event, EvaluationContext context, EjbSessionBeanModel payload) { if (payload.getEjbRemote() != null) { EjbRemoteServiceModelService service = new EjbRemoteServiceModelService(event.getGraphContext()); service.getOrCreate(payload.getApplications(), payload.getEjbRemote(), payload.getEjbClass()); } } }