List of usage examples for org.aspectj.weaver.loadtime.definition Definition getAspectClassNames
public List<String> getAspectClassNames()
From source file:org.eclipse.equinox.weaving.aspectj.loadtime.AspectAdminImpl.java
License:Open Source License
/** * @see org.eclipse.equinox.weaving.aspectj.AspectAdmin#resolveImportedPackage(org.osgi.framework.Bundle, * java.lang.String, int)//from w w w . ja va2 s .com */ public Definition resolveImportedPackage(final Bundle bundle, final String packageName, final int applyAspectsPolicy) { if (AspectAdmin.ASPECT_APPLY_POLICY_TRUE == applyAspectsPolicy) { final Definition exportedAspectDefinitions = getExportedAspectDefinitions(bundle); final Definition result = new Definition(); if (exportedAspectDefinitions != null) { final List<?> aspectClassNames = exportedAspectDefinitions.getAspectClassNames(); for (final Iterator<?> iterator = aspectClassNames.iterator(); iterator.hasNext();) { final String aspectName = (String) iterator.next(); final String aspectPackageName = getPackage(aspectName); if (aspectPackageName.equals(packageName)) { result.getAspectClassNames().add(aspectName); } } final Iterator<?> concreteAspects = exportedAspectDefinitions.getConcreteAspects().iterator(); while (concreteAspects.hasNext()) { final Definition.ConcreteAspect concreteAspect = (ConcreteAspect) concreteAspects.next(); if (concreteAspect.name != null && getPackage(concreteAspect.name).equals(packageName)) { result.getConcreteAspects().add(concreteAspect); } } if (exportedAspectDefinitions.getWeaverOptions().trim().length() > 0) { result.appendWeaverOptions(exportedAspectDefinitions.getWeaverOptions()); } } if (result.getAspectClassNames().size() > 0 || result.getConcreteAspects().size() > 0 || result.getWeaverOptions().length() > 0) { return result; } else { return null; } } else if (AspectAdmin.ASPECT_APPLY_POLICY_FALSE == applyAspectsPolicy) { return null; } else { final Definition exportedAspectDefinitions = getExportedAspectDefinitions(bundle); final Definition result = new Definition(); if (exportedAspectDefinitions != null) { final List<?> aspectClassNames = exportedAspectDefinitions.getAspectClassNames(); for (final Iterator<?> iterator = aspectClassNames.iterator(); iterator.hasNext();) { final String aspectName = (String) iterator.next(); final String aspectPackageName = getPackage(aspectName); final int aspectPolicy = getAspectPolicy(bundle, aspectPackageName); if (aspectPackageName.equals(packageName) && (AspectAdmin.ASPECT_POLICY_NOT_DEFINED == aspectPolicy || AspectAdmin.ASPECT_POLICY_OPT_OUT == aspectPolicy)) { result.getAspectClassNames().add(aspectName); } } final Iterator<?> concreteAspects = exportedAspectDefinitions.getConcreteAspects().iterator(); while (concreteAspects.hasNext()) { final Definition.ConcreteAspect concreteAspect = (ConcreteAspect) concreteAspects.next(); final String aspectPackageName = getPackage(concreteAspect.name); final int aspectPolicy = getAspectPolicy(bundle, aspectPackageName); if (aspectPackageName.equals(packageName) && (AspectAdmin.ASPECT_POLICY_NOT_DEFINED == aspectPolicy || AspectAdmin.ASPECT_POLICY_OPT_OUT == aspectPolicy)) { result.getConcreteAspects().add(concreteAspect); } } if (exportedAspectDefinitions.getWeaverOptions().trim().length() > 0) { result.appendWeaverOptions(exportedAspectDefinitions.getWeaverOptions()); } } if (result.getAspectClassNames().size() > 0 || result.getConcreteAspects().size() > 0 || result.getWeaverOptions().length() > 0) { return result; } else { return null; } } }
From source file:org.eclipse.equinox.weaving.aspectj.loadtime.AspectAdminImpl.java
License:Open Source License
/** * @see org.eclipse.equinox.weaving.aspectj.AspectAdmin#resolveRequiredBundle(org.osgi.framework.Bundle, * int)/*w w w . ja va2 s . co m*/ */ public Definition resolveRequiredBundle(final Bundle bundle, final int applyAspectsPolicy) { if (AspectAdmin.ASPECT_APPLY_POLICY_TRUE == applyAspectsPolicy) { return getExportedAspectDefinitions(bundle); } else if (AspectAdmin.ASPECT_APPLY_POLICY_FALSE == applyAspectsPolicy) { return null; } else { final Definition exportedAspectDefinitions = getExportedAspectDefinitions(bundle); final Definition result = new Definition(); if (exportedAspectDefinitions != null) { final Iterator<?> aspects = exportedAspectDefinitions.getAspectClassNames().iterator(); while (aspects.hasNext()) { final String aspect = (String) aspects.next(); final String aspectPackage = getPackage(aspect); final int aspectPolicy = getAspectPolicy(bundle, aspectPackage); if (aspectPolicy == AspectAdmin.ASPECT_POLICY_NOT_DEFINED || aspectPolicy == AspectAdmin.ASPECT_POLICY_OPT_OUT) { result.getAspectClassNames().add(aspect); } } final Iterator<?> concreteAspects = exportedAspectDefinitions.getConcreteAspects().iterator(); while (concreteAspects.hasNext()) { final Definition.ConcreteAspect concreteAspect = (Definition.ConcreteAspect) concreteAspects .next(); final String aspectPackage = getPackage(concreteAspect.name); final int aspectPolicy = getAspectPolicy(bundle, aspectPackage); if (aspectPolicy == AspectAdmin.ASPECT_POLICY_NOT_DEFINED || aspectPolicy == AspectAdmin.ASPECT_POLICY_OPT_OUT) { result.getConcreteAspects().add(concreteAspect); } } if (exportedAspectDefinitions.getWeaverOptions().trim().length() > 0) { result.appendWeaverOptions(exportedAspectDefinitions.getWeaverOptions()); } } if (result.getAspectClassNames().size() > 0 || result.getConcreteAspects().size() > 0 || result.getWeaverOptions().length() > 0) { return result; } else { return null; } } }
From source file:org.eclipse.equinox.weaving.aspectj.loadtime.AspectAdminImpl.java
License:Open Source License
/** * Parse the aspect definition for the given bundle, if there is one. * /*from w w w. j a v a 2s. c o m*/ * @param bundle The bundle for which the aspect definition should be parsed */ protected void parseDefinitions(final Bundle bundle) { try { Definition allAspectsDefinition = null; final Set<String> exportedAspects = new LinkedHashSet<String>(); final Set<Definition.ConcreteAspect> exportedConcreteAspects = new HashSet<Definition.ConcreteAspect>(); final Map<String, Integer> policies = new HashMap<String, Integer>(); final Set<String> exportedPackages = new HashSet<String>(); // try to find aop.xml file final String aopXmlLocation = getDefinitionLocation(bundle); final URL aopXmlDef = bundle.getEntry(aopXmlLocation); if (aopXmlDef != null) { allAspectsDefinition = DocumentParser.parse(aopXmlDef); } // parse export package headers final Dictionary<?, ?> manifest = bundle.getHeaders(""); //$NON-NLS-1$ final ManifestElement[] exports = ManifestElement.parseHeader(Constants.EXPORT_PACKAGE, (String) manifest.get(Constants.EXPORT_PACKAGE)); for (int i = 0; exports != null && i < exports.length; i++) { final String packageName = exports[i].getValue(); exportedPackages.add(packageName); // policies final String policy = exports[i].getDirective(ASPECT_POLICY_DIRECTIVE); if (policy != null && policy.trim().toLowerCase().equals(ASPECT_POLICY_DIRECTIVE_OPT_OUT)) { policies.put(packageName, AspectAdmin.ASPECT_POLICY_OPT_OUT); } if (policy != null && policy.trim().toLowerCase().equals(ASPECT_POLICY_DIRECTIVE_OPT_IN)) { policies.put(packageName, AspectAdmin.ASPECT_POLICY_OPT_IN); } // aspects final String allaspects = exports[i].getAttribute(ASPECTS_ATTRIBUTE); if (allaspects != null) { final String[] aspects = ManifestElement.getArrayFromList(allaspects); if (aspects != null) { for (int j = 0; j < aspects.length; j++) { exportedAspects.add(packageName + "." + aspects[j]); //$NON-NLS-1$ } } } } // add aop.xml declared aspects to the list of exported aspects if their packages are exported if (allAspectsDefinition != null && allAspectsDefinition.getAspectClassNames() != null) { final Iterator<?> iterator = allAspectsDefinition.getAspectClassNames().iterator(); while (iterator.hasNext()) { final String aspect = (String) iterator.next(); final String packageName = getPackage(aspect); if (exportedPackages.contains(packageName)) { exportedAspects.add(aspect); } } } if (allAspectsDefinition != null && allAspectsDefinition.getConcreteAspects().size() > 0) { final Iterator<?> iterator = allAspectsDefinition.getConcreteAspects().iterator(); while (iterator.hasNext()) { final Definition.ConcreteAspect concreteAspect = (Definition.ConcreteAspect) iterator.next(); if (concreteAspect.name != null && exportedPackages.contains(getPackage(concreteAspect.name))) { exportedConcreteAspects.add(concreteAspect); } } } if (allAspectsDefinition != null) { this.aspectDefinitions.put(bundle, allAspectsDefinition); } if (exportedAspects.size() > 0 || exportedConcreteAspects.size() > 0 || (allAspectsDefinition != null && allAspectsDefinition.getWeaverOptions().length() > 0)) { final Definition exportedAspectsDefinition = new Definition(); exportedAspectsDefinition.getAspectClassNames().addAll(exportedAspects); exportedAspectsDefinition.getConcreteAspects().addAll(exportedConcreteAspects); if (allAspectsDefinition != null && allAspectsDefinition.getWeaverOptions().trim().length() > 0) { exportedAspectsDefinition.appendWeaverOptions(allAspectsDefinition.getWeaverOptions()); } this.aspectDefinitionsExported.put(bundle, exportedAspectsDefinition); } if (policies.size() > 0) { this.aspectPolicies.put(bundle, policies); } } catch (final Exception e) { e.printStackTrace(); } }
From source file:org.eclipse.osgi.aspectj.tests.AspectAdminImplTest.java
License:Open Source License
public void testResolveUnresolveBundle() { Bundle bundleWithDef = EasyMock.createMock(Bundle.class); Bundle bundleWithoutDef = EasyMock.createMock(Bundle.class); URL testAopDefFile = this.getClass().getResource("test-aop.xml"); //$NON-NLS-1$ EasyMock.expect(bundleWithDef.getHeaders()).andStubReturn(new Hashtable<Object, Object>()); EasyMock.expect(bundleWithDef.getEntry(AspectAdmin.AOP_CONTEXT_DEFAULT_LOCATION)).andReturn(testAopDefFile); EasyMock.expect(bundleWithoutDef.getHeaders()).andStubReturn(new Hashtable<Object, Object>()); EasyMock.expect(bundleWithoutDef.getEntry(AspectAdmin.AOP_CONTEXT_DEFAULT_LOCATION)).andReturn(null); // step 1: resolve bundles EasyMock.replay(bundleWithDef, bundleWithoutDef); aspectRegistry.bundleResolved(bundleWithDef); aspectRegistry.bundleResolved(bundleWithoutDef); EasyMock.verify(bundleWithDef, bundleWithoutDef); Definition definition = aspectRegistry.getAspectDefinition(bundleWithDef); assertNotNull(definition);//from w w w. j a va2 s. co m List<?> aspectClassNames = definition.getAspectClassNames(); assertNotNull(aspectClassNames); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.TestAspectType", //$NON-NLS-1$ aspectClassNames.get(0)); definition = aspectRegistry.getAspectDefinition(bundleWithoutDef); assertNull(definition); // step 2: unresolve bundles aspectRegistry.bundleUnresolved(bundleWithDef); aspectRegistry.bundleUnresolved(bundleWithoutDef); assertNull(aspectRegistry.getAspectDefinition(bundleWithDef)); assertNull(aspectRegistry.getAspectDefinition(bundleWithoutDef)); }
From source file:org.eclipse.osgi.aspectj.tests.AspectAdminImplTest.java
License:Open Source License
public void testNoAspectsButOptionsInAopXml() { Bundle bundle = EasyMock.createMock(Bundle.class); URL testAopDefFile = this.getClass().getResource("test-aop-with-options.xml"); //$NON-NLS-1$ Hashtable<Object, Object> headers = new Hashtable<Object, Object>(); EasyMock.expect(bundle.getHeaders()).andStubReturn(headers); EasyMock.expect(bundle.getEntry(AspectAdmin.AOP_CONTEXT_DEFAULT_LOCATION)).andReturn(testAopDefFile); EasyMock.replay(bundle);/*from w ww . j ava 2 s. co m*/ aspectRegistry.bundleResolved(bundle); EasyMock.verify(bundle); Definition definition = aspectRegistry.getExportedAspectDefinitions(bundle); assertNotNull(definition); assertEquals(0, definition.getAspectClassNames().size()); assertEquals("here are the options ", definition.getWeaverOptions()); //$NON-NLS-1$ Definition resolvedRequires = aspectRegistry.resolveRequiredBundle(bundle, AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNotNull(resolvedRequires); assertEquals(0, resolvedRequires.getAspectClassNames().size()); assertEquals("here are the options ", resolvedRequires //$NON-NLS-1$ .getWeaverOptions()); Definition resolvedImports = aspectRegistry.resolveImportedPackage(bundle, "org.eclipse.equinox.weaving.tests", //$NON-NLS-1$ AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNotNull(resolvedImports); assertEquals(0, resolvedImports.getAspectClassNames().size()); assertEquals("here are the options ", resolvedImports //$NON-NLS-1$ .getWeaverOptions()); }
From source file:org.eclipse.osgi.aspectj.tests.AspectAdminImplTest.java
License:Open Source License
public void testNonExportedAspectsButOptionsInAopXml() { Bundle bundle = EasyMock.createMock(Bundle.class); URL testAopDefFile = this.getClass().getResource("test-aop-with-options-and-aspects.xml"); //$NON-NLS-1$ Hashtable<Object, Object> headers = new Hashtable<Object, Object>(); EasyMock.expect(bundle.getHeaders()).andStubReturn(headers); EasyMock.expect(bundle.getEntry(AspectAdmin.AOP_CONTEXT_DEFAULT_LOCATION)).andReturn(testAopDefFile); EasyMock.replay(bundle);//from w w w. ja va2s . c o m aspectRegistry.bundleResolved(bundle); EasyMock.verify(bundle); Definition definition = aspectRegistry.getExportedAspectDefinitions(bundle); assertNotNull(definition); assertEquals(0, definition.getAspectClassNames().size()); assertEquals("here are the options ", definition.getWeaverOptions()); //$NON-NLS-1$ Definition resolvedRequires = aspectRegistry.resolveRequiredBundle(bundle, AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNotNull(resolvedRequires); assertEquals(0, resolvedRequires.getAspectClassNames().size()); assertEquals("here are the options ", resolvedRequires //$NON-NLS-1$ .getWeaverOptions()); Definition resolvedImports = aspectRegistry.resolveImportedPackage(bundle, "org.eclipse.equinox.weaving.tests", //$NON-NLS-1$ AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNotNull(resolvedImports); assertEquals(0, resolvedImports.getAspectClassNames().size()); assertEquals("here are the options ", resolvedImports //$NON-NLS-1$ .getWeaverOptions()); }
From source file:org.eclipse.osgi.aspectj.tests.AspectAdminImplTest.java
License:Open Source License
public void testExportedAspectsInAopXml() { Bundle bundle = EasyMock.createMock(Bundle.class); URL testAopDefFile = this.getClass().getResource("test-aop.xml"); //$NON-NLS-1$ Hashtable<Object, Object> headers = new Hashtable<Object, Object>(); headers.put(Constants.EXPORT_PACKAGE, "org.eclipse.equinox.weaving.tests"); //$NON-NLS-1$ EasyMock.expect(bundle.getHeaders()).andStubReturn(headers); EasyMock.expect(bundle.getEntry(AspectAdmin.AOP_CONTEXT_DEFAULT_LOCATION)).andReturn(testAopDefFile); EasyMock.replay(bundle);/*from www . j av a2 s. c om*/ aspectRegistry.bundleResolved(bundle); EasyMock.verify(bundle); Definition definition = aspectRegistry.getExportedAspectDefinitions(bundle); List<?> aspectClassNames = definition.getAspectClassNames(); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.TestAspectType", //$NON-NLS-1$ aspectClassNames.get(0)); assertEquals(AspectAdmin.ASPECT_POLICY_NOT_DEFINED, aspectRegistry.getAspectPolicy(bundle, "org.eclipse.equinox.weaving.tests")); //$NON-NLS-1$ Definition resolvedRequires = aspectRegistry.resolveRequiredBundle(bundle, AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNotNull(resolvedRequires); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.TestAspectType", //$NON-NLS-1$ aspectClassNames.get(0)); Definition resolvedImports = aspectRegistry.resolveImportedPackage(bundle, "org.eclipse.equinox.weaving.tests", //$NON-NLS-1$ AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNotNull(resolvedImports); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.TestAspectType", //$NON-NLS-1$ aspectClassNames.get(0)); }
From source file:org.eclipse.osgi.aspectj.tests.AspectAdminImplTest.java
License:Open Source License
public void testExportedAspectsAndOptionsInAopXml() { Bundle bundle = EasyMock.createMock(Bundle.class); URL testAopDefFile = this.getClass().getResource("test-aop-with-options-and-aspects.xml"); //$NON-NLS-1$ Hashtable<Object, Object> headers = new Hashtable<Object, Object>(); headers.put(Constants.EXPORT_PACKAGE, "org.eclipse.equinox.weaving.tests"); //$NON-NLS-1$ EasyMock.expect(bundle.getHeaders()).andStubReturn(headers); EasyMock.expect(bundle.getEntry(AspectAdmin.AOP_CONTEXT_DEFAULT_LOCATION)).andReturn(testAopDefFile); EasyMock.replay(bundle);// w w w .j a va 2s . co m aspectRegistry.bundleResolved(bundle); EasyMock.verify(bundle); Definition definition = aspectRegistry.getExportedAspectDefinitions(bundle); List<?> aspectClassNames = definition.getAspectClassNames(); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.TestAspectType", //$NON-NLS-1$ aspectClassNames.get(0)); assertEquals(AspectAdmin.ASPECT_POLICY_NOT_DEFINED, aspectRegistry.getAspectPolicy(bundle, "org.eclipse.equinox.weaving.tests")); //$NON-NLS-1$ assertEquals("here are the options ", definition.getWeaverOptions()); Definition resolvedRequires = aspectRegistry.resolveRequiredBundle(bundle, AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNotNull(resolvedRequires); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.TestAspectType", //$NON-NLS-1$ aspectClassNames.get(0)); assertEquals("here are the options ", resolvedRequires.getWeaverOptions()); Definition resolvedImports = aspectRegistry.resolveImportedPackage(bundle, "org.eclipse.equinox.weaving.tests", //$NON-NLS-1$ AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNotNull(resolvedImports); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.TestAspectType", //$NON-NLS-1$ aspectClassNames.get(0)); assertEquals("here are the options ", resolvedImports.getWeaverOptions()); }
From source file:org.eclipse.osgi.aspectj.tests.AspectAdminImplTest.java
License:Open Source License
public void testConcreteAspectsInAopXml() { Bundle bundle = EasyMock.createMock(Bundle.class); URL testAopDefFile = this.getClass().getResource("test-aop-with-concrete-aspect.xml"); //$NON-NLS-1$ Hashtable<Object, Object> headers = new Hashtable<Object, Object>(); headers.put(Constants.EXPORT_PACKAGE, "org.eclipse.equinox.weaving.tests, org.eclipse.equinox.weaving.tests.concrete"); //$NON-NLS-1$ EasyMock.expect(bundle.getHeaders()).andStubReturn(headers); EasyMock.expect(bundle.getEntry(AspectAdmin.AOP_CONTEXT_DEFAULT_LOCATION)).andReturn(testAopDefFile); EasyMock.replay(bundle);// ww w . j a va2s . co m aspectRegistry.bundleResolved(bundle); EasyMock.verify(bundle); // exported definition Definition definition = aspectRegistry.getExportedAspectDefinitions(bundle); List<?> aspectClassNames = definition.getAspectClassNames(); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.MyAspect", //$NON-NLS-1$ aspectClassNames.get(0)); assertEquals(AspectAdmin.ASPECT_POLICY_NOT_DEFINED, aspectRegistry.getAspectPolicy(bundle, "org.eclipse.equinox.weaving.tests")); //$NON-NLS-1$ List<?> concreteAspects = definition.getConcreteAspects(); assertEquals(1, concreteAspects.size()); Definition.ConcreteAspect concreteAspect = (ConcreteAspect) concreteAspects.get(0); assertEquals("tracing.AbstractTracing", concreteAspect.extend); //$NON-NLS-1$ assertEquals("org.eclipse.equinox.weaving.tests.concrete.MyTracing", //$NON-NLS-1$ concreteAspect.name); assertNull(concreteAspect.perclause); assertEquals("com.xyz.first, *", concreteAspect.precedence); //$NON-NLS-1$ assertEquals("within(org.maw.*)", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).expression); assertEquals("tracingScope", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).name); // resolved require bundle Definition resolvedRequires = aspectRegistry.resolveRequiredBundle(bundle, AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); aspectClassNames = resolvedRequires.getAspectClassNames(); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.MyAspect", //$NON-NLS-1$ aspectClassNames.get(0)); assertEquals(AspectAdmin.ASPECT_POLICY_NOT_DEFINED, aspectRegistry.getAspectPolicy(bundle, "org.eclipse.equinox.weaving.tests")); //$NON-NLS-1$ concreteAspects = resolvedRequires.getConcreteAspects(); assertEquals(1, concreteAspects.size()); concreteAspect = (ConcreteAspect) concreteAspects.get(0); assertEquals("tracing.AbstractTracing", concreteAspect.extend); //$NON-NLS-1$ assertEquals("org.eclipse.equinox.weaving.tests.concrete.MyTracing", //$NON-NLS-1$ concreteAspect.name); assertNull(concreteAspect.perclause); assertEquals("com.xyz.first, *", concreteAspect.precedence); //$NON-NLS-1$ assertEquals("within(org.maw.*)", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).expression); assertEquals("tracingScope", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).name); // resolve import package 1 Definition resolvedImports = aspectRegistry.resolveImportedPackage(bundle, "org.eclipse.equinox.weaving.tests", //$NON-NLS-1$ AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); aspectClassNames = resolvedImports.getAspectClassNames(); assertEquals(1, aspectClassNames.size()); assertEquals("org.eclipse.equinox.weaving.tests.MyAspect", //$NON-NLS-1$ aspectClassNames.get(0)); assertEquals(AspectAdmin.ASPECT_POLICY_NOT_DEFINED, aspectRegistry.getAspectPolicy(bundle, "org.eclipse.equinox.weaving.tests")); //$NON-NLS-1$ concreteAspects = resolvedImports.getConcreteAspects(); assertEquals(0, concreteAspects.size()); // resolve import package 2 resolvedImports = aspectRegistry.resolveImportedPackage(bundle, "org.eclipse.equinox.weaving.tests.concrete", //$NON-NLS-1$ AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); aspectClassNames = resolvedImports.getAspectClassNames(); assertEquals(0, aspectClassNames.size()); concreteAspects = resolvedImports.getConcreteAspects(); assertEquals(1, concreteAspects.size()); concreteAspect = (ConcreteAspect) concreteAspects.get(0); assertEquals("tracing.AbstractTracing", concreteAspect.extend); //$NON-NLS-1$ assertEquals("org.eclipse.equinox.weaving.tests.concrete.MyTracing", //$NON-NLS-1$ concreteAspect.name); assertNull(concreteAspect.perclause); assertEquals("com.xyz.first, *", concreteAspect.precedence); //$NON-NLS-1$ assertEquals("within(org.maw.*)", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).expression); assertEquals("tracingScope", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).name); }
From source file:org.eclipse.osgi.aspectj.tests.AspectAdminImplTest.java
License:Open Source License
public void testExportedAndNotExportedConcreteAspectsInAopXml() { Bundle bundle = EasyMock.createMock(Bundle.class); URL testAopDefFile = this.getClass() .getResource("test-aop-with-concrete-aspects-in-different-packages.xml"); //$NON-NLS-1$ Hashtable<Object, Object> headers = new Hashtable<Object, Object>(); headers.put(Constants.EXPORT_PACKAGE, "org.eclipse.equinox.weaving.tests.concrete"); //$NON-NLS-1$ EasyMock.expect(bundle.getHeaders()).andStubReturn(headers); EasyMock.expect(bundle.getEntry(AspectAdmin.AOP_CONTEXT_DEFAULT_LOCATION)).andReturn(testAopDefFile); EasyMock.replay(bundle);// ww w.jav a 2s.co m aspectRegistry.bundleResolved(bundle); EasyMock.verify(bundle); Definition definition = aspectRegistry.getExportedAspectDefinitions(bundle); List<?> aspectClassNames = definition.getAspectClassNames(); assertEquals(0, aspectClassNames.size()); List<?> concreteAspects = definition.getConcreteAspects(); assertEquals(1, concreteAspects.size()); Definition.ConcreteAspect concreteAspect = (ConcreteAspect) concreteAspects.get(0); assertEquals("tracing.AbstractTracing", concreteAspect.extend); //$NON-NLS-1$ assertEquals("org.eclipse.equinox.weaving.tests.concrete.MyTracing", //$NON-NLS-1$ concreteAspect.name); assertNull(concreteAspect.perclause); assertEquals("com.xyz.first, *", concreteAspect.precedence); //$NON-NLS-1$ assertEquals("within(org.maw.*)", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).expression); assertEquals("tracingScope", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).name); // resolved require bundle Definition resolvedRequires = aspectRegistry.resolveRequiredBundle(bundle, AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); aspectClassNames = resolvedRequires.getAspectClassNames(); assertEquals(0, aspectClassNames.size()); concreteAspects = definition.getConcreteAspects(); assertEquals(1, concreteAspects.size()); concreteAspect = (ConcreteAspect) concreteAspects.get(0); assertEquals("tracing.AbstractTracing", concreteAspect.extend); //$NON-NLS-1$ assertEquals("org.eclipse.equinox.weaving.tests.concrete.MyTracing", //$NON-NLS-1$ concreteAspect.name); assertNull(concreteAspect.perclause); assertEquals("com.xyz.first, *", concreteAspect.precedence); //$NON-NLS-1$ assertEquals("within(org.maw.*)", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).expression); assertEquals("tracingScope", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).name); // resolve import package 1 Definition resolvedImports = aspectRegistry.resolveImportedPackage(bundle, "org.eclipse.equinox.weaving.tests.concrete", //$NON-NLS-1$ AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); aspectClassNames = resolvedImports.getAspectClassNames(); assertEquals(0, aspectClassNames.size()); concreteAspects = resolvedImports.getConcreteAspects(); assertEquals(1, concreteAspects.size()); concreteAspect = (ConcreteAspect) concreteAspects.get(0); assertEquals("tracing.AbstractTracing", concreteAspect.extend); //$NON-NLS-1$ assertEquals("org.eclipse.equinox.weaving.tests.concrete.MyTracing", //$NON-NLS-1$ concreteAspect.name); assertNull(concreteAspect.perclause); assertEquals("com.xyz.first, *", concreteAspect.precedence); //$NON-NLS-1$ assertEquals("within(org.maw.*)", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).expression); assertEquals("tracingScope", //$NON-NLS-1$ ((Definition.Pointcut) concreteAspect.pointcuts.get(0)).name); // resolve import package 2 resolvedImports = aspectRegistry.resolveImportedPackage(bundle, "org.eclipse.equinox.weaving.tests.concrete.nonvisible", //$NON-NLS-1$ AspectAdmin.ASPECT_APPLY_POLICY_NOT_DEFINED); assertNull(resolvedImports); }