This week's book giveaway is in the Server-Side JavaScript and NodeJS forum.
We're giving away four copies of Micro Frontends in Action and have Michael Geers on-line!
See this thread for details.
Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!

John Zoetebier

Ranch Hand
+ Follow
since Mar 28, 2003
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by John Zoetebier

Congratulations to all winners !
Will buy AspectJ in Action at Amazon, because the delay in New Zealand is at least 6 months.
17 years ago
For anybody interested in trying out AspectJ on Netbeans, it is really easy to setup and run
Go to http://aspectj4netbean.sourceforge.net and donwloaded the latest ZIP file ApsectJForNetbeans-1.1.rc2.zip
Extract the file to a folder.
There is a documents with installation instruction, but it is a bit outdated.
The installation is actually easier than described.
Copy modules/ajdeForNetbeans.jar to $NETBEANS_HOME/modules
Copy lib/ext/* to $NETBEANS_HOME/lib/ext/*
Restart Netbeans IDE and you are done !
Now you can click on the AJDE button to start AspectJ.
From now on use ONLY the AspectJ build, not the Java compile !
That's it.
Do not get upset by the syntax checker in the source editor as does not know yet that AspectJ exists
Just ignore it or even better switch the syntax checker off.
Just try a logging aspect or run the SpaceWar example mentioned in the documentation.
Good luck
17 years ago
As far as I understand the law regarding patents, is a patent only applicable in the country where the patent is lodged.
In this case that is the USA.
If the patent is only lodged in the USA it is effective only in the USA.
An other thing to note that as far as I know it is not possible to petent generic ideas. Otherwise it would be possible to patent something like space travel, day dreaming, etc. If the concept of AOP was already in the public domain before the patent was lodged it is not valid.
An other distinction between AOP and AspectJ: the latter being an implementation of AOP. However I can see some diefferences between the terminology used in the patent and the terminology of AspectJ. And of course, AspectJ is evolving, which makes it even harder for the patent owners to make a claim with regards to AspectJ.
17 years ago
Ramnivas,
The authentication and authorization example in chapter 10 is very impressive.
Abstract aspect AbstractAuthAspect is a nice example of how you can write an aspect without any reference to a join point, as the joint point is abstract as well. A sub aspect can now implement the concrete joint points. You do not even have to define interfaces to enable communication between aspect and aspected class. Very clever done !
These abstract aspects open the way to build generic aspects which can be used as a light-weight EJB system with the added advantage that you are more flexible in the implementation of an aspect.
With an appication server you either go with the cross-cutting concern implemented or not. There is no way to change the business logic.
With AspectJ you can tune an aspect exactly to the requirements of your organization without the added complexity and overhead of an application server.
You are however careful in describing the AspectJ solution as light-weigth EJB.
Do you mean this in the sense of: you only use those aspects what you need ?
17 years ago
Hi Ramnivas,
This is a new thread to keep the discussion clean
Your caching example in chapter 3 of "AspectJ in Action
Practical Aspect-Oriented Programming" shows how caching can be factored out in an aspect for a factoring application.
The core factoring method is only a few lines while the optimization by means of caching is done by an aspect.
In your note you state that the real value of this aspect is that all caching can be kept seperate from the core application.
That is right. At the same time this creates a side effect.
After a programmer has thouroughly tested an application the last thing he or whe wants is that something from outside can affect the outcome.
Well, that is exactly what can happen with an aspect.
The slightest error in the logic of an aspect can not only ruine my carefully crafted and tested module, but that of all other components involved !
The apect behaves like a virus, infecting all components with the same bug.
To make things even more complicated: several indepently working aspects can combined introduce interaction errors. Interaction errors can make the system unstable and the resulting bugs extremely difficult to track down because they happen every now and then when a particular set of conditions meet.
The end result can be an unmaintainable system in stead of an easy maintainable system using OO only.
My question is:
What in AOP is so good that it warrants side effects which can make the system unstable and maybe even unmaintainable ?
17 years ago
Hi Ramnivas,
With a lot of interest I have been reading chapter 3 of "AspectJ in Action: Practical Aspect-Oriented Programming" which I downloaded from http://www.manning.com/laddad
One of the most fundamental design principles underpinning software design is the principle of coupling and decoupling of components: maximum coupling with a component and maximum decoupling beween components.
A striking example of this architecture is the application server running EJB components.
All application logic is within the EJB components while the infra-structure (cross-cutting concerns in AOP terminology) is handled by the application server.
In your logging example you claim that the aspected classes are oblivious of the logging aspect. This is right and is is line with decoupling components.
However the aspect itself needs to have an intrinsic knowledge of the structure of each class involved. The logging example is 100% generic, but other examples from chapter 3 refer hardcoded to the names of joint points.
This hardcoded link between aspect and aspected classes strongly couples the aspect to the aspected classes.
The logging can be achieved in an 100% decoupled way with an applicatio server. Similar for other cross-cutting concerns.
For those not asleep yet, here is my question:
What kind of benefits does AOP deliver to warrant a hard coupling of components, thereby violating a fundamental design principle ?
17 years ago
With regard to Sun RI take care to download version 1.3 and not 1.4.
I have spend days to get an EJB client to work on 1.4 without success.
RI version 1.3 works fine though.
I downloaded the same file a second time.
The first dowloaded file was 776 kb
Second dowload was 14.2 Mb.
Something must have gone wrong during first download.
Strangely enough I could extract the file normally.
Thanks for your help.
<quote>
I just downloaded J2EE 1.3.1 SDK for Linux and it contained the binaries as well.
</quote>
Can you please tell me:
- The URL from which you downloaded J2EE 1.3.1 SDK
- Is the file name j2sdkee-1_3_1-linux.tar.gz
My JNDI.properties file is:
java.naming.factory.initialcom.sun.jndi.rmi.registry.RegistryContextFactory
#java.naming.provider.urlrmi://localhost:1099
java.naming.provider.urlrmi://localhost:4848
Port 1099 does not work: javax.naming.ServiceUnavailableException
Port 4848 gets a timeout.
I use asadmin to start the default domain domain1.
Version 1.3.1 did have j2EE -verbose, but there does not seem to be an equivalent option for asadmin.
Is there any way I can see which port the Naming service is running on ?
I have downloaded J2EE 1.3.1 from http://java.sun.com/j2ee/1.3/download.html#sdk
The downlaod file for Linux is called j2sdkee-1_3_1-linux.tar.gz
When I extract this file I get:
j2sdkee1.3.1/lib
j2sdkee1.3.1/lib/cloudscape
j2sdkee1.3.1/lib/dtds
j2sdkee1.3.1/lib/security
There are only some JAR and DTD files.
No binaries for application server like j2ee, asadmin, deploytool etc.
Are binaries for application server in an other package somewhere ?
I have downloaded J2EE 1.4 beta and this package does have all binaries, so it comes as a surprise that binaries are not included in the J2EE 1.3.1 package.
I have downloaded J2EE 1.3.1 from http://java.sun.com/j2ee/1.3/download.html#sdk
The downlaod file for Linux is called j2sdkee-1_3_1-linux.tar.gz
When I extract this file I get:
j2sdkee1.3.1/lib
j2sdkee1.3.1/lib/cloudscape
j2sdkee1.3.1/lib/dtds
j2sdkee1.3.1/lib/security
There are only some JAR and DTD files.
No binaries for application server like j2ee, asadmin, deploytool etc.
Are binaries fro application server in an other package somewhere ?
I have downloaded J2EE 1.4 beta and this package does have all binaries, so it comes as a surprise that binaries are not included in the J2EE 1.3.1 package.
Congratulations, Karin, well done !


I like to continue with SCWCD. Where can I find more information about mock exams for this exam?


I used SCWCD Exam Study Kit of Hanumanth Deshmukh.
Very good book, easy to read with some schemes.
Each chapter has mock tests. The CD has 4 more mock tests with an exam simulator like the real exam. The exam simulator is written in Java and is better than any other simulator I have seen so far.
These test are very similar to the real exam. This is all I did to prepare for the exam. My score on the exam was a few points above the highest score on the mock tests.
I recommend NetBeans as IDE as it has built-in support for Tomcat. Debugging servlets and JSP is as easy as a desktop Java program. Furthermore there is built-in support for JSP taglibs, which is an important subject of SCWCD.
17 years ago
Congratulations, Wilder !
17 years ago


John, was the distorted right parenthesis seen in all the other questions where right parenthesis was used or was it just in the first question? Just curious. Wondering if it had anything to do with the resolution of the monitor.


Yes, the distortion was visible on all questions, but not in the exhibits. Probably because the exhibits use a slightly bigger font size.
Most likely the problem was caused by the monitor.
If it was a resolution problem I would expect left and right parenthesis to be distorted in the same way, but they were not.
17 years ago