Compile time Annotation Processing
Is it possible to access the source of the file being analysed at compile time?
Thanks
Milesy wrote:
Is it possible to access the source of the file being analysed at compile time?If you are naughty, you can try to find the file being processed and read it directly, but that is not supported.
You can use the javac-specific tree API (http://java.sun.com/javase/6/docs/jdk/api/javac/tree/index.html) to map from a javax.lang.model.Element to a AST representing the source for a method or constructor.
If you want the source for the purposes of modifying it, the annotation processing API is read-only, but much of the effect of mutating the source can be achieved by generating subclasses or the superclass of the class in question. Check the forum archives for details.
Similar Messages
-
JDK 1.6: Annotation Processing & Compiler Hack
Hello,
I am currently using JDK 1.6.0_23
For one of the requirement, I am going with annotation processing & compiler Hack using Tools.jar available as part of JDK.
I have refered a PDF - "The Hacker's Guide to javac (PDF) by David Erni and Adrian Kuhn (2008)
" suggested from page of - http://openjdk.java.net/groups/compiler/
My requirement is below ->
Origional Source:
public void someMethod() {
}Modified Source:
public void someMethod() {
int items = new example.Product().getItems();
} Below is my code to generate the variable declaration -
private TreeMaker make; // fetch it from somewhere
JCNewClass newProduct = make.NewClass(null, List.<JCExpression>nil(), make.Ident(names.fromString("example.Product")), List.<JCExpression>nil(), null);
JCFieldAccess fieldAccess = make.Select(newProduct, names.fromString("getItems"));
JCMethodInvocation getTimeMethodInvocation = make.Apply(List.<JCExpression>nil(), fieldAccess, List.<JCExpression>nil());
expression = getTimeMethodInvocation;
JCVariableDecl itemsDeclaration = make.VarDef(modifiers,name,varType,expression);
System.out.println(itemsDeclaration); // this prints int items = new example.Product().getItems(); This itemsDeclaration, I am adding to a List<JCStatement> of JCBlock of JCMethodDecl.
However modified code does not compile :(
If I make below changes - Modified does compile
1)
JCNewClass newProduct = make.NewClass(null, List.<JCExpression>nil(), make.Ident(names.fromString("Product")), List.<JCExpression>nil(), null);Product insteadof example.Product
2) Add belwo statement in the origional source code
import examle.Product; What exactly am I missing here ???
The AST tree is diffcult to understand with minimum documentation & without much help on the interent.
I hope this is correct forum, for my query.
It will be a great help.
Regards,
Vikas ParikhHello,
I couldn't contact them, as the white papaer didn't conatin any email address / contact info.
I have investigated myself on this & would like to share with you guys, so that any other developer
do not have to invest precious time like I have done.
To create a New Class, you require a JCExpression.
Below would work, if class already has imported Product class.
make.Ident(names.fromString("Product"))However, if class has not imported the Product class, then there are 2 options -
1) Create a Ident</pre> from <pre>Symbol (ClassSymbol)
2) Create a JCField</pre> from <pre>NameI used a later approach.
Regards,
Vikas Parikh
Edited by: 996153 on Mar 31, 2013 11:04 PM -
Is it possible to stop compiling process in annotations processing?
Hi all.
I'm doing annotations processing with javac.
Is it possible to stop compilation if an error occurs during annotations processing?
Thank you!francadaval wrote:
Hi all.
I'm doing annotations processing with javac.
Is it possible to stop compilation if an error occurs during annotations processing?If you raise an error with the Messager:
http://java.sun.com/javase/6/docs/api/javax/annotation/processing/Messager.html
no class files will be generated. This is the recommended way to start winding things down; from the Processor class:
"If a processor throws an uncaught exception, the tool may cease other active annotation processors. If a processor raises an error, the current round will run to completion and the subsequent round will indicate an error was raised. Since annotation processors are run in a cooperative environment, a processor should throw an uncaught exception only in situations where no error recovery or reporting is feasible." -
What are the process are done in compile time?
what are the process are done in compile time?
if this process occur in runtime that's called
runtime polymorphismExactly. That's usually the case, especially with interfaces. I'm not entirely sure, but I think if you're calling final methods, those are statically linked because they can't be overridden anyway. I guess it saves a method table lookup at runtime. -
using apt i have embedded compile-time checks for particular relationships, e.g. AnnotationA exists (only) on ClassB, AnnotationC exists on subclass of ClassD, ClassE has 0..n refs to ClassF, ClassG declares AnnotationH, ClassI has 0..n fields/methods annotated (by), etc.
with a declarative programming approach, knowing what functionality a particular annotation declares, the absence/existence of this metadata can tell us about business relationships
with apt business rules can be enforced at compile-time
this approach provides an alternative to another thread posting
http://forum.java.sun.com/thread.jspa?threadID=5180602&tstart=0
and is available without spec change
i am interested in hearing if others are doing this
additional relationship
Message was edited by:
developer_jbsDeclarative programing has all but gone the way of
the doe doe because...
1: It is not flexible (It is extremely difficult to
change a complex system in a predetermined way)isn't this the "expert system" model?
2: It lengthens the development cycle (see item 1)
3: It normally forces the developer to add many
things to there code to get things to work, that have
nothing to do with the intent of the code.more things? the declarations or the declaration processing?
In its defense (I like a declarative model but, do
not like being forced into one)...not advocating a forced change in Java
1: It increases code safety.
2: It can shorten the development cycle, in certain
circumstances (especially if it is not overused),
because it can greatly increase the readability of
code.
3: It follows many best practices (although this is
also possible in a Non-Declarative model).as for best practices what I'd like to see are declarative design patterns, Adapter, Singleton, Factory, Delegate, Strategy, Interpreter, Proxy, Visitor
too often the design intent is lost in an implementation or design details can only be deduced by class/field/method names, comments, and accompanying docs
So, if everyone had unlimited time, and an unlimited
budget, yes declaritive is the way to go. Since that
is not the case, we filtered out 99% of what it gave
us, made sure the stuff that was getting in the way
was removed, and what do you have???
You guessed it OOA&D.
Now having said that should we be more declarative? I
think so, but I will tell you now, REQUIRING
declarative elements in code is a sure fire way to
get the majority of development groups to drop the
language (and I think Java as it stands currently CAN
be declarative, so if you have one of those unlimited
budgets, go for it!).no need to require it
I believe given good (reusable) declarative options, on top of OOP, will become the chosen approach
reusable design declarations would lessen overall cost and increase readability -
New com.sun.mirror.* packages - annotation processing
Hello,
i would like to use annotation processing tool (APT), but there is much to learn yet.
So, please help me.
Let�s have an annotation that can be apllied to all code declarations (source code entities).I want to process some *.java files (their proper source code) via APT.From this code i wanna gain (in any way) those declarations (classes, ifaces, methods, constructors, etc.) that are annotated just with the only one annotation that i have.
i was already going through the API, but not well-understood.
As written, i created AnnotationProcessorFactory (just my annotation should be processed by this factory) with an appropriate AnnotationProcessor.
I�ve already done some steps to succeed, but you know, that�s not that i want
Of course, all is performed in build-time, after i call apt command with the option factory with the appropriate factory class
Thank you a lotHi,
I am new to this forum and also just started
working on apt can u plz tell me where do i get
com.sun.mirror package and its sub-packages
hanksIf you can use JDK 6, I strongly recommend using the standardized annotation processioning in javac and the packages javax.annotation.processing and javax.lang.model..* instead of apt and its com.sun.mirror.* API. To get started, take a look at
sample/javac/processing/src/CheckNameProcessor.java
under the JDK 6 install directory.
If you just need to compile against the apt API, it is found in the tools.jar file in Sun's JDK; see http://java.sun.com/j2se/1.5.0/docs/guide/apt/GettingStarted.html
You can find a jar file with just the API definition from https://aptmirrorapi.dev.java.net/. -
Hey there,
I would like to implement an annotation something like RolesAllowed, let's call it ActionAllowed:
class Facade {
@ActionAllowed(view="current.xhtml", action = "delete" )
public Result delete(Param) { ... }
}Now I would like my application to do the neccessary security check implicitly before method delete is called (My application is a JSF 2.0 one running in a Tomcat 7).
I found something like JSR 269 but did not figure out how to process the annotation while runtime. Then I found Java CDI that seemed interesting to me but I have not found an implementation to use yet. The javax.enterprise:cdi-api depends on JBoss stuff, what I wondered about...
So, to cut a long story short... I need help! :-) Can someone put me on the right track?
StephanBecause @SuppressWarnings has ["@Retention(value=SOURCE)"|http://java.sun.com/javase/6/docs/api/java/lang/SuppressWarnings.html], which means that the annotation is only accessible/visible at compile-time and won't ever be written to the .class file. The reason for this is because it's an annotation that's supposed to influence what the compiler does with the source and nothing else.
-
Fpga compilation xilinx error 'Process "Map" failed' - 'unroutable situation'
When I try to compile a Labview fpga project on our new system, it fails with the following error summary (the full Xilinx log is attached):
LabVIEW FPGA: The compilation failed due to a xilinx error.
Details:
ERROR:LIT:536 - IBUF symbol "aUserGpio<1>_IBUF" (output
signal=aUserGpio<1>_IBUF) has the attribute IOBDELAY set to value NONE and it
is driving an IODELAY. If the IOBDELAY attribute is on the driving PAD, it
has precedence over the IBUF one. Either the constraint or the design need
modification to prevent an unroutable situation.
Errors found during logical drc.
Design Summary
Number of errors : 1
Number of warnings : 349
Process "Map" failed
Start Time: 10:31:49 AM
End Time: 10:55:32 AM
Total Time: 00:23:43
Hardware:
NI PXIe-1071 Chassis
NI PXIe-8108 Embedded controller
NI PXIe-7965R FPGA FlexRIO FPGA module
NI 5761 250 MS/s 14 bit Analog input digitizer
Installed software:
Labview 2011 version 11.0
Labview FPGA module 11.0.0
FPGA compilation tools (Xilinx12_4)
NI FlexRIO Adapter Module Support 2.2.0
NI-RIO 4.0 (FlexRIO 2.1.0)
Xilinx DRAM compilation bug fix patch from NI article id 5E4FNCDP
Xilinx clock bug fix patch from NI article id 5GFAB7DP
replaces c:\NIFPGA\programs\Xilinx11_5\ISE\xilinx\lib\nt\libPlXil_Clocks.dll; The installed version is c:\NIFPGA\programs\Xilinx12_4-> Manually copied the dll to the installed version
The Project uses the 5761 low speed clip and a DRAM FIFO.
I tried to compile it before installing any patch, after installing the DRAM patch, and after installing both patches and always got a Xilinx error after ~10 minutes compile time. The error summary shown above and the attached Xilinx log are from compiling with both patches installed.
It compiled correctly on our older system:
Hardware:
NI PXIe-1082 Chassis
NI PXIe-8133 Embedded controller
NI PXIe-7965R FPGA FlexRIO FPGA module
NI 5761 250 MS/s 14 bit Analog input digitizer
Installed software:
Labview2011version10.0.0
LabviewFPGAmodule10.0.0
FPGAcompilationtools (Xilinx11_5)
NIFlexRIOAdapterModuleSupport2.1.0
NI-RIO3.5.1 (FlexRIO1.5.0)
XilinxDRAMcompilationbugfixpatchfromNIarticleid5E4FNCDP
Any help / suggestions greatly appreciated,
Fabrizio
Attachments:
XilinxLog.txt 1482 KBHi Torpedotown,
Can you tell me what version of FlexRIO Adapter Module Support you are using?
The 5761 Low Speed CLIP has a constraint that doesn't work properly with some versions of the compilation tools. In order to solve this you should be able to upgrade to our latest version of FAM support, or go change the constraint manually.
For the latest version of FAM support, go to http://ni.com/info and enter code "famsoftware"
If you've modified constraint files before and feel comfortable doing it yourself, let me know and I can provide you with the details on how to do that.
Thanks!
National Instruments
FlexRIO & R-Series Product Support Engineer -
Seeburger Module Error at Compilation Time
Hi,
I am using the below modules for configuring the EDI P.O (850) scenario, Initially I am taking the EDI file to one folder up to this fine, after that I am processing this file by using sender File adapter with modules, at the compilation time i am getting this error
"Error: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of SeeClassifier."
Sender file adapter modules
Processing Sequence:
1 localejbs/SeeClassifier Local Enterprise Bean classifier
2 localejbs/CallBicXIRaBean Local Enterprise Bean bic
3 localejbs/Seeburger/MessageSplitter Local Enterprise Bean splitter
4 localejbs/CallSapAdapter Local Enterprise Bean exit
Module Configuration:
bic classifierAttID additionalInfo
bic classifierMappingID additionalInfo
bic destSourceMsg MainDocument
bic destTargetMsg MainDocument
bic mappingName AUTO
bic splitter splitter
classifier destSourceMsg MainDocument
classifier showInAuditLog true
Thanks
Ramesh
Edited by: Venkataramesh Boppana on Nov 8, 2010 8:55 PMHi Ramesh,
"...Object not found in lookup of SeeClassifier..." means, that the Classifier module can not be found.
Did you deploy SeeBaseTools and SeeExtendedTools and SeeModuleCollection?
regards,
Daniel -
Code Generation Using Annotation Processing
I'm trying to figure out how to do something like thus:
Given this source file with the following custom annotation:
@Composite(interfaces=Mammal.class)
public class Dog implements IComposite
};I want to create an annotation processor that inserts a data member, implementation into the constructor, and a public method into this class:
@Composite(interfaces=Mammal.class)
public class Dog implements IComposite
IComponent[] m_inner_objects;
public Dog()
m_inner_objects = new IComponent[1];
m_inner_objects[0] = Mammal.compose(this);
public IComponent getComponent(Class<?> inInterface)
if(inInterface == Mammal.class)
return m_inner_objects[0];
return null;
};Are all three tasks possible? Are any of the three tasks possible? If yes to any of my questions how would I go about this. I've gotten just past the 'hello world' state in writing a custom annotation processor so I just need the more advanced knowledge of how to actually affect the code once I'm actively processing it.
cheers,brucechapman wrote:
sednivo wrote:
I can get the CompilationUnitTree. Yes
Then I can modify it with Compiler Tree API.Really?
Where is a pitfall in my train of thought?The Tree API is an immutable API, you can look, but not modify.Here is example of modifying compiler tree.
http://svntrac.hanhuy.com/repo/browser/hanhuy/trunk/panno/src/com/hanhuy/panno/processing/PropertyProcessor.java
Also, the javax.annotation.processing.Filer will not allow you to overwrite an existing compilation unit, and you must use the Filer if you wish a generated class to be compiled in the next round.I don't use Filer class. Method writeCompilationUnit that I've wrote works well for existed files.
There is a fundamental principle of java that the same program always has the same meaning. See the 3rd paragraph of the Preface to the first edition of the Java Language Spec . >This is the reason why you can't modify existing source code.We can mark generated methods in a class with @Generated annotation. -
Select instance of polymorphi​c vi at compile time
quick question:
I have a fairly significant labview project that i'm deploying to several compactRIOs. However, I have two possible configurations of that code. The difference between the two configurations is a single VI. That is, within my project, there's one VI that I replace with another (same connector pane) for the alternate configuration.
What I want to do is to make that VI into a polymorphic VI, then have the instance of that polymorphic VI be set at compile time. That is, I would have two build specifications. Each build specification would build a configuration of the project by having the selection of which instance of the polymorphic VI to use be included as a parameter of the build specification. If it is possible to do, I can't seem to find the option in the build specification preferences to do so.
Does this make sense? Any help is appreciated.
Cheers.
Solved!
Go to Solution.Keith_W wrote:
yamaeda, i'm unclear about what you're suggesting. are you suggesting that i use the VI scripting VIs to programmatically edit the VI to switch which state is enabled by using a VI that runs before building, but as part of the build process?
The Conditional disable seems to work like a script at compile time. As you stated your problem it sounds like you wanted 2 builds anyway, and this would enable one of the conditional frames when building the exe.
/Y
LabVIEW 8.2 - 2014
"Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
G# - Free award winning reference based OOP for LV -
Hello everybody,
I have a generic question regarding the Forte compilation performance. We
have a large application in Forte 3.0.G. We compile this application to
generate an executable. We notice two problems:
1. Each time we change a class, Forte generates the entire application
again, even though we changed only one class (out of 100 classes). Is
there any way to be able to compile only a part of the application. It
takes an enormous time to make a compiled distribution and to actually
compile it. BTW, we use FCompile and not the AutoCompile feature of Forte.
2. The time taken to make a compiled distribution and to fcompile
generated .pgf file is huge (currently it takes more than 4 hours for the
entire process and we have 3 such applications, so the total time is a big
12 hours!). Is there any flag that we can set either in Forte or in
FCompile to speed up the process?
Also have anybody used the Autocompile feature? Does it work faster?
I would be grateful if somebody can help us out.
Thanks,
Anand.
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>Anand,
Autocompile will be slower that using fcompile. Autocompile is a sequential
process. It starts one compile after the other finishes.
But since you control fcompile, you can start multiple at the same time.
Have you tried the Make Partial Distribution facility. I am not sure if it
will work in your situation, but it is worth a try.
Hope this helps.
Venkat J Kodumudi
PriceWaterhouseCoopers LLP
Internet: [email protected]
Internet2: [email protected]
-----Original Message-----
From: [email protected]
[SMTP:[email protected]]
Sent: Monday, January 18, 1999 11:21 AM
To: Venkat Kodumudi
Subject: Forte Compilation Time
To: [email protected]
cc: (bcc: Venkat Kodumudi/MCS/Price Waterhouse)
From: [email protected] @ INTL
Date: 01/18/99 03:49:22 PM GMT
Subject: Forte Compilation Time
Hello everybody,
I have a generic question regarding the Forte compilation performance. We
have a large application in Forte 3.0.G. We compile this application to
generate an executable. We notice two problems:
1. Each time we change a class, Forte generates the entire application
again, even though we changed only one class (out of 100 classes). Is
there any way to be able to compile only a part of the application. It
takes an enormous time to make a compiled distribution and to actually
compile it. BTW, we use FCompile and not the AutoCompile feature of
Forte.
2. The time taken to make a compiled distribution and to fcompile
generated .pgf file is huge (currently it takes more than 4 hours for the
entire process and we have 3 such applications, so the total time is a big
12 hours!). Is there any flag that we can set either in Forte or in
FCompile to speed up the process?
Also have anybody used the Autocompile feature? Does it work faster?
I would be grateful if somebody can help us out.
Thanks,
Anand.
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
The information transmitted is intended only for the person or entity to
which it is addressed and may contain confidential and/or privileged
material. Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by persons or
entities other than the intended recipient is prohibited. If you
received
this in error, please contact the sender and delete the material from any
computer.
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
Errors occured when compile the bpel process
Errors occurred when compile the bpel process using bpel designer for Eclipse:
(com.oracle.bpel.designer_0.9.13)
using PM: bpel_jboss_101200
More error infomation following:
Buildfile: E:\OraBpelDEclipse3.2\workspace\AboutTest\build.xml
main:
[bpelc] E:\OraBpelDEclipse3.2\workspace\AboutTest\temp\bpelc762.tmp\BPEL-INF\src\bpel\p0\BPEL_BIN.java:835: Invalid expression statement.
[bpelc] retun true;
[bpelc] ^
[bpelc] E:\OraBpelDEclipse3.2\workspace\AboutTest\temp\bpelc762.tmp\BPEL-INF\src\bpel\p0\BPEL_BIN.java:835: ';' expected.
[bpelc] retun true;
[bpelc] ^
[bpelc] E:\OraBpelDEclipse3.2\workspace\AboutTest\temp\bpelc762.tmp\BPEL-INF\src\bpel\p0\BPEL_BIN.java:208: Method setPartneLinkBinding(com.collaxa.cube.rm.suitcase.PartnerLinkBindingDescriptor) not found in class com.collaxa.cube.engine.types.bpel.CXPartnerLink.
[bpelc] __pl.setPartneLinkBinding(getProcessDescriptor().getPartnerLinkBindings().getPartnerLinkBinding(__pl.getName()));
[bpelc] ^
[bpelc] E:\OraBpelDEclipse3.2\workspace\AboutTest\temp\bpelc762.tmp\BPEL-INF\src\bpel\p0\BPEL_BIN.java:584: Undefined variable: __ctx
[bpelc] __setOutgoingLinks(__sc, __ctx);
[bpelc] ^
[bpelc] 4 errors
BUILD FAILED
E:\OraBpelDEclipse3.2\workspace\AboutTest\build.xml:28: ORABPEL-01005
Error in java files auto-generated when compiling ,why?
Thanks!when compiled again without any change, the same errors like above are not occurs
more info.
Buildfile: E:\OraBpelDEclipse3.2\workspace\AboutTest\build.xml
main:
BUILD SUCCESSFUL
Total time: 9 seconds
BUT, some errors occurs in BPEL PM server and in Console the process is not available
more Info: Because I using Chinese version,some chinese Info occurs in the error infomation ,so i have translated some character into English.
process "AboutTest" (version "1.0") compiled sucessfully
15:49:15,718 INFO [STDOUT] <2007-05-11 15:49:15,718> <INFO> <default.collaxa.cu
be.engine.deployment> process "AboutTest" (version "1.0") loaded sucessfully.
16:25:25,265 INFO [STDOUT] <2007-05-11 16:25:25,250> <INFO> <default.collaxa.cu
be.compiler> validating "E:\OraBPELPM\domains\default\tmp\.bpel_AboutTest_1.0.jar\
AboutTest.bpel" ...
16:25:35,015 INFO [STDOUT] E:\OraBPELPM\domains\default\tmp\.bpel_AboutTest_1.0
.jar\BPEL-INF\src\bpel\p0\BPEL_BIN.java:835: Invalid expression statement.
16:25:35,015 INFO [STDOUT] retun true;
16:25:35,015 INFO [STDOUT] ^
16:25:35,031 INFO [STDOUT] E:\OraBPELPM\domains\default\tmp\.bpel_AboutTest_1.0
.jar\BPEL-INF\src\bpel\p0\BPEL_BIN.java:835: ';' expected.
16:25:35,031 INFO [STDOUT] retun true;
16:25:35,031 INFO [STDOUT] ^
16:25:35,859 INFO [STDOUT] E:\OraBPELPM\domains\default\tmp\.bpel_AboutTest_1.0
.jar\BPEL-INF\src\bpel\p0\BPEL_BIN.java:208: Method setPartneLinkBinding(com.col
laxa.cube.rm.suitcase.PartnerLinkBindingDescriptor) not found in class com.colla
xa.cube.engine.types.bpel.CXPartnerLink.
16:25:35,859 INFO [STDOUT] __pl.setPartneLinkBinding(getProcessDescript
or().getPartnerLinkBindings().getPartnerLinkBinding(__pl.getName()));
16:25:35,859 INFO [STDOUT] ^
16:25:35,859 INFO [STDOUT] E:\OraBPELPM\domains\default\tmp\.bpel_AboutTest_1.0
.jar\BPEL-INF\src\bpel\p0\BPEL_BIN.java:584: Undefined variable: __ctx
16:25:35,859 INFO [STDOUT] __setOutgoingLinks(__sc, __ctx);
16:25:35,859 INFO [STDOUT] ^
16:25:35,859 INFO [STDOUT] 4 errors
16:25:36,343 INFO [STDOUT] <2007-05-11 16:25:36,312> <ERROR> <default.collaxa.c
ube.engine.deployment> <CubeProcessFactory::generateProcessClass>
process "AboutTest" (version "1.0") compiled failed.
16:25:36,359 INFO [STDOUT] <2007-05-11 16:25:36,359> <ERROR> <default.collaxa.c
ube.engine.deployment> <CubeProcessLoader::create> can not compile the class .
can not compile the bpel class generated from "AboutTest".
16:25:36,375 INFO [STDOUT] <2007-05-11 16:25:36,375> <ERROR> <default.collaxa.c
ube.engine.deployment> process "AboutTest" (version "1.0") loaded failed!!
16:25:37,281 INFO [STDOUT] <2007-05-11 16:25:37,265> <ERROR> <default.collaxa.c
ube> <BaseCubeSessionBean::logError>
if you have installed patched in server, please check whether the proriety "bpelcClasspath" contained the patch class.
16:25:37,343 INFO [STDOUT] at com.collaxa.cube.engine.deployment.CubeProces
sHolder.bind(CubeProcessHolder.java:1257)
16:25:37,343 INFO [STDOUT] at com.collaxa.cube.engine.deployment.CubeProces
sHolder.loadAndBind(CubeProcessHolder.java:870)
16:25:37,421 INFO [STDOUT] at com.collaxa.cube.engine.deployment.CubeProces
sHolder.loadArchive(CubeProcessHolder.java:812)
16:25:37,421 INFO [STDOUT] at com.collaxa.cube.engine.CubeEngine.loadProces
sArchive(CubeEngine.java:985)
16:25:37,421 INFO [STDOUT] at com.collaxa.cube.ejb.impl.BPELDomainManagerBe
an.loadProcessArchive(BPELDomainManagerBean.java:390)
16:25:37,421 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(
Native Method)
16:25:37,421 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(N
ativeMethodAccessorImpl.java:39)
16:25:37,421 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invo
ke(DelegatingMethodAccessorImpl.java:25)
16:25:37,421 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:3
24)
16:25:37,421 INFO [STDOUT] at org.jboss.ejb.StatelessSessionContainer$Conta
inerInterceptor.invoke(StatelessSessionContainer.java:683)
16:25:37,421 INFO [STDOUT] at org.jboss.resource.connectionmanager.CachedCo
nnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
16:25:37,421 INFO [STDOUT] at org.jboss.ejb.plugins.StatelessSessionInstanc
eInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72)
16:25:37,421 INFO [STDOUT] at org.jboss.ejb.plugins.AbstractTxInterceptor.i
nvokeNext(AbstractTxInterceptor.java:84)
16:25:37,421 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.runWit
hTransactions(TxInterceptorCMT.java:282)
16:25:37,421 INFO [STDOUT] at org.jboss.ejb.plugins.TxInterceptorCMT.invoke
(TxInterceptorCMT.java:148)
16:25:37,437 INFO [STDOUT] at org.jboss.ejb.plugins.SecurityInterceptor.inv
oke(SecurityInterceptor.java:111)
16:25:37,437 INFO [STDOUT] at org.jboss.ejb.plugins.LogInterceptor.invoke(L
ogInterceptor.java:191)
16:25:37,437 INFO [STDOUT] at org.jboss.ejb.plugins.ProxyFactoryFinderInter
ceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
16:25:37,437 INFO [STDOUT] at org.jboss.ejb.StatelessSessionContainer.inter
nalInvoke(StatelessSessionContainer.java:331)
16:25:37,437 INFO [STDOUT] at org.jboss.ejb.Container.invoke(Container.java
:709)
16:25:37,437 INFO [STDOUT] at sun.reflect.GeneratedMethodAccessor81.invoke(
Unknown Source)
16:25:37,437 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invo
ke(DelegatingMethodAccessorImpl.java:25)
16:25:37,437 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:3
24)
16:25:37,437 INFO [STDOUT] at org.jboss.mx.server.ReflectedDispatcher.dispa
tch(ReflectedDispatcher.java:60)
16:25:37,437 INFO [STDOUT] at org.jboss.mx.server.Invocation.dispatch(Invoc
ation.java:62)
16:25:37,437 INFO [STDOUT] at org.jboss.mx.server.Invocation.dispatch(Invoc
ation.java:54)
16:25:37,437 INFO [STDOUT] at org.jboss.mx.server.Invocation.invoke(Invocat
ion.java:82)
16:25:37,437 INFO [STDOUT] at org.jboss.mx.server.AbstractMBeanInvoker.invo
ke(AbstractMBeanInvoker.java:197)
16:25:37,453 INFO [STDOUT] at org.jboss.mx.server.MBeanServerImpl.invoke(MB
eanServerImpl.java:473)
16:25:37,453 INFO [STDOUT] at org.jboss.invocation.local.LocalInvoker.invok
e(LocalInvoker.java:97)
16:25:37,453 INFO [STDOUT] at org.jboss.invocation.InvokerInterceptor.invok
e(InvokerInterceptor.java:90)
16:25:37,453 INFO [STDOUT] at org.jboss.proxy.TransactionInterceptor.invoke
(TransactionInterceptor.java:46)
16:25:37,453 INFO [STDOUT] at org.jboss.proxy.SecurityInterceptor.invoke(Se
curityInterceptor.java:55)
16:25:37,453 INFO [STDOUT] at org.jboss.proxy.ejb.StatelessSessionIntercept
or.invoke(StatelessSessionInterceptor.java:100)
16:25:37,453 INFO [STDOUT] at org.jboss.proxy.ClientContainer.invoke(Client
Container.java:85)
16:25:37,453 INFO [STDOUT] at $Proxy146.loadProcessArchive(Unknown Source)
16:25:37,453 INFO [STDOUT] at com.collaxa.cube.engine.deployment.CubeProces
sMonitorWork.run(CubeProcessMonitorWork.java:129)
16:25:37,453 INFO [STDOUT] at oracle.tip.adapter.fw.jca.work.WorkerJob.go(W
orkerJob.java:51)
16:25:37,453 INFO [STDOUT] at oracle.tip.adapter.fw.common.ThreadPool.run(T
hreadPool.java:267)
16:25:37,453 INFO [STDOUT] at java.lang.Thread.run(Thread.java:534)
16:25:37,453 INFO [STDOUT] <2007-05-11 16:25:37,453> <ERROR> <default.collaxa.c
ube.engine.deployment> <CubeProcessMonitorWork::run> Error while loading process
archive E:\OraBPELPM\domains\default\deploy\bpel_AboutTest_1.0.jar
why?
thanks -
Javax.annotation.processing.Processor not recognized
Hi,
I'm currently experimenting with the javax.annotation.processing API. Thus I created a simple Annotation and a related simple processor.
Another sample program uses the annotation. When compiling this program everything works fine as long as I specify the processor class
on the command line. But when I try to simply use a javax.annotation.processing.Processor file, the compiler doesn't seem to find the processor.
What am I doing wrong?
Here come the details:
I use Java6 and the sun java compiler javac.
The annotation and processor class are packed into a JAR file together with the javax...Processor file. The JAR looks like this:
hello/HelloProcessor.class
hello/annotations/Hello.class
META-INF/services/javax.annotation.processing.Processor
META-INF/MANIFEST.MF The javax.annotation.processing.Processor file is UTF-8 encoded and contains a single line:
hello.HelloProcessorwithout the leading spaces.
My processor looks like this:
@SupportedAnnotationTypes (value = {"hello.annotations.Hello"})
public class HelloProcessor extends AbstractProcessor {
private int mCounter = 0;
/* (non-Javadoc)
* @see javax.annotation.processing.AbstractProcessor#process(java.util.Set, javax.annotation.processing.RoundEnvironment)
@Override
public boolean process(Set<? extends TypeElement> aAnnotations, RoundEnvironment aRoundEnv) {
Messager vMessager = processingEnv.getMessager();
vMessager.printMessage(Kind.NOTE, "Runde " + ++mCounter);
vMessager.printMessage(Kind.NOTE, "Hello World!");
return false;
}The following call works...
javac -processor hello.HelloProcessor -d bin -sourcepath src -cp lib/helloap.jar src/hello/examples/SimpleClass.javaand leads to the following output:
warning: No SupportedSourceVersion annotation found on hello.HelloProcessor, returning RELEASE_6.
Note: Runde 1
Note: Hello World!
Note: Runde 2
Note: Hello World! And this call does not seem to work:
javac -d bin -sourcepath src -cp lib/helloap.jar src/hello/examples/SimpleClass.javaas it does not produce any output.
And when I try to configure the processor in eclipse, the processor simply is not found, when I define the helloap.jar on the factory path.
I'd be happy about every hint.
Greetings
yawahIt sounds like your META-INF/services information is bad.
Outside of javac, I suggest trying to find your processor from its jar file using java.util.ServiceLoader.
I'd also try making sure your META-INF/services file ends with a newline character rather than just ends. -
Question about compile-time legality rules for cast conversion
Hi, In the rules which explain compile-time legality for cast conversion, it is often mentioned the following scenario in the cast conversion of a compile-time type S to a compile-time type T:
if S is a class type then:
if T is a class type then either |S| <: |T| or |T| <: |S| or a compile time error occurs. Furthermore, if there exist a supertype X of T and a supertype Y of S such that X and Y are provably distinct parameterized types and that the erasures of X and Y are the same, a compile-time error occurs.
As regards the quote in bold, I imagine the following scenario:
1) S <: T and extends Y
2) Y<T1...Tn>
3) X<T1..Tn>
4) T extends X
Does the above represents a supertype X of T and a supertype Y of S such that X and Y are provenly distinct parameterized types? If that holds, what does it mean that the erasure of X and Y is the same?Declarative programing has all but gone the way of
the doe doe because...
1: It is not flexible (It is extremely difficult to
change a complex system in a predetermined way)isn't this the "expert system" model?
2: It lengthens the development cycle (see item 1)
3: It normally forces the developer to add many
things to there code to get things to work, that have
nothing to do with the intent of the code.more things? the declarations or the declaration processing?
In its defense (I like a declarative model but, do
not like being forced into one)...not advocating a forced change in Java
1: It increases code safety.
2: It can shorten the development cycle, in certain
circumstances (especially if it is not overused),
because it can greatly increase the readability of
code.
3: It follows many best practices (although this is
also possible in a Non-Declarative model).as for best practices what I'd like to see are declarative design patterns, Adapter, Singleton, Factory, Delegate, Strategy, Interpreter, Proxy, Visitor
too often the design intent is lost in an implementation or design details can only be deduced by class/field/method names, comments, and accompanying docs
So, if everyone had unlimited time, and an unlimited
budget, yes declaritive is the way to go. Since that
is not the case, we filtered out 99% of what it gave
us, made sure the stuff that was getting in the way
was removed, and what do you have???
You guessed it OOA&D.
Now having said that should we be more declarative? I
think so, but I will tell you now, REQUIRING
declarative elements in code is a sure fire way to
get the majority of development groups to drop the
language (and I think Java as it stands currently CAN
be declarative, so if you have one of those unlimited
budgets, go for it!).no need to require it
I believe given good (reusable) declarative options, on top of OOP, will become the chosen approach
reusable design declarations would lessen overall cost and increase readability
Maybe you are looking for
-
PSE 7 and Window 7 (64 bit), are they compatible? Prefer not to upgrade yet. Thank You, Maggie Ephrom
-
My ipod screen wont slide to unlock and i have just reset it to factory settings, help!
my ipod screen wont slide to unlock and i have just reset it to factory settings, help!
-
hi i want to use ComplianceReport from wsus api. what shall i do? please guide me best regards
-
Don't Have PS CS6 Ruler Markings Below 1/8" - FIX?
I have always been able to see smaller ruler marking on the vertical and horizontal ruler in PS. Now in CS6 all I see, even when enlarging the window size or zooming in, is that the rulers in PS6 only show up to 1/8" markings .... and nothing smaller
-
The QuickTime plugin crashes when I enter Bluemountain .com and select an e-card. I have tried disabling plugins and still does it. plugin is up to date and so is FF