Package org.codehaus.aspectwerkz

Examples of org.codehaus.aspectwerkz.Aspect


        }

        boolean hasThrowsPointcut = false;
        Collection aspects = m_system.getAspects();
        for (Iterator it = aspects.iterator(); it.hasNext();) {
            Aspect aspect = (Aspect)it.next();
            if (aspect.hasThrowsPointcut(
                    m_classMetaData,
                    m_methodMetaData,
                    cause.getClass().getName())) {
                hasThrowsPointcut = true;
                break;
View Full Code Here


        AspectWerkz.getSystem("tests").getAdvice("methodAdvice1").setDeploymentModel(DeploymentModel.PER_CLASS);
        assertEquals(DeploymentModel.PER_CLASS, AspectWerkz.getSystem("tests").getAdvice("methodAdvice1").getDeploymentModel());
    }

    public void testRegisterAspect() {
        AspectWerkz.getSystem("tests").register(new Aspect(getClass().getName()));
        Collection aspects = AspectWerkz.getSystem("tests").getAspects();
        for (Iterator it = aspects.iterator(); it.hasNext();) {
            Aspect aspect = (Aspect)it.next();
            if (aspect.getName().equals(getClass().getName())) {
                return;
            }
        }
        fail();
    }
View Full Code Here

        }

        boolean hasThrowsPointcut = false;
        Collection aspects = m_system.getAspects();
        for (Iterator it = aspects.iterator(); it.hasNext();) {
            Aspect aspect = (Aspect)it.next();
            if (aspect.hasThrowsPointcut(
                    m_classMetaData,
                    m_methodMetaData,
                    cause.getClass().getName())) {
                hasThrowsPointcut = true;
                break;
View Full Code Here

    private static void createAspects(final String uuid,
                                      final AspectWerkzDefinition definition) {
        try {
            for (Iterator it = definition.getAspectDefinitions().iterator(); it.hasNext();) {
                AspectDefinition aspectDefinition = (AspectDefinition)it.next();
                AspectWerkz.getSystem(uuid).register(new Aspect(uuid, aspectDefinition.getName()));
            }
        }
        catch (NullPointerException e) {
            throw new DefinitionException("aspects not properly defined");
        }
View Full Code Here

            final AspectWerkzDefinition definition) {

        // get all aspects definitions
        for (Iterator it1 = definition.getAspectDefinitions().iterator(); it1.hasNext();) {
            AspectDefinition aspectDefinition = (AspectDefinition)it1.next();
            Aspect aspect = AspectWerkz.getSystem(uuid).getAspect(aspectDefinition.getName());

            try {
                // get all advice weaving rules defined in this aspect
                List adviceWeavingRules = aspectDefinition.getAdviceWeavingRules();
                for (Iterator it2 = adviceWeavingRules.iterator(); it2.hasNext();) {
                    AdviceWeavingRule weavingRule = (AdviceWeavingRule)it2.next();

                    // create method pointcut
                    MethodPointcut methodPointcut = new MethodPointcut(
                            uuid,
                            weavingRule.getExpression()
                    );

                    // add all referenced method poincuts definitions
                    boolean hasMethodPointcut = false;
                    List methodPointcutRefs = weavingRule.getPointcutRefs();
                    for (Iterator it3 = methodPointcutRefs.iterator(); it3.hasNext();) {
                        String pointcutName = (String)it3.next();
                        PointcutDefinition pointcutDefinition =
                                aspectDefinition.getPointcutDef(pointcutName);
                        if (pointcutDefinition != null && pointcutDefinition.getType().
                                equalsIgnoreCase(PointcutDefinition.METHOD)) {
                            methodPointcut.addPointcutDef(pointcutDefinition);
                            hasMethodPointcut = true;
                        }
                    }
                    // check if the weaving rule had a method pointcut, if not continue
                    if (!hasMethodPointcut) {
                        continue;
                    }
                    // add advice references
                    List adviceRefs = weavingRule.getAdviceRefs();
                    for (Iterator it3 = adviceRefs.iterator(); it3.hasNext();) {
                        methodPointcut.addAdvice((String)it3.next());
                    }
                    // add advices from advice stacks
                    List adviceStackRefs = weavingRule.getAdviceStackRefs();
                    for (Iterator it3 = adviceStackRefs.iterator(); it3.hasNext();) {
                        AdviceStackDefinition adviceStackDefinition =
                                definition.getAdviceStackDefinition((String)it3.next());

                        List advices = adviceStackDefinition.getAdviceRefs();
                        for (Iterator it4 = advices.iterator(); it4.hasNext();) {
                            methodPointcut.addAdvice((String)it4.next());
                        }
                    }
                    // add the method pointcut
                    aspect.addMethodPointcut(methodPointcut);
                }
            }
            catch (NullPointerException e) {
                throw new DefinitionException("method pointcuts in aspect <" + aspect.getName() + "> are not properly defined");
            }
            catch (Exception e) {
                throw new WrappedRuntimeException(e);
            }
        }
View Full Code Here

            final AspectWerkzDefinition definition) {

        // get all aspects definitions
        for (Iterator it1 = definition.getAspectDefinitions().iterator(); it1.hasNext();) {
            AspectDefinition aspectDefinition = (AspectDefinition)it1.next();
            Aspect aspect = AspectWerkz.getSystem(uuid).getAspect(aspectDefinition.getName());

            try {
                // get all advice weaving rules defined in this aspect
                List adviceWeavingRules = aspectDefinition.getAdviceWeavingRules();
                for (Iterator it2 = adviceWeavingRules.iterator(); it2.hasNext();) {
                    AdviceWeavingRule weavingRule = (AdviceWeavingRule)it2.next();

                    // create set field pointcut
                    FieldPointcut pointcut = new FieldPointcut(uuid, weavingRule.getExpression());

                    // add all referenced poincuts definitions
                    boolean hasSetFieldPointcut = false;
                    List pointcutRefs = weavingRule.getPointcutRefs();
                    for (Iterator it3 = pointcutRefs.iterator(); it3.hasNext();) {
                        PointcutDefinition pointcutDefinition =
                                aspectDefinition.getPointcutDef((String)it3.next());

                        if (pointcutDefinition != null && pointcutDefinition.getType().
                                equalsIgnoreCase(PointcutDefinition.SET_FIELD)) {
                            pointcut.addPointcutDef(pointcutDefinition);
                            hasSetFieldPointcut = true;
                        }
                    }

                    // check if the weaving rule had a set field pointcut, if not continue
                    if (!hasSetFieldPointcut) {
                        continue;
                    }

                    // add pre and post advices
                    List adviceRefs = weavingRule.getAdviceRefs();
                    for (Iterator it3 = adviceRefs.iterator(); it3.hasNext();) {
                        String adviceRef = (String)it3.next();
                        if (AspectWerkz.getSystem(uuid).
                                getAdvice(adviceRef) instanceof PreAdvice) {
                            pointcut.addPreAdvice(adviceRef);
                        }
                        else if (AspectWerkz.getSystem(uuid).
                                getAdvice(adviceRef) instanceof PostAdvice) {
                            pointcut.addPostAdvice(adviceRef);
                        }
                    }

                    // add advices from advice stacks
                    List adviceStackRefs = weavingRule.getAdviceStackRefs();
                    for (Iterator it3 = adviceStackRefs.iterator(); it3.hasNext();) {
                        AdviceStackDefinition adviceStackDefinition =
                                definition.getAdviceStackDefinition((String)it3.next());

                        adviceRefs = adviceStackDefinition.getAdviceRefs();
                        for (Iterator it4 = adviceRefs.iterator(); it4.hasNext();) {
                            String adviceRef = (String)it4.next();
                            if (AspectWerkz.getSystem(uuid).
                                    getAdvice(adviceRef) instanceof PreAdvice) {
                                pointcut.addPreAdvice(adviceRef);
                            }
                            else if (AspectWerkz.getSystem(uuid).
                                    getAdvice(adviceRef) instanceof PostAdvice) {
                                pointcut.addPostAdvice(adviceRef);
                            }
                        }
                    }

                    // add the set field pointcut
                    aspect.addSetFieldPointcut(pointcut);
                }
            }
            catch (NullPointerException e) {
                throw new DefinitionException("set field pointcuts in aspect <" + aspect.getName() + "> are not properly defined");
            }
            catch (Exception e) {
                throw new WrappedRuntimeException(e);
            }
        }
View Full Code Here

            final AspectWerkzDefinition definition) {

        // get all aspects definitions
        for (Iterator it1 = definition.getAspectDefinitions().iterator(); it1.hasNext();) {
            AspectDefinition aspectDefinition = (AspectDefinition)it1.next();
            Aspect aspect = AspectWerkz.getSystem(uuid).getAspect(aspectDefinition.getName());

            try {
                // get all advice weaving rules defined in this aspect
                List adviceWeavingRules = aspectDefinition.getAdviceWeavingRules();
                for (Iterator it2 = adviceWeavingRules.iterator(); it2.hasNext();) {
                    AdviceWeavingRule weavingRule = (AdviceWeavingRule)it2.next();

                    // create get field pointcut
                    FieldPointcut pointcut = new FieldPointcut(uuid, weavingRule.getExpression());

                    // add all referenced poincuts definitions
                    boolean hasGetFieldPointcut = false;
                    List pointcutRefs = weavingRule.getPointcutRefs();
                    for (Iterator it3 = pointcutRefs.iterator(); it3.hasNext();) {
                        PointcutDefinition pointcutDefinition =
                                aspectDefinition.getPointcutDef((String)it3.next());
                        if (pointcutDefinition != null && pointcutDefinition.getType().
                                equalsIgnoreCase(PointcutDefinition.GET_FIELD)) {
                            pointcut.addPointcutDef(pointcutDefinition);
                            hasGetFieldPointcut = true;
                        }
                    }

                    // check if the weaving rule had a get field pointcut, if not continue
                    if (!hasGetFieldPointcut) {
                        continue;
                    }

                    // add pre and post advices
                    List adviceRefs = weavingRule.getAdviceRefs();
                    for (Iterator it3 = adviceRefs.iterator(); it3.hasNext();) {
                        String adviceRef = (String)it3.next();
                        if (AspectWerkz.getSystem(uuid).
                                getAdvice(adviceRef) instanceof PreAdvice) {
                            pointcut.addPreAdvice(adviceRef);
                        }
                        else if (AspectWerkz.getSystem(uuid).
                                getAdvice(adviceRef) instanceof PostAdvice) {
                            pointcut.addPostAdvice(adviceRef);
                        }
                    }

                    // add advices from advice stacks
                    List adviceStackRefs = weavingRule.getAdviceStackRefs();
                    for (Iterator it3 = adviceStackRefs.iterator(); it3.hasNext();) {
                        AdviceStackDefinition adviceStackDefinition =
                                definition.getAdviceStackDefinition((String)it3.next());

                        adviceRefs = adviceStackDefinition.getAdviceRefs();
                        for (Iterator it4 = adviceRefs.iterator(); it4.hasNext();) {
                            String adviceRef = (String)it4.next();
                            if (AspectWerkz.getSystem(uuid).getAdvice(adviceRef) instanceof PreAdvice) {
                                pointcut.addPreAdvice(adviceRef);
                            }
                            else if (AspectWerkz.getSystem(uuid).getAdvice(adviceRef) instanceof PostAdvice) {
                                pointcut.addPostAdvice(adviceRef);
                            }
                        }
                    }

                    // add the get field pointcut
                    aspect.addGetFieldPointcut(pointcut);
                }
            }
            catch (NullPointerException e) {
                throw new DefinitionException("get field pointcuts in aspect <" + aspect.getName() + "> are not properly defined");
            }
            catch (Exception e) {
                throw new WrappedRuntimeException(e);
            }
        }
View Full Code Here

            final AspectWerkzDefinition definition) {

        // get all aspects definitions
        for (Iterator it1 = definition.getAspectDefinitions().iterator(); it1.hasNext();) {
            AspectDefinition aspectDefinition = (AspectDefinition)it1.next();
            Aspect aspect = AspectWerkz.getSystem(uuid).getAspect(aspectDefinition.getName());

            try {
                // get all advice weaving rules defined in this aspect
                List adviceWeavingRules = aspectDefinition.getAdviceWeavingRules();
                for (Iterator it2 = adviceWeavingRules.iterator(); it2.hasNext();) {
                    AdviceWeavingRule weavingRule = (AdviceWeavingRule)it2.next();

                    // create throws pointcut
                    ThrowsPointcut pointcut = new ThrowsPointcut(uuid, weavingRule.getExpression());

                    // add all referenced poincuts definitions
                    boolean hasThrowsPointcut = false;
                    List pointcutRefs = weavingRule.getPointcutRefs();
                    for (Iterator it3 = pointcutRefs.iterator(); it3.hasNext();) {
                        PointcutDefinition pointcutDefinition =
                                aspectDefinition.getPointcutDef((String)it3.next());
                        if (pointcutDefinition != null && pointcutDefinition.getType().
                                equalsIgnoreCase(PointcutDefinition.THROWS)) {
                            pointcut.addPointcutDef(pointcutDefinition);
                            hasThrowsPointcut = true;
                        }
                    }

                    // check if the weaving rule had a throws pointcut, if not continue
                    if (!hasThrowsPointcut) {
                        continue;
                    }

                    // add advices
                    List adviceRefs = weavingRule.getAdviceRefs();
                    for (Iterator it3 = adviceRefs.iterator(); it3.hasNext();) {
                        String asdf = (String)it3.next();
                        pointcut.addAdvice(asdf);
                    }

                    // add advices from advice stacks
                    List adviceStackRefs = weavingRule.getAdviceStackRefs();
                    for (Iterator it3 = adviceStackRefs.iterator(); it3.hasNext();) {
                        AdviceStackDefinition adviceStackDefinition =
                                definition.getAdviceStackDefinition((String)it3.next());

                        List advices = adviceStackDefinition.getAdviceRefs();
                        for (Iterator it4 = advices.iterator(); it4.hasNext();) {
                            pointcut.addAdvice((String)it4.next());
                        }
                    }

                    // add the throws pointcut
                    aspect.addThrowsPointcut(pointcut);
                }
            }
            catch (NullPointerException e) {
                throw new DefinitionException("throws pointcuts in aspect <" + aspect.getName() + "> are not properly defined");
            }
            catch (Exception e) {
                throw new WrappedRuntimeException(e);
            }
        }
View Full Code Here

            final AspectWerkzDefinition definition) {

        // get all aspects definitions
        for (Iterator it1 = definition.getAspectDefinitions().iterator(); it1.hasNext();) {
            AspectDefinition aspectDefinition = (AspectDefinition)it1.next();
            Aspect aspect = AspectWerkz.getSystem(uuid).getAspect(aspectDefinition.getName());

            try {
                // get all advice weaving rules defined in this aspect
                List adviceWeavingRules = aspectDefinition.getAdviceWeavingRules();
                for (Iterator it2 = adviceWeavingRules.iterator(); it2.hasNext();) {
                    AdviceWeavingRule weavingRule = (AdviceWeavingRule)it2.next();

                    // create caller side pointcut
                    CallerSidePointcut pointcut = new CallerSidePointcut(
                            uuid, weavingRule.getExpression());

                    // add all referenced poincuts definitions
                    boolean hasCallerSidePointcut = false;
                    List pointcutRefs = weavingRule.getPointcutRefs();
                    for (Iterator it3 = pointcutRefs.iterator(); it3.hasNext();) {
                        PointcutDefinition pointcutDefinition =
                                aspectDefinition.getPointcutDef((String)it3.next());
                        if (pointcutDefinition != null && pointcutDefinition.getType().
                                equalsIgnoreCase(PointcutDefinition.CALLER_SIDE)) {
                            pointcut.addPointcutDef(pointcutDefinition);
                            hasCallerSidePointcut = true;
                        }
                    }

                    // check if the weaving rule had a caller side pointcut, if not continue
                    if (!hasCallerSidePointcut) {
                        continue;
                    }

                    // add pre and post advices
                    List adviceRefs = weavingRule.getAdviceRefs();
                    for (Iterator it3 = adviceRefs.iterator(); it3.hasNext();) {
                        String adviceRef = (String)it3.next();
                        if (AspectWerkz.getSystem(uuid).
                                getAdvice(adviceRef) instanceof PreAdvice) {
                            pointcut.addPreAdvice(adviceRef);
                        }
                        else if (AspectWerkz.getSystem(uuid).
                                getAdvice(adviceRef) instanceof PostAdvice) {
                            pointcut.addPostAdvice(adviceRef);
                        }
                    }

                    // add advices from advice stacks
                    List adviceStackRefs = weavingRule.getAdviceStackRefs();
                    for (Iterator it3 = adviceStackRefs.iterator(); it3.hasNext();) {
                        AdviceStackDefinition adviceStackDefinition =
                                definition.getAdviceStackDefinition((String)it3.next());

                        adviceRefs = adviceStackDefinition.getAdviceRefs();
                        for (Iterator it4 = adviceRefs.iterator(); it4.hasNext();) {
                            String adviceRef = (String)it4.next();
                            if (AspectWerkz.getSystem(uuid).getAdvice(adviceRef) instanceof PreAdvice) {
                                pointcut.addPreAdvice(adviceRef);
                            }
                            else if (AspectWerkz.getSystem(uuid).getAdvice(adviceRef) instanceof PostAdvice) {
                                pointcut.addPostAdvice(adviceRef);
                            }
                        }
                    }
                    // add the caller side pointcut
                    aspect.addCallerSidePointcut(pointcut);
                }
            }
            catch (NullPointerException e) {
                throw new DefinitionException("caller side pointcuts in aspect <" + aspect.getName() + "> are not properly defined");
            }
            catch (Exception e) {
                throw new WrappedRuntimeException(e);
            }
        }
View Full Code Here

            final AspectWerkzDefinition definition) {

        // get all aspects definitions
        for (Iterator it1 = definition.getAspectDefinitions().iterator(); it1.hasNext();) {
            AspectDefinition aspectDefinition = (AspectDefinition)it1.next();
            Aspect aspect = AspectWerkz.getSystem(uuid).getAspect(aspectDefinition.getName());

            try {
                // get all advice weaving rules defined in this aspect
                List adviceWeavingRules = aspectDefinition.getAdviceWeavingRules();
                for (Iterator it2 = adviceWeavingRules.iterator(); it2.hasNext();) {
                    AdviceWeavingRule weavingRule = (AdviceWeavingRule)it2.next();

                    String cflowExpression = weavingRule.getCFlowExpression();
                    if (cflowExpression == null) {
                        continue;
                    }

                    // get the referenced cflow poincut definition
                    PointcutDefinition cflowPointcutDef =
                            aspectDefinition.getPointcutDef(cflowExpression);

                    // create caller side pointcut
                    CallerSidePointcut callerSidePointcut =
                            new CallerSidePointcut(uuid, cflowExpression);
                    if (!(cflowPointcutDef != null && cflowPointcutDef.getType().
                            equalsIgnoreCase(PointcutDefinition.CFLOW))) {
                        continue;
                    }
                    // register the cflow advices in the system (if they does not already exist)
                    if (!AspectWerkz.getSystem(uuid).hasAspect(CFlowPreAdvice.NAME)) {
                        AdviceDefinition adviceDef = CFlowPreAdvice.getDefinition();
                        // add the advice to the aspectwerkz definition
                        definition.addAdvice(adviceDef);
                        // add the advice to the aspectwerkz system
                        registerAdvice(uuid, adviceDef);
                    }
                    if (!AspectWerkz.getSystem(uuid).hasAspect(CFlowPostAdvice.NAME)) {
                        AdviceDefinition adviceDef = CFlowPostAdvice.getDefinition();
                        // add the advice to the aspectwerkz definition
                        definition.addAdvice(adviceDef);
                        // add the advice to the aspectwerkz system
                        registerAdvice(uuid, adviceDef);
                    }
                    // add the pointcut definition to the method pointcut
                    callerSidePointcut.addPointcutDef(cflowPointcutDef);
                    // add references to the cflow advices to the cflow pointcut
                    callerSidePointcut.addPreAdvice(CFlowPreAdvice.NAME);
                    callerSidePointcut.addPostAdvice(CFlowPostAdvice.NAME);
                    // add the method pointcut
                    aspect.addCallerSidePointcut(callerSidePointcut);

                    // add a mapping between the cflow pattern and the method patterns affected
                    for (Iterator it3 = weavingRule.getPointcutRefs().iterator(); it3.hasNext();) {
                        PointcutDefinition pointcutDef =
                                aspectDefinition.getPointcutDef((String)it3.next());
                        if (pointcutDef != null && pointcutDef.getType().
                                equalsIgnoreCase(PointcutDefinition.METHOD)) {

                            aspect.addMethodToCFlowMethodMap(
                                    pointcutDef.getPointcutPatternTuple(),
                                    cflowPointcutDef.getPointcutPatternTuple());
                        }
                    }
                }
            }
            catch (NullPointerException e) {
                throw new DefinitionException("method pointcuts in aspect <" + aspect.getName() + "> are not properly defined");
            }
            catch (Exception e) {
                throw new WrappedRuntimeException(e);
            }
        }
View Full Code Here

TOP

Related Classes of org.codehaus.aspectwerkz.Aspect

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.