Spike on AOP a la Rickard Oberg.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5032 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Changing Mixin to Introduction as that seems to be the proper AOP term.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5037 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Think need to commit. Starting on the Pointcut defintions.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5042 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
More progress on tying the bits together on the sample side of the story.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5044 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Missed to commit some classes.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5048 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
A days good work. Kill the Joinpoint markers, as they are not needed. Start work on the AdviceStack implementation.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5052 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Had to put in wrong package name to resolve a strange state in SVN.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5053 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Update the following files to make the project compilable


git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5054 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
* Rename Introduction -> Mixin on some methods and methods arguments.
* add input argument checking

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5055 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Starting on Pointcut evaluations.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5056 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Efy commit on behalf of himself :P
* Refactoring some codes
* Make test code run again


git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5067 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
* Add some implementation of Pointcut (INCOMPLETE)
* Add some implementation of AspectFactory (INCOMPLETE)
* Add sample generated advices _NameValidationAdvice_ and _SalaryValidationAdvice_
* Fix bug on CityValidationAdvice where address could be null.
* Add QiInterceptor parser feature to AspectParser
* Add support to add multiple mixin and pointcut in one line to AspectTestCase.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5068 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
* Add more implementation of Pointcut (INCOMPLETE)
* Add CollectionUtil, move collection related code to CollectionUtil from Pointcut class
* Add simple "optimization" test for the AOP framework.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5069 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
* Remove AdviceFactoryImpl
* Fix bug on JoinpointDescriptor#equals(). The prev implementation requires the array entry of target classes must be exactly the same.
* Refactory AspectFactory#newInstance( ClassLoader, Class ) -> AspectFactory#newInstance( Class )
* Refactor implementation of MixinFactory#unregisterMixin( ) to accept array instead of 1 class
* Change semantics of MixinFactory#checkExistence to return false when the argument is [null].

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5071 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
* Some optimization.
Result:
ProxyAndAOP Time [1312] Executing [762,195.122] invocation per second
that has no advice
ProxyAndAOP Time [3601] Executing [277,700.639] invocation per second
with 2 advice...

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5073 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
* Add QiIdGenerator and id generator mechanism
* Add CommonIdGenerator as sample implementation
* Add Argument validation pointcut for both services
* Add sample test case for simple inventory service

Note: Need to figure out how to override identity generation

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5817 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Use thread-local cache to improve performance without too much memory overhead.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5823 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Thread-local variable can be static member as it is thread-safe.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5824 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
Fix bugs in mixin implementation (detected using FindBugs Eclipse plugin)

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5827 9b982a3c-3ae5-0310-a4bc-d9a3335569bd
* Add QiEntity to support for setting proxy within the mixin
* Add SimpleProductCatalogServiceTestCase to test case thoroughly (hopefully)  SimpleProductCatalog
* Fix some bugs on searching for pointcut.

git-svn-id: https://scm.ops4j.org/repos/ops4j/laboratory/users/niclas/orthogon/core@5830 9b982a3c-3ae5-0310-a4bc-d9a3335569bd