In my humble opinion, you should split the problem into 2 smaller ones. At first, porting OpenGL C code to JOGL is straightforward most of the time, your very first attempts might be laborious but as time goes by, it will become almost painless as it mainly consists in using GL instances. You can use arrays at the beginning and when you become more comfortable with JOGL, you can always use NIO buffers. Then, you can take some time to switch from the fixed pipeline to the programmable pipeline.
If you try to do everything at the same time, you'll fail.