RE: [Java-gnome-developer] Which libraries are used?
Brought to you by:
afcowie
From: Jeffrey M. <Jef...@Br...> - 2002-08-01 12:47:10
|
> > In about 14days a freind of my and i'll port java-gnome 0.7 > to windows. This is great news. I have started to look into this myself. Once you get started let's stay in close contact. I will be very interested in your progress. There are a few things you should consider. If you have checked cvs lately you will notice that there are a tremendous number of adds and updates taking place. This is because I am in the process of completely restructuring the java-gnome bindings. This restructuring is going to address three areas in the project that have needed significant work. They are (in order of importance): 1) Simplifying the public interface of the library. In the past the java-gnome public interface provided a one-for-one mapping to the methods of the native libraries. This was a bad design decision for two reasons. First, it made the libraries very large and difficult for a new developer to grasp. Second, the public interface did not feel very java-like. It did not leverage the existing classes from the JDK and did not follow the patterns that are common to java class libraries. In the simplified version currently under development the classes will still have access to all of the methods of the native libraries via protected methods in the classes. A public interface will be built on top of that to provide a robust class library. 2) Simplify the bindings themselves to make it easier for developers to contribute the project. Time and time again developers have joined the project only to find out how complex the project is and eventually leave the project altogether. If this project is to be a success I am going to need help. Most people that want to contribute come from a Java background and know little about C or even JNI. As a result I am restructuring the bindings by moving more of the code from the C/JNI layer up into the Java layer. In fact, the C/JNI layer and the Java methods that will provide access to them will be fixed and in place. All that will be necessary for most developers is to help design the public interface and write Java code that calls the native methods to implement that interface. Unless the native access layer changes (which I hope will not happen often) there will be no need for the majority of developers to even compile the native libs more than once. I have also added the files necessary to work in the eclipse IDE to cvs. Eclipse will work on Linux and Windows. If there is a Windows port of the bindings developers should be able to contribute from either platform. 3) Simplify the build process. When I first got started with java-gnome about two years ago I knew nothing about the GNU build tools. As the project grew I continued to hack my way through the build process and managed to create a "beast of burden". In this new version the generator will not be part of the build process. The new build will provide four targets. They will be jar, native, test, and all (the default). By default it will build all of the wrappers (libglade, libgladegnome, gtk, libgnome, and libgnomeui) but there will be configure options that will allow you to exclude parts of the bindings. The test target needs a little more explanation. I intend to build up a testing framework that will be based on JUnit to provide tests for all methods in the public interface. This will help us ensure that we are producing a quality product. So the next question is "Where am I in this process?". I have completed and checked into cvs the java and native code for glib, pango, atk, and gdk. I have not provided the public interface for these libs yet. I hope to check in the java and native code for gtk today and the same for gnome and glade tomorrow. Over the weekend I will complete the new build files. At that point I need to start writing the public interface and tests for the bindings. This will go much faster if I have help. I have started an object model that is in cvs. I would like to find somebody that would be willing to maintain this model. I think it would be very simple to compile the new version of the bindings on Windows. I have already downloaded the Windows version of GTK2 and the associated libraries with the intention of trying to get this to work. If you could do this that would be great. Once you complete the compilation of the native layer you could help with the definition and coding of the public interface. > We need to know the following things: > > 1.) Will it build with gtk1.3, which should be very identical to 1.2.7 I know it worked with 1.2.7. You should have no problems with this. > 2.) Wich Libraries are used by the bindings? I use the config programs (gtk-config for GTK1 or pkg-config for GTK2) to determine the necessary libraries for the native layer. Other than that I just use the JNI library that is provided by the JDK. > 3.) Is the code portable? -Or do we need cygwin and gcc to compile it? The code should be completely portable if the necessary glib/gtk/gnome libs are present. The JNI code is not platform specific. -Jeff |