EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: JCA problems and questions
From: "Chu, Paul" <[email protected]>
To: "Kasemir, Kay" <[email protected]>, Jack Smith <[email protected]>, Mark Rivers <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Wed, 24 Oct 2012 21:26:30 +0000
Kay gave a very clear explanation.  So, in short:

1. JCA: Java Channel Access with JNI (C/C++) under the hood -- you will need the file libjca.so or an equivalent one
2. CAJ: pure Java implementation (trying to replicate what the JNI library) -- you will need caj.jar

And, they both need jca.jar.

Among experts, some people also call JCA/JNI for 1 and JCA/CAJ for 2.

Paul

> -----Original Message-----
> From: [email protected] [mailto:tech-talk-
> [email protected]] On Behalf Of Kasemir, Kay
> Sent: Wednesday, October 24, 2012 5:01 PM
> To: Jack Smith; Mark Rivers
> Cc: [email protected]
> Subject: RE: JCA problems and questions
> 
> Hi:
> 
> I agree that it's confusing. Here's my understanding:
> 
> JCA is the Java library for interacting with Channel Access.
> It provides
> 1) The API for creating a channel, handling the connection, adding a
> subscription, receiving values, ...
> 2) An actual implementation for the API, based on invoking the C/C++
> Channel Access client library from EPICS 'base' via JNI, the Java native
> interface.
> 
> Any Java program that wants to interact with Channel Access needs part 1) of
> JCA. It's a bit like the "include" file of a C/C++ program.
> To actually work, you used to also need 2), which means: It's no longer pure
> Java. You must have the JNI library of JCA that was compiled for your
> operating system.
> 
> CAJ replaces part 2) of JCA with a pure Java implementation that works for
> everybody.
> 
> 
> To me,
> "JCA with JNI interface to Channel Access"
> and
> "JCA with CAJ"
> are the two basic alternatives that you have.
> Maybe there could be a better name for these.
> 
> Thanks,
> -Kay
> 
> 
> 
> ________________________________________
> From: [email protected] [[email protected]] On
> Behalf Of Jack Smith [[email protected]]
> Sent: Wednesday, October 24, 2012 4:18 PM
> To: Mark Rivers
> Cc: [email protected]
> Subject: Re: JCA problems and questions
> 
> Hi,
> 
> I always get confused and mess up the names of caj and jca. Could anyone
> provide a simple explanation of what they stand for and what are their
> differences so that jca/caj can be easily remembered, not easily messed up.
> Can someone rename them? Thanks,
> 



Replies:
Re: JCA problems and questions Jack Smith
References:
JCA problems and questions Mark Rivers
Re: JCA problems and questions Jack Smith
RE: JCA problems and questions Kasemir, Kay

Navigate by Date:
Prev: RE: JCA problems and questions Kasemir, Kay
Next: Re: what are your definitions of softIOC and soft record? Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: JCA problems and questions Kasemir, Kay
Next: Re: JCA problems and questions Jack Smith
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·