JavaMOP 1.0 Extended Regular Expression (JavaERE) Plugin

Jump to: navigation, search

This version of JavaMOP is old and not supported anymore! Go to the JavaMOP webpage for the latest version.



This is JavaMOP1.0, which is now deprecated. Go to JavaMOP for the current version.

  

MOP

ERE

CFG

PTLTL

FTLTL

PTCaRet

...

JavaMOP

JavaERE

JavaCFG

JavaPTLTL

JavaFTLTL

JavaPTCaRet

...

BusMOP

BusERE

...

BusPTLTL

... ... ...
... ... ... ... ... ... ...
MOP Matrix: a clickable map of MOP pages.


JavaERE is an instance of the generic MOP ERE plugin for JavaMOP1.0, the MOP instance for Java. JavaMOP extracts from a specification using the header "logic = ERE" the actual ERE and passes it to the JavaERE plugin. The JavaERE plugin encapsulates the ERE plugin as follows:

  • It sends the extracted ERE pattern to the ERE plugin;
  • It collects the output of the ERE plugin and produces Java monitoring code snippets (declarations, monitor initialization, monitor step, etc.).

JavaMOP takes the monitoring code snippets generated by the JavaERE plugin and weaves them, using AspectJ, within the original application.

Syntax

The syntax of JavaMOP ERE specifications is as expected:

<Logic> ::= "ERE"
<Property> ::= "formula:" <ERE Pattern>

Run the JavaERE Plugin Online

We provide a web-based interface to try JavaMOP with the JavaERE plugin online. Enter your specification in the form below, or chose (and possibly modify) one of the existing specifications. Run JavaERE by clicking the Run button. The generated code will be displayed underneath the form. The generated code can be compiled using any AspectJ compiler.

  • Note: The name of the generated Aspect will be the name of the first specification in the text box + MonitorAspect. The name of the .aj file you intend to compile needs to be the same. For example, for LeakingSyncCFG, the generated aspect is LeakingSyncCFGMonitorAspect, and should be placed in a file named LeakingSncCFGMonitorAspect.aj.
  • Note: One may append within or !within clauses to the event definitions in JavaMOP to control the scope of instrumentation. For example, if it is certain that some class C will not trigger any event of interest, one may use !within(C) in the event definitions to ignore C during the instrumentation, improving the instrumentation efficiency. The syntax of the within clause can be found in the AspectJ documentation.
Choose an example:
  • ClosedReader
  • ClosedWriter
  • HasNext
  • HashMap
  • HashSet
  • Hashtable
  • LeakingSync
  • NullChecker
  • SafeEnum
  • SafeIterator
  • SafeReweave
  • ToDispose
  • p
 

Please press the Run button once and wait; it may take a few seconds to run JavaMOP1.0_ERE; the execution of JavaMOP1.0_ERE using this web interface is limited to 2 minutes of CPU time and 500 MB of RAM.

Personal tools
Namespaces

Variants
Views
Actions
Navigation