On Wed, 25 Feb 2009, Bill Janssen wrote:
Bill Janssen <jans...@parc.com> wrote:
I'm trying to wrap neo4j (http://neo4j.org/) with JCC (2.1, the latest checkout
from
Subversion).
I can't; it fails on org.neo4j.impl.core.RelationshipType
(http://api.neo4j.org/current/org/neo4j/api/core/RelationshipType.html):
This looks like a JCC bug to me. There are two interfaces in that
package, "Relationship", and "RelationshipType". I think it's
auto-generating a Python type called "RelationshipType" as part of the
definition of "Relationship", and that conflicts with the header file
for the Java interface "RelationshipType".
Indeed, there is a clash between JCC's suffixing things it generates with
'Type' and that class name. JCC should use something more rare, such as
'__Type', for example, or, better yet, allow a parameter to specify the
suffix. At least, it should be less hardcoded than now.
While the fix is relatively easy to implement, it requires a lot of edits.
I should have something tomorrow.
Andi..
Bill
% python -m jcc --shared --include jta-spec1_0_1.jar --include shell-1.0-b7.jar
--jar neo-1.0-b7.jar --python neo4j --version 1.0b7 --build
running build_ext
building 'neo4j._neo4j' extension
gcc -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd
-fno-common -dynamic -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DMACOSX
-I/usr/include/ffi -DENABLE_DTRACE -arch i386 -arch ppc -pipe -DPYTHON=1
-D_jcc_shared=1
-I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers
-Ibuild/_neo4j
-I/Library/UbiDocs/1.0/UpLib/lib/python2.5/site-packages/JCC-2.0-py2.5-macosx-10.5-i386.egg/jcc/sources
-I/System/Library/Frameworks/Python.framework/Versions/2.5/include/python2.5
-c build/_neo4j/__init__.cpp -o
build/temp.macosx-10.5-i386-2.5/build/_neo4j/__init__.o -fno-strict-aliasing
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for C/ObjC
but not for C++
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for C/ObjC
but not for C++
build/_neo4j/org/neo4j/api/core/RelationshipType.h:58: error: RelationshipType
does not name a type
build/_neo4j/org/neo4j/api/core/RelationshipType.h:59: error: expected , or ...
before & token
build/_neo4j/org/neo4j/api/core/RelationshipType.h:59: error: ISO C++ forbids
declaration of RelationshipType with no type
build/_neo4j/org/neo4j/api/core/RelationshipType.h:58: error: RelationshipType
does not name a type
build/_neo4j/org/neo4j/api/core/RelationshipType.h:59: error: expected , or ...
before & token
build/_neo4j/org/neo4j/api/core/RelationshipType.h:59: error: ISO C++ forbids
declaration of RelationshipType with no type
build/_neo4j/org/neo4j/impl/core/NodeManager.h:70: error: expected unqualified-id
before & token
build/_neo4j/org/neo4j/impl/core/NodeManager.h:70: error: expected , or ...
before & token
build/_neo4j/org/neo4j/impl/core/NodeManager.h:70: error: ISO C++ forbids
declaration of parameter with no type
build/_neo4j/org/neo4j/impl/core/NodeManager.h:70: error: expected unqualified-id
before & token
build/_neo4j/org/neo4j/impl/core/NodeManager.h:70: error: expected , or ...
before & token
build/_neo4j/org/neo4j/impl/core/NodeManager.h:70: error: ISO C++ forbids
declaration of parameter with no type
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:65: error:
type/value mismatch at argument 1 in template parameter list for template<class
T> struct JArray
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:65: error:
expected a type, got org::neo4j::api::core::RelationshipType
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:66: error:
type/value mismatch at argument 1 in template parameter list for template<class
T> struct JArray
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:66: error:
expected a type, got org::neo4j::api::core::RelationshipType
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:67: error:
expected unqualified-id before & token
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:67: error:
expected , or ... before & token
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:67: error: ISO
C++ forbids declaration of parameter with no type
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:68: error:
type/value mismatch at argument 1 in template parameter list for template<class
T> struct JArray
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:68: error:
expected a type, got org::neo4j::api::core::RelationshipType
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:65: error:
type/value mismatch at argument 1 in template parameter list for template<class
T> struct JArray
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:65: error:
expected a type, got org::neo4j::api::core::RelationshipType
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:66: error:
type/value mismatch at argument 1 in template parameter list for template<class
T> struct JArray
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:66: error:
expected a type, got org::neo4j::api::core::RelationshipType
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:67: error:
expected unqualified-id before & token
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:67: error:
expected , or ... before & token
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:67: error: ISO
C++ forbids declaration of parameter with no type
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:68: error:
type/value mismatch at argument 1 in template parameter list for template<class
T> struct JArray
build/_neo4j/org/neo4j/impl/traversal/InternalTraverserFactory.h:68: error:
expected a type, got org::neo4j::api::core::RelationshipType
lipo: can't open input file:
/var/folders/93/93RYKtvHFiuPAVMTC7iHI+++0T2/-Tmp-//ccs6iEvj.out (No such file
or directory)
error: command 'gcc' failed with exit status 1
%
I don't understand what's going wrong here...
Bill