the GPD contains a perfectly suitable way to deploy processes and everything with it
It is actually in the jBPM webapp that this deployment happens. The GPD merely uploads a segmented stream (the *.par archive) to the server. The webapp uses the deployment servlet to do the actual deployment.
I have been searching for a long time to find out how to deploy in java a .par archive...
There are numerous sources,readily available, instructing how to deploy.
I posted to a recent thread at http://www.jboss.com/index.html?module=bb&op=viewtopic&t=85365 about how to programatically deploy a .par file. This example is in some of the test cases provided by the jBPM source. The sample webapp also has a servlet which will accept a .par file upload and will deploy that file.
The Starters guide in the wiki (http://wiki.jboss.org/wiki/Wiki.jsp?page=JbpmGettingStarted) has a section, "Deploy your process to JBoss jBPM".
And, it's also in the User Guide (http://docs.jboss.com/jbpm/v3/userguide/jpdl.html#theprocessarchive). True, the user guide is a bit 'stale', but it still lists the 3 possible ways of doing it.