On Fri, 7 Feb 2025 09:28:10 -0700, Arthur Naseef
<artnas...@apache.org> wrote:

| I'm trying to use CLion to work on the activemq-cpp sources, and finding it
| is only partially working.  The main thing that's missing is navigating
| symbols - for example, "find usages" and navigating from a base class to
| sub class methods just isn't working at all.
| 
| Looking for the Intellij equivalent of "project structure" but not finding
| it...
| 
| If anyone has tips, they would be appreciated.  I'm spoiled by Intellij for
| Java code.

I have never worked with CLion, sorry.  But I have used VSCode with
the sources, not particularly happily.

Activemq-cpp is a "how to pretend we're writing Java in C++" veritable
nightmare for anyone with even the remotest familiarity with C++ usage
and idioms.  OTOH, a seasoned Java programmer may find a lot of the
code less than mystifying - I don't know, having stopped doing Java
seriously long ago.  As a C++ person, I find the Javaisms annoying, to
say the least.

One very significant issue today is that with any modern C++ compiler
(i.e. C++17 onward), the source simply will not compile.  This is
because std:auto_ptr had been eliminated from the standard. In that
sense, the code base is woefully obsolete.  Even using C+11 or C++14
compilers, you will get a boatload of warnings.  This barrage is all
the worse because the code quite unnecessarily uses auto_ptrs to
instantiate local variables almost everywhere (see "Javaisms" above.) 

A global search-and-replace with std::unique_ptr (via, say, a Perl
one-liner) leaves only 6 warnings, 5 of which (IIRC) are due to an
unnecessary initialization of auto_ptr member variables in objects
(with NULL, which does not work with unique_ptr, so just deleting the
initialization eliminates the issue).  The remaining warning has to do
with a much deeper problem (again Java-think induced) involving
incomplete types (which unique_ptr is more careful about).  Strictly
speaking, the test itself is defective, with no good way to fix.

I posted about all this more than 4 years ago on this list:

https://lists.apache.org/thread/xzwsfb7b236ypr1qpfh2jx6o56b6zd53

Is there much hope in truly modernizing this code base?  E.g.,
removing the dependency on decaf and the APR library?  That was my aim
when I loaded the sources into VSCode.  My summary conclusion is that
any such effort will be major surgery, as the formidable labyrinth of
dependencies will need the patience of Job to untangle.  But if you're
up for it, then more power to you!

Good luck!
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@activemq.apache.org
For additional commands, e-mail: dev-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to