Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.mobicents.slee.container.deployment
Class SbbVerifier  view SbbVerifier download SbbVerifier.java

java.lang.Object
  extended byorg.mobicents.slee.container.deployment.SbbVerifier

public class SbbVerifier
extends java.lang.Object

Verify that a sbb abstract class provided by a sbb developer is following a set of constraints.
This verifier checks that the sbb developer developed the Sbb Abstract class following the slee specification requirements.

It verifies also that the Sbb Abstract class and the definitions provided by the sbb developer in the deployment descriptor are matching
It verifies also the sbb concrete class generated by the slee runtime to check the generated byte code integrity.


Field Summary
static java.lang.String DEPLOYMENT_PATH
           
private static java.lang.String deployPath
          Path where to find the classes
private  java.lang.String errorString
           
private static boolean firstTime
           
private static org.jboss.logging.Logger logger
          Logger to logg information
private  ClassPool pool
          Pool to generate or read classes with javassist
private  CtClass sbbAbstractClass
          the class holder for javax.slee.Sbb
private  org.mobicents.slee.container.management.SbbDescriptorImpl sbbDeploymentDescriptor
          deployment descriptor used to verified that the Sbb Abstract class and the definitions in the deployment descriptor are matching
 
Constructor Summary
SbbVerifier(SbbDescriptor sbbDescriptor)
           
 
Method Summary
private  boolean checkCMPFieldsAgainstDeploymentDescripor(java.util.Map abstractMethods, org.mobicents.slee.container.management.CMPField[] cmpFields, CtClass sbbAbstractClass)
          Check that for the CMP fields defined in the sbbDeployment descriptor there is at least one accessor.
private  boolean checkEventHandlerMethods(CtClass sbbAbstractClass, org.mobicents.slee.container.SleeContainer serviceContainer)
          Check the event handler method signatures.
private  boolean checkInterfaces(CtClass[] interfaces, java.lang.String interfaceSearched)
          Check if among the interfaces one is the class searched
private  boolean checkProfileCMPMethods(CtClass sbbAbstractClass, java.util.Map abstractMethods, java.util.Map superClassesAbstractMethods)
           
protected  boolean checkSbbAbstractClassConstraints(CtClass sbbAbstractClass)
          Check the constraints defined by the slee specification final release 1.0 on an Sbb Abstract Class : The class must implement, directly or indirectly, the javax.slee.Sbb interface.
protected  boolean checkSbbAgainstDeploymentDescriptor(CtClass sbbAbstractClass)
          Check that the sbb abstract class correclty implements what is defined in the deployment descriptor For each method defined by the SBB Developer, there must be a matching method in the SBB abstract class.
 boolean verifySbbAbstractClass(java.lang.String sbbAbstractClassName, org.mobicents.slee.container.SleeContainer serviceContainer)
          Verify that a sbb abstract class provided by a sbb developer is following a set of constraints.
 boolean verifySbbConcreteClass(java.lang.String sbbConcreteClassName)
          Verify the sbb concrete class generated by the slee runtime to check the generated byte code integrity.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEPLOYMENT_PATH

public static final java.lang.String DEPLOYMENT_PATH

sbbDeploymentDescriptor

private org.mobicents.slee.container.management.SbbDescriptorImpl sbbDeploymentDescriptor
deployment descriptor used to verified that the Sbb Abstract class and the definitions in the deployment descriptor are matching


deployPath

private static java.lang.String deployPath
Path where to find the classes


pool

private ClassPool pool
Pool to generate or read classes with javassist


logger

private static org.jboss.logging.Logger logger
Logger to logg information


errorString

private java.lang.String errorString

firstTime

private static boolean firstTime

sbbAbstractClass

private CtClass sbbAbstractClass
the class holder for javax.slee.Sbb

Constructor Detail

SbbVerifier

public SbbVerifier(SbbDescriptor sbbDescriptor)
Method Detail

verifySbbAbstractClass

public boolean verifySbbAbstractClass(java.lang.String sbbAbstractClassName,
                                      org.mobicents.slee.container.SleeContainer serviceContainer)
Verify that a sbb abstract class provided by a sbb developer is following a set of constraints.


verifySbbConcreteClass

public boolean verifySbbConcreteClass(java.lang.String sbbConcreteClassName)
Verify the sbb concrete class generated by the slee runtime to check the generated byte code integrity.


checkSbbAbstractClassConstraints

protected boolean checkSbbAbstractClassConstraints(CtClass sbbAbstractClass)
Check the constraints defined by the slee specification final release 1.0 on an Sbb Abstract Class : The class must implement, directly or indirectly, the javax.slee.Sbb interface. · The class must be defined as public and must be abstract. · The class must not define the finalize method · The SBB Developer must provide a public constructor that takes no arguments.


checkInterfaces

private boolean checkInterfaces(CtClass[] interfaces,
                                java.lang.String interfaceSearched)
Check if among the interfaces one is the class searched


checkSbbAgainstDeploymentDescriptor

protected boolean checkSbbAgainstDeploymentDescriptor(CtClass sbbAbstractClass)
Check that the sbb abstract class correclty implements what is defined in the deployment descriptor For each method defined by the SBB Developer, there must be a matching method in the SBB abstract class. The matching method must have: o The same name. o The same number of arguments, and same argument and return types. o The same set of exceptions in the throws clause. param sbbAbstractClass the sbb abstract class to check


checkProfileCMPMethods

private boolean checkProfileCMPMethods(CtClass sbbAbstractClass,
                                       java.util.Map abstractMethods,
                                       java.util.Map superClassesAbstractMethods)

checkCMPFieldsAgainstDeploymentDescripor

private boolean checkCMPFieldsAgainstDeploymentDescripor(java.util.Map abstractMethods,
                                                         org.mobicents.slee.container.management.CMPField[] cmpFields,
                                                         CtClass sbbAbstractClass)
Check that for the CMP fields defined in the sbbDeployment descriptor there is at least one accessor. If the CMP field has a getter : the getter should have a return type the getter should not have any parameters If the CMP field has a setter : the getter should not have a return type the getter should have one parameter


checkEventHandlerMethods

private boolean checkEventHandlerMethods(CtClass sbbAbstractClass,
                                         org.mobicents.slee.container.SleeContainer serviceContainer)
Check the event handler method signatures. The SBB developer must implement these. These must be recognized events in the slee else the Sbb is not valid.