This post serves as a starting point for all discussions for people who want to be involved in the development of the plugin itself. Questions about how to set up a development environment and where to start coding will be answered here.
If someone is interested in helping out here, please write a reply to this post so I can see there is an interest in this and will then write all the explanations needed.
Here are the criteria:
- Good knowledge of OOP languages and design. As the "flat" Illustrator API is wrapped in a OOP structure, finding good design solutions is important. This is something that can allways be discussed on the forum here.
- Good knowledge of Java. This is the main language used behind the scene. Mechanisms for JavaScript wrapping are all in place, so adding a new prototype is mostly as easy as creating a new Java class.
- Knowledge of C / C++ and the Java JNI interface. This is used on the native side of the plugin. JNI is used as an interface to get Java to talk to the C methods. There are quite a few helper functions and scripts to facilitate wrapping of existing Illustrator suites, but sometimes things can become a bit complicated here. Maybe this will soon change to the easier CNI, when we are ready to switch to GCJ.
Basically you can allways start by checking out the code and setting up the development environment to be able to compile. I will write an explanation about how to do this soon.
Is there interest in expanding the interaction of scriptographer and Illusttrator control to other Java applications? The goal of providing JavaScript scripting through a Java JVM bridge is great, but there is a huge potential to tap this JVM connection for linking Illustrator to other Java applications.
In the past I created a native Illustrator plugin that spoke 'MathLink' and connected Illustrator to a local Wolfram Research Mathematica engine to generate dynamic Illustrator graphics.
I'd rather tap in to the JNI JVM classes you have written and speak to the Java classes to dynamically create and tag Illustrator graphics.
Is there a way to contribute and contrib to the Java side of the codebase at dev.scriptographer.com?
I can only seem to browse source and not see an easy way to SVN checkout to consider making contributions.
Thanks
Jeff
Hi Jeff,
This all sounds very interesting!
Yes, such a connection between two JVMs should be possible. You could either write a socket server and your own communication protocol or maybe use one of the RPC architectures available for Java. I'm not a specialist in that field, a bit of research about the available options should be done beforehand.
Since there was very little interest so to contribute to the codebase I have not put a document online yet as to how to access the SVN repository as a guest.
The code is located at:
https://svn.scriptographer.com/
And this gives you the latest revision in a folder called scriptographer:
svn co https://svn.scriptographer.com/trunk scriptographer
In order to be able to compile both the native and Java side of the codebase and get things running quickky a bit of setup work needs to be done. Are you working on Windows or Mac? I am happy to outline all the steps so you get there quickly.
I usually have a symbolic link from the Illustrator plugin folder to my debug build folder, and from there to the Java build folder as well, so the compiled binaries get picked up the next time I start Illustrator, or even straigt away when using Java hot swapping, without repackaging everything. On Windows I use little tool that allows to create NTFS junctions points to do the same.
So let's start like this and see where we get. Once you start making contributions I will review these and if all goes smooth I shall give you write access to the repository directly.
Thanks!
Jürg
Great info thanks!
Ill give this a shot on Mac for now since that is where I am running CS3, (haven't kept my Windows licenses up to date past Ill9)
Of course once I can get/create a connection at the JVM layer for the plugin, it wouldn't prohibit a connection from a Windows Java application either.
I agree, there are a few choices on protocols, and also some potential service discovery mechanisms like DNS-SD for the plugin to dynamically discover 'Java Illustrator content service providers' on the local machine or subnet.
Your wrapping of the ADM UI is also intriguing as the Java based connections could potentially include sending ADM UI descriptors for any interface dialogs that might be involved.
Thanks, Ill let you know what progress I can make,
Jeff
Getting up and running wasn't too bad, the build files and project files are pretty straightforward. I'm building from source and have my Debug project linked to my CS3 plugin directory running fine.
I'll need some time to read through the organization of how things are currently setup before deciding how I try hooking into the Java layers.
Thanks
Jeff
Any word on the new location of the source and how to get it checked out? I am interested in reviewing what you have to see how easy it would be to add some new functionality. Also any info on the build environment setup for Windows or Mac would be great. Don't need a full blown tutorial but rather what packages are needed, from whom, and what compiler you are using. Thanks.
- Mark