Hello Nathaniel!
You have found a weakness in the loading mechanism and that is that it
relies on all the fact that all diagrams to be loaded are on the class path.
When you build as you describe the argouml.jar is created without including
them in the Class-Path:-entry in the manifest.
To fix, you can use the same function that we use when doing releases.
Build like this:
svn checkout
http://argouml.tigris.org/svn/argouml/releases/VERSION_0_28_1/<http://argouml.tigris.org/svn/argouml/releases/VERSION_0_28_1/src>
argouml
Apply the diff
Build with "./build.sh install" or "build.bat install" (in the
argouml directory).
Newly-built project appears in "argouml\build"
Include the modules on the class path in the argouml.jar using
"./build.sh update-argouml.jar-manifest" or "build.bat
update-argouml.jar-manifest".
The update-argouml.jar-manifest target adds all available modules to the
class path. When doing releases, all modules are first built, ending up in
argouml\build\ext and then the update-argouml.jar-manifest target is run to
create the argouml.jar that is distributed. This magic is located in
build.xml on the top level, a file that you didn't see when just checking
out src and tools.
To conclude, the problem is not with running in batch mode or commands. It
is in the way you start argouml without the correct class path.
If you don't want to use this magic you could set the classpath explicitly
to java or edit the manifest file in the argouml.jar file you have created
and add ext/argouml-diagrams-sequence.jar to the Class-Path: entry.
/Linus
On Mon, Apr 26, 2010 at 8:17 AM, Nathaniel Kofalt <[email protected]> wrote:
> Hello all!
>
> We use a custom ArgoUML build (currently of 0.28.1) - essentially
> just a minor change by "thn" (revision 17025, see link below) that makes
> it possible to save all graphics from the command-line. Combined with a
> simple commit script, and now we have a SVN repository of ArgoUML
> projects that automatically generate pictures of themselves into a
> folder, which gets served over Apache. This allows us to have a
> browser-viewable set of images always showing the latest revision of the
> UML. This is very convenient for our team, and our main reason for using
> ArgoUML.
>
> The command we use is pretty vanilla, just open the project and
> export all in batch mode (put in your own locations at the ... marks):
> java -jar ...argouml.jar -batch -command
> "org.argouml.uml.ui.ActionOpenProject=....example.zargo" -command
> "org.argouml.uml.ui.ActionSaveAllGraphics=..../exampleEmptyFolder"
>
> And this works perfectly in most cases. However, any project with a
> Sequence diagram causes this exception:
> org.argouml.persistence.OpenException:
> java.lang.ClassNotFoundException:
> org.argouml.sequence2.diagram.UMLSequenceDiagram
> (plus a lengthy stack traced, attached to this email).
>
> Replicating this error is pretty easy:
> svn checkout
> http://argouml.tigris.org/svn/argouml/releases/VERSION_0_28_1/src
> argouml/src --username guest
> svn checkout
> http://argouml.tigris.org/svn/argouml/releases/VERSION_0_28_1/tools
> argouml/tools --username guest
> Apply the diff linked below (one file), easy enough to do manually
> Build project with "argouml\src\argouml-build\build.sh" or
> similar "build.bat"
> Newly-built project appears in "argouml\src\argouml-build\build"
> Use the java command above on any ArgoUML project without a
> Sequence diagram to see it generate PNG images for each diagram
> Use the java command above on any ArgoUML project with a
> Sequence diagram to see it fail
>
> The diff link:
>
> http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/uml/ui/ActionSaveAllGraphics.java?view=diff&r1=17024&r2=17025&pathrev=17025&diff_format=l
>
> This seems strange, since presumably the only difference from the
> official releases is that tiny feature added (like 30 lines). To confuse
> matters, the class source it can't find
> (org.argouml.sequence2.diagram.UMLSequenceDiagram) clearly exists in the
> checkouts we build from (in the
>
> "argouml\src\argouml-core-diagrams-sequence2\src\org\argouml\sequence2\diagram"
> folder).
>
> For convenience I also attached the exact modified file,
> "argouml\src\argouml-app\src\org\argouml\uml\ui\ActionSaveAllGraphics.java"
> so you don't have to apply the diff manually. I am familiar with Java,
> but I'm confused since opening the project in GUI mode produces the same
> error, yet in the official builds I can open the project just fine. Am I
> doing some portion of the build process wrong?
>
> Any help is appreciated!
>
> Nathaniel Kofalt
>
> ------------------------------------------------------
>
> http://argouml.tigris.org/ds/viewMessage.do?dsForumId=449&dsMessageId=2595638
>
> To unsubscribe from this discussion, e-mail: [
> [email protected]].
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=449&dsMessageId=2599206
To unsubscribe from this discussion, e-mail:
[[email protected]].