Hi !! All
AspectJ syntax errors in AJHotDraw -v0.4 in /**JDOStorageFormat.java**/
class 22 errors type mismatch and can't resolve toa type.
Please somebody can help me on Ubuntu 10.10 and same problem on Win XP/Win
7 in Eclipse . All highlighted lines are errors.
*/**JDOStorageFormat.java**/*
*package **org.jhotdraw.util**;*
*import org.jhotdraw.framework.*; *
import org.jhotdraw.standard.StandardDrawing;
import java.io.*;
import java.util.*;
import java.util.List;
import java.awt.*;
import javax.jdo.*;
import javax.swing.*;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;
*public String store(String fileName, Drawing storeDrawing) throws
IOException { *
* PersistenceManager pm = getPersistenceManager(fileName); *
String drawingName = null;
*Drawing txnDrawing = crossTxnBoundaries(storeDrawing); *
endTransaction(pm, false);
startTransaction(pm);
try {
*Extent extent = pm.getExtent(StandardDrawing.class, true); *
DrawingListModel listModel = new DrawingListModel(extent.iterator());
drawingName = showStoreDialog(listModel, storeDrawing);
if (drawingName != null) {
storeDrawing.setTitle(drawingName);
txnDrawing.setTitle(drawingName);
pm.makePersistent(txnDrawing);
}
}
finally {
endTransaction(pm, (drawingName != null));
}
// there must be always a transaction running
startTransaction(pm);
return drawingName;
}
/**
* Restore a Drawing from a file with a given name. The name must be should
with regard to the
* FileFilter that means, it should have the appropriate file extension.
*
* @param fileName of the file in which the Drawing has been saved
* @return restored Drawing
*/
p*ublic synchronized Drawing restore(String fileName) throws IOException { *
* PersistenceManager pm = getPersistenceManager(fileName); *
endTransaction(pm, false);
startTransaction(pm);
*Drawing restoredDrawing = null; *
try {
*Extent extent = pm.getExtent(StandardDrawing.class, true); *
DrawingListModel listModel = new DrawingListModel(extent.iterator());
*Drawing txnDrawing = showRestoreDialog(listModel); *
if (txnDrawing != null) {
// pm.retrieve(txnDrawing);
// retrieveAll(pm, (StandardDrawing)txnDrawing);
// restoredDrawing = crossTxnBoundaries(txnDrawing);
restoredDrawing = txnDrawing;
}
}
finally {
endTransaction(pm, false);
}
// there must be always a transaction running
startTransaction(pm);
return restoredDrawing;
}
*private void retrieveAll(PersistenceManager pm, Figure figure) { *
pm.retrieve(figure);
*FigureEnumeration fe = figure.figures(); *
while (fe.hasNextFigure()) {
retrieveAll(pm, fe.nextFigure());
}
}
*private Drawing crossTxnBoundaries(Drawing originalDrawing) { *
* return (Drawing)((StandardDrawing)originalDrawing).clone(); *
// return originalDrawing;
}
*private synchronized PersistenceManager getPersistenceManager(String
fileName) { *
* PersistenceManager pm = (PersistenceManager)pms.get(fileName); *
if (pm == null) {
*pm = createPersistenceManagerFactory(fileName).getPersistenceManager(); *
pms.put(fileName, pm);
}
return pm;
}
*private PersistenceManagerFactory createPersistenceManagerFactory(String
dbFileName) { *
Properties pmfProps = new Properties();
pmfProps.put(
"javax.jdo.PersistenceManagerFactoryClass",
"com.poet.jdo.PersistenceManagerFactories" );
pmfProps.put(
"javax.jdo.option.ConnectionURL",
"fastobjects://LOCAL/MyBase.j1" );
*final PersistenceManagerFactory pmf = *
*JDOHelper.getPersistenceManagerFactory( pmfProps ); *
* *
return pmf;
}
*private static void startTransaction(PersistenceManager pm) { *
if (!pm.currentTransaction().isActive()) {
pm.currentTransaction().begin();
}
}
*private static void endTransaction(PersistenceManager pm, boolean
doCommit) { *
if (pm.currentTransaction().isActive()) {
if (doCommit) {
pm.currentTransaction().commit();
}
else {
pm.currentTransaction().rollback();
}
}
}
*private String showStoreDialog(ListModel listModel, Drawing storeDrawing)
{ *
final String msgString = "Specify a name for the drawing";
final JTextField nameTextField = new JTextField(storeDrawing.getTitle());
final JList dataList = new JList(listModel);
final JScrollPane dbContentScrollPane = new JScrollPane(dataList);
Object[] guiComponents = {msgString, dbContentScrollPane, nameTextField};
dataList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
dataList.setValueIsAdjusting(true);
dataList.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
nameTextField.setText(dataList.getSelectedValue().toString());
}
});
final JOptionPane optionPane = new JOptionPane(
guiComponents,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
final JDialog dialog = optionPane.createDialog(null, "Restore a drawing
from the database");
// dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
// dialog.addWindowListener(new WindowAdapter() {
// public void windowClosing(WindowEvent we) {
// System.exit(0);
// }
// });
dialog.setVisible(true);
if ((optionPane.getValue() != null) && (optionPane.getValue().equals(new
Integer(JOptionPane.OK_OPTION)))) {
return nameTextField.getText();
}
else {
return null;
}
}
*private Drawing showRestoreDialog(DrawingListModel listModel) { *
final String msgString = "Select a drawing";
final JList dataList = new JList(listModel);
final JScrollPane dbContentScrollPane = new JScrollPane(dataList);
Object[] guiComponents = {msgString, dbContentScrollPane};
dataList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
dataList.setValueIsAdjusting(true);
final JOptionPane optionPane = new JOptionPane(
guiComponents,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION);
final JDialog dialog = optionPane.createDialog(null, "Restore a drawing
from the database");
dialog.setVisible(true);
if ((optionPane.getValue() != null)
&& (optionPane.getValue().equals(new Integer(JOptionPane.OK_OPTION)))
&& (dataList.getSelectedIndex() >= 0)
&& (dataList.getSelectedIndex() < dataList.getModel().getSize())) {
*return listModel.getDrawingAt(dataList.getSelectedIndex()); *
}
else {
return null;
}
}
static class DrawingListModel extends AbstractListModel {
private List myList;
DrawingListModel(Iterator iter) {
myList = CollectionsFactory.current().createList();
while (iter.hasNext()) {
Object o = iter.next();
*System.out.println("extent: " + o + " .. " + ((Drawing)o).getTitle()); *
myList.add(o);
}
}
public Object getElementAt(int index) {
*return getDrawingAt(index).getTitle(); *
}
*protected Drawing getDrawingAt(int index) { *
* return ((Drawing)myList.get(index)); *
}
public int getSize() {
return myList.size();
}
}
static class DrawingSelector extends JDialog {
DrawingSelector() {
init();
}
private void init() {
setTitle("Select Drawing");
getContentPane().setLayout(new BorderLayout());
getContentPane().add(new JLabel("Database content"), BorderLayout.NORTH);
setSize(200, 200);
}
}
public static void main(String[] args) {
DrawingSelector frame = new DrawingSelector();
try {
*Drawing newDrawing = new StandardDrawing(); *
* *newDrawing.setTitle("TestDrawingName" +
newRandom(System.currentTimeMillis()).nextLong());
new JDOStorageFormat().store("base.j2", newDrawing);
System.exit(0);
}
catch (IOException e) {
e.printStackTrace();
}
// frame.setVisible(true);
}
}
Thanking You,
Regards
S Kotrappa
On Wed, Dec 7, 2011 at 10:30 PM, <[email protected]> wrote:
> Send aspectj-users mailing list submissions to
> [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
> or, via email, send a message with subject or body 'help' to
> [email protected]
>
> You can reach the person managing the list at
> [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of aspectj-users digest..."
>
>
> Today's Topics:
>
> 1. How to inject a static field into a multitude of types with
> AspectJ? (mark Kharitonov)
> 2. AOSD 2012 Student Volunteer program (Eric Bodden)
> 3. Re: How to inject a static field into a multitude of types
> with AspectJ? (Andy Clement)
> 4. Re: Using aspect to pass a metadata as a parameter through
> SOAP (Andy Clement)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 7 Dec 2011 11:44:14 +0200
> From: mark Kharitonov <[email protected]>
> To: [email protected]
> Subject: [aspectj-users] How to inject a static field into a multitude
> of types with AspectJ?
> Message-ID:
> <cag2yspyhwbutpy83pw+bbjqkuhgzpmnm6vyydlupoeed+nb...@mail.gmail.com
> >
> Content-Type: text/plain; charset="iso-8859-1"
>
> I would like to add a log4j.Logger private static field into a multitude of
> types. For instance, into all the types annotated with the @Path
> annotation.
>
> This my current aspect code:
>
> public aspect LoggingAspect {
> public interface HttpHandlerType {}
> declare parents: (@Path *) implements HttpHandlerType;
>
> public Logger HttpHandlerType.Log = Logger.getLogger(getClass());
>
> pointcut httpHandlerMethods(HttpHandlerType o) :
> within(HttpHandlerType+) &&
> execution(@(GET || PUT || POST || DELETE) public * *.*(..)) &&
> this(o);
>
> before(HttpHandlerType o): httpHandlerMethods(o) {
> if (o.Log.isInfoEnabled()) {
> o.Log.info(logMethod(thisJoinPoint));
> }
> }
>
> after(HttpHandlerType o) returning (Object result):
> httpHandlerMethods(o) {
> if (o.Log.isDebugEnabled()) {
> o.Log.debug(logMethod(thisJoinPoint, result));
> }
> }
>
> after(HttpHandlerType o) throwing (Exception e):
> httpHandlerMethods(o) {
> if (o.Log.isEnabledFor(Level.ERROR)) {
> o.Log.error(logMethod(thisJoinPoint), e);
> }
> }
>
> private static String logMethod(JoinPoint jp) {
> ...
> }
>
> private static String logMethod(JoinPoint jp, Object result) {
> ...
> }
> }
>
> The problem is that the Log field is an instance field, while it should be
> a static one. But one cannot specify a static field inside an interface.
>
> So my question is how to change the aspect implementation to make the Log a
> static field?
>
> Thanks.
>
> --
> Be well and prosper.
> ==============================
> "There are two kinds of people.Those whose guns are loaded and those who
> dig."
> ("The good, the bad and the ugly")
> So let us drink for our guns always be loaded.
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
> https://dev.eclipse.org/mailman/private/aspectj-users/attachments/20111207/c844c749/attachment.htm
> >
>
> ------------------------------
>
> Message: 2
> Date: Wed, 7 Dec 2011 14:35:23 +0100
> From: Eric Bodden <[email protected]>
> To: [email protected]
> Subject: [aspectj-users] AOSD 2012 Student Volunteer program
> Message-ID:
> <CALhVNN+VG8Tc+kPrK00XmdSOcjr7ut2fY51zx=mq+8whzno...@mail.gmail.com
> >
> Content-Type: text/plain; charset=windows-1252
>
> The Student Volunteer program is a great opportunity for students
> interested in topics of advanced modularity and Aspect-Oriented
> Software Development (AOSD) to stay tuned on the cutting edge
> scientific and technical advances in this area. This is also an
> opportunity for the interested grad and undergrad students to engage
> with their peers: both students and senior researchers and
> practitioners. As ever, the AOSD 2012 Student Volunteer program will
> strive to provide an active and interactive environment for the
> students to benefit from the research program of the conference, as
> well as to develop their professional network and enjoy the social
> events.
>
> Special Call for Students From European Universities
> * The AOSD 2012 Student Volunteer program will provide 10 dedicated
> spots for graduate students from European universities
> * The applications will be prioritized based on the relevance of the
> student work to AOSD, the potential extension of the AOSD community
> via integration of related work from new/underrepresented research
> groups, and the circumstances of individual students.
>
> The student volunteers will receive:
> * Free student registration for the conference.
> * Free participation in all social events including one banquet ticket.
> * Excellent networking opportunities: both working as a team with
> other volunteers, and interacting with other conference participants.
> * The program chairs will strive to (as much as possible) ensure that
> the volunteers are assigned to the tutorials, workshops,
> demonstrations or other events of their interest.
> * When not on duty, volunteers will have free admission to all
> conference events, provided space is available.
>
> The student volunteers will provide 15-20 hours of work on conference
> support tasks throughout the duration of the conference, including:
> * Technical assistance for the main conference sessions, workshops,
> tutorials, demonstrations, or evening events.
> * Help at conference bag packing and signposting.
> * Help at the registration desk.
> * Help in arranging, rearranging and disassembling conference ?facilities.
> * Technical assistance to speakers and conference participants.
>
> The applicants for student volunteer positions must be:
> * Enrolled as a full-time student during the 2011-2012 academic year.
> * Willing to be friendly (no natural outgoing personality required,
> just a strong desire to do a good job).
> * Proficient in English.
> * Proficiency in other languages is an advantage.
>
> How to Apply
> Please send your application in English by email to the Student
> Volunteers Chairs at [student-volunteers at aosd.net]. The Student
> Volunteers Chairs will confirm receipt of the submission. An
> application should include:
> * A short motivation Letter;
> * A CV
> * Contact name, phone number, and email address of a faculty member at
> your institution who will recommend you as a student volunteer
> (Supervisors might be contacted to confirm the appropriateness of the
> candidates.)
> * The dates and times of your arrival and departure
>
> In the event that one?s student volunteer application is not accepted,
> you may still register using the early registration rate. Please
> contact registration at aosd.net.
> If you have further questions please contact the Student Volunteers
> Chairs (Ruzanna Chitchyan or Jens Lincke) at volunteers at aosd.net.
>
>
> ------------------------------
>
> Message: 3
> Date: Wed, 7 Dec 2011 08:17:26 -0800
> From: Andy Clement <[email protected]>
> To: [email protected]
> Subject: Re: [aspectj-users] How to inject a static field into a
> multitude of types with AspectJ?
> Message-ID:
> <CAAu=NOmTuzVFe0=JdoEWu5fHYih6=-yuxo3eco5unsbm+jw...@mail.gmail.com
> >
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hi,
>
> Currently you can't make those static declarations on interfaces, but
> it has been requested a few times and I would like to get to it soon.
> In the meantime you can simulate it using a pertypewithin
> instantiation model. This thread discusses it:
>
>
> http://aspectj.2085585.n4.nabble.com/Introduce-static-members-into-several-classes-at-once-td2080794.html
>
> hope that helps,
>
> cheers,
> Andy
>
> On 7 December 2011 01:44, mark Kharitonov <[email protected]>
> wrote:
> > I would like to add a log4j.Logger private static field into a multitude
> of
> > types. For instance, into all the types annotated with the @Path
> annotation.
> >
> > This my current aspect code:
> >
> > ??? public aspect LoggingAspect {
> > ????? public interface HttpHandlerType {}
> > ????? declare parents: (@Path *) implements HttpHandlerType;
> >
> > ????? public Logger HttpHandlerType.Log = Logger.getLogger(getClass());
> >
> > ????? pointcut httpHandlerMethods(HttpHandlerType o) :
> > within(HttpHandlerType+) &&
> > ??????? execution(@(GET || PUT || POST || DELETE) public * *.*(..)) &&
> > this(o);
> >
> > ????? before(HttpHandlerType o): httpHandlerMethods(o) {
> > ??????? if (o.Log.isInfoEnabled()) {
> > ????????? o.Log.info(logMethod(thisJoinPoint));
> > ??????? }
> > ????? }
> >
> > ????? after(HttpHandlerType o) returning (Object result):
> > httpHandlerMethods(o) {
> > ??????? if (o.Log.isDebugEnabled()) {
> > ????????? o.Log.debug(logMethod(thisJoinPoint, result));
> > ??????? }
> > ????? }
> >
> > ????? after(HttpHandlerType o) throwing (Exception e):
> httpHandlerMethods(o)
> > {
> > ??????? if (o.Log.isEnabledFor(Level.ERROR)) {
> > ????????? o.Log.error(logMethod(thisJoinPoint), e);
> > ??????? }
> > ????? }
> >
> > ????? private static String logMethod(JoinPoint jp) {
> > ??????? ...
> > ????? }
> >
> > ????? private static String logMethod(JoinPoint jp, Object result) {
> > ??????? ...
> > ????? }
> > ??? }
> >
> > The problem is that the Log field is an instance field, while it should
> be a
> > static one. But one cannot specify a static field inside an interface.
> >
> > So my question is how to change the aspect implementation to make the
> Log a
> > static field?
> >
> > Thanks.
> >
> > --
> > Be well and prosper.
> > ==============================
> > "There are two kinds of people.Those whose guns are loaded and those who
> > dig."
> > ?? ("The good, the bad and the ugly")
> > So let us drink for our guns always be loaded.
> >
> >
> > _______________________________________________
> > aspectj-users mailing list
> > [email protected]
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
>
>
> ------------------------------
>
> Message: 4
> Date: Wed, 7 Dec 2011 08:19:19 -0800
> From: Andy Clement <[email protected]>
> To: [email protected]
> Subject: Re: [aspectj-users] Using aspect to pass a metadata as a
> parameter through SOAP
> Message-ID:
> <CAAu=NO=SiBYbH=fb6yudm1u_hkzxj9wjq5dmi9mxses5ynj...@mail.gmail.com
> >
> Content-Type: text/plain; charset=ISO-8859-1
>
> Hi,
>
> > But I am wondering if this will even work and can be done using aspectj.
> > It would be great if someone can tell me if this can be done using
> > aspectj . If yes, will it solve my problem. Highly appreciate any
> > help.
>
> I guess in theory, what you are proposing will work. But it may get
> tricky to coordinate if there are multiple requests going on
> simultaneously and multiple threads handling them.
>
> cheers,
> Andy
>
> On 5 December 2011 10:50, Ashiwan.S. <[email protected]> wrote:
> > Hi,
> >
> > Thank you so much for the reply.
> > I guess I would have to modify the bytecode and xml specification for
> > the data (since the application has been written to use SOAP). If
> > that's the case, then I wonder if aspectj can help me at all in
> > modularizing this work.
> >
> > I am thinking of doing something as below using aspectj.
> >
> > 1. Write a client side aspect which has a nested static class inside
> > it. The class implements a remote method. The remote method will save
> > the extra data in the object every time the data is available from the
> > HTTP request.
> > 2. Write a server side aspect such that , before the actual EJB call,
> > make a remote method call to get the data and then proceed further
> > with the actual call.,
> >
> > I understand that there is an extra overhead in making RMI call for
> > every request received from the Front-end to the Business logic.
> > But I am wondering if this will even work and can be done using aspectj.
> > It would be great if someone can tell me if this can be done using
> > aspectj . If yes, will it solve my problem. Highly appreciate any
> > help.
> >
> > Thanks,
> > Ashiwan
> >
> > --
> > -Ashiwan
> > _______________________________________________
> > aspectj-users mailing list
> > [email protected]
> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
> ------------------------------
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
> End of aspectj-users Digest, Vol 82, Issue 4
> ********************************************
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users