<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.modeldriven</groupId>
	<artifactId>fuml</artifactId>
	<packaging>jar</packaging>
	<name>FUML Reference Implementation</name>
	<version>1.2.2</version>
	<description>This open source software is a reference implementation, consisting of software and related files, for the OMG specification called the Semantics of a Foundational Subset for Executable UML Models (fUML). The reference implementation is intended to implement the execution semantics of UML activity models, accepting an XMI file from a conformant UML model as its input and providing an execution trace of the selected activity model(s) as its output. The core execution engine, which is directly generated from the normative syntactic and semantic models for fUML, may also be used as a library implementation of fUML in other software.</description>
	<url>http:/fuml.modeldriven.org</url>
	<licenses>
		<license>
			<name>FUML Reference Implementation License</name>
			<url>https://github.com/ModelDriven/fUML-Reference-Implementation/blob/master/org.modeldriven.fuml/Licensing-Information.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<scm>
		<url>https://github.com/ModelDriven/fUML-Reference-Implementation</url>
		<connection></connection>
	</scm>
	<developers>
		<developer>
			<id>eds</id>
			<name>Ed Seidewitz</name>
			<email>ed-s@modeldriven.com</email>
		</developer>
		<developer>
			<id>scinnamond</id>
			<name>Scott Cinnamond</name>
			<email>scinnamond@gmail.com</email>
		</developer>
	</developers>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<xjc.output.dir>${project.build.directory}/generated-sources/java</xjc.output.dir>
	</properties>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2</version>
		</dependency>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.1</version>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>2.11.0</version>
		</dependency>
		<dependency>
			<groupId>xalan</groupId>
			<artifactId>xalan</artifactId>
			<version>2.6.0</version>
			<exclusions>
				<exclusion>
					<artifactId>xml-apis</artifactId>
					<groupId>xml-apis</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.8</version>
		</dependency>
		<dependency>
			<groupId>stax-utils</groupId>
			<artifactId>stax-utils</artifactId>
			<version>snapshot-20040917</version>
		</dependency>
		<dependency>
			<groupId>com.sun.xml.stream</groupId>
			<artifactId>sjsxp</artifactId>
			<version>1.0.1</version>
		</dependency>
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<!-- <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> 
				<executions> <execution> <id>fuml-config</id> <phase>generate-sources</phase> 
				<goals> <goal>xjc</goal> </goals> <configuration> <schemaDirectory>${basedir}/src/main/resources/org/modeldriven/fuml/config</schemaDirectory> 
				<schemaFiles>FumlConfig.xsd</schemaFiles> <bindingDirectory>${basedir}/src/main/resources/org/modeldriven/fuml/config</bindingDirectory> 
				<bindingFiles>jaxb-bindings.xml</bindingFiles> <staleFile>${project.build.directory}/jaxb2/.xjcStaleFlag-fuml-config</staleFile> 
				</configuration> </execution> <execution> <id>repo-config</id> <phase>generate-sources</phase> 
				<goals> <goal>xjc</goal> </goals> <configuration> <schemaDirectory>${basedir}/src/main/resources/org/modeldriven/fuml/repository</schemaDirectory> 
				<schemaFiles>RepositoryConfig.xsd</schemaFiles> <bindingDirectory>${basedir}/src/main/resources/org/modeldriven/fuml/repository</bindingDirectory> 
				<bindingFiles>jaxb-bindings.xml</bindingFiles> <staleFile>${project.build.directory}/jaxb2/.xjcStaleFlag-repo-config</staleFile> 
				</configuration> </execution> </executions> <configuration> <!- - HACK: where 
				is 'generated-sources' defined ?? - -> <outputDirectory>${project.build.directory}/generated-sources/java</outputDirectory> 
				<clearOutputDir>false</clearOutputDir> <extension>true</extension> <target>2.0</target> 
				<encoding>Cp1252</encoding> </configuration> </plugin> -->
				<!-- jaxb2-maven-plugin does not work with latest version of java http://www.journaldev.com/1312/how-to-generate-java-classes-from-xsd-using-xjc-maven-plugin 
					http://mojo.codehaus.org/jaxb2-maven-plugin/ -->
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.7</version>
				<dependencies>
					<dependency>
						<groupId>sun.jdk</groupId>
						<artifactId>tools</artifactId>
						<version>1.5.0</version>
						<scope>system</scope>
						<systemPath>${java.home}/../lib/tools.jar</systemPath>
					</dependency>
				</dependencies>
				<executions>
					<execution>
						<id>fuml-config</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target>
								<mkdir dir="${xjc.output.dir}" />
								<exec executable="xjc">
									<arg
										line="-d ${xjc.output.dir}
                            -extension
                            -b ${basedir}/src/main/resources/org/modeldriven/fuml/config/jaxb-bindings.xml
                            ${basedir}/src/main/resources/org/modeldriven/fuml/config/FumlConfig.xsd" />
								</exec>
							</target>
						</configuration>
					</execution>
					<execution>
						<id>repo-config</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<target>
								<mkdir dir="${xjc.output.dir}" />
								<exec executable="xjc">
									<arg
										line="-d ${xjc.output.dir}
                            -extension
                            -b ${basedir}/src/main/resources/org/modeldriven/fuml/repository/jaxb-bindings.xml
                            ${basedir}/src/main/resources/org/modeldriven/fuml/repository/RepositoryConfig.xsd" />
								</exec>
							</target>
						</configuration>
					</execution>
					<execution>
						<id>generate-model-factories</id>
						<!-- use process-classes phase rather than generate-sources as have 
							a compile phase dependency on XSLTUtils -->
						<phase>generate-sources</phase>
						<configuration>
							<target name="generate-model-factories">
								<echo message="#### generate-model-factories ####" />
								<property name="compile_classpath" refid="maven.compile.classpath" />
								<property name="deps_classpath" refid="maven.dependency.classpath" />
								<path id="cp">
									<pathelement path="${compile_classpath}" />
								</path>
								<mkdir dir="${basedir}/target/classes" />
								<javac destdir="${basedir}/target/classes" debug="on">
									<classpath refid="cp" />
									<src path="${basedir}/src/main/java/org/modeldriven/fuml/common/xsl" />
								</javac>
								<java failonerror="yes" fork="yes"
									classname="org.modeldriven.fuml.common.xsl.XSLTUtils">
									<jvmarg
										value="-Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl" />
									<classpath refid="cp" />
									<arg
										value="${basedir}/target/generated-sources/java/org/modeldriven/fuml/repository/model/PrimitiveTypesAssembler.java" />
									<arg
										value="${basedir}/src/main/resources/org/modeldriven/fuml/repository/PrimitiveTypes.xmi" />
									<arg
										value="${basedir}/src/main/resources/org/modeldriven/fuml/repository/FumlModelGenerator.xsl" />
									<arg
										value="pkg=org.modeldriven.fuml.repository.model cls=PrimitiveTypesAssembler" />
								</java>
								<java failonerror="yes" fork="yes"
									classname="org.modeldriven.fuml.common.xsl.XSLTUtils">
									<jvmarg
										value="-Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl" />
									<classpath refid="cp" />
									<arg
										value="${basedir}/target/generated-sources/java/org/modeldriven/fuml/repository/model/InfrastructureAssembler.java" />
									<arg
										value="${basedir}/src/main/resources/org/modeldriven/fuml/repository/Infrastructure.xmi" />
									<arg
										value="${basedir}/src/main/resources/org/modeldriven/fuml/repository/FumlModelGenerator.xsl" />
									<arg
										value="pkg=org.modeldriven.fuml.repository.model cls=InfrastructureAssembler" />
								</java>
								<java failonerror="yes" fork="yes"
									classname="org.modeldriven.fuml.common.xsl.XSLTUtils">
									<jvmarg
										value="-Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl" />
									<classpath refid="cp" />
									<arg
										value="${basedir}/target/generated-sources/java/org/modeldriven/fuml/repository/model/SuperstructureAssembler.java" />
									<arg
										value="${basedir}/src/main/resources/org/modeldriven/fuml/repository/Superstructure.xmi" />
									<arg
										value="${basedir}/src/main/resources/org/modeldriven/fuml/repository/FumlModelGenerator.xsl" />
									<arg
										value="pkg=org.modeldriven.fuml.repository.model cls=SuperstructureAssembler" />
								</java>
								<java failonerror="yes" fork="yes"
									classname="org.modeldriven.fuml.common.xsl.XSLTUtils">
									<jvmarg
										value="-Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl" />
									<classpath refid="cp" />
									<arg
										value="${basedir}/target/generated-sources/java/org/modeldriven/fuml/repository/model/fUML_SyntaxAssembler.java" />
									<arg
										value="${basedir}/src/main/resources/org/modeldriven/fuml/repository/fUML_Syntax.xmi" />
									<arg
										value="${basedir}/src/main/resources/org/modeldriven/fuml/repository/FumlModelGenerator.xsl" />
									<arg
										value="pkg=org.modeldriven.fuml.repository.model cls=fUML_SyntaxAssembler" />
								</java>
							</target>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.1.2</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
					<execution>
						<id>attach-test-sources</id>
						<goals>
							<goal>test-jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.10.3</version>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
                            <additionalparam>-Xdoclint:none</additionalparam>
            			</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>1.7</version>
				<executions>
					<execution>
						<id>add-source-1</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>add-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>${xjc.output.dir}</source>
							</sources>
						</configuration>
					</execution>
					<execution>
						<id>add-source-2</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>add-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>${basedir}/target/generated-sources/java</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.10</version>
				<configuration>

					<argLine>-Dlog4j.configuration=log4j.properties</argLine>
					<argLine>-Dfuml.configuration=TestFumlConfig.xml</argLine>
					<!-- <argLine>-Dlog4j.configuration=log4j.properties -Xdebug -Xnoagent 
						-Xrunjdwp:transport=dt_socket,address=8002,server=y,suspend=y</argLine> -->

					<additionalClasspathElements>
						<additionalClasspathElement>${basedir}/src/main/resources</additionalClasspathElement>
						<additionalClasspathElement>${basedir}/src/test/resources</additionalClasspathElement>
					</additionalClasspathElements>
					<forkMode>always</forkMode> <!-- always for each test class (not every test 'pertest') -->


					<printSummary>true</printSummary>
					<redirectTestOutputToFile>false</redirectTestOutputToFile>
					<excludes>
						<exclude>**/load/profile/**</exclude> <!-- these are helper classes not tests and JUnit will try to run them if 
							not excluded -->
						<!-- <exclude>**/load/**</exclude> -->
						<exclude>**/load/*MagicDrawProfile*</exclude> <!-- needs work -->
						<!-- <exclude>**/builtin/*LoopNode*</exclude> -->
						<!-- <exclude>**/model/**</exclude> -->
						<!-- <exclude>**/builtin/**</exclude> -->
						<!-- <exclude>**/library/**</exclude> -->
						<!-- <exclude>**/validation/**</exclude> -->
					</excludes>
					<includes>
						<include>**/model/**</include>
						<include>**/load/**</include>
						<include>**/builtin/**</include>
						<include>**/library/**</include>
						<include>**/validation/**</include>
					</includes>

				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>2.18.1</version>
			</plugin>
			<!-- Produce ZIP with dependencies and samples. -->
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.2-beta-2</version>
				<executions>
					<execution>
						<id>assemble-zip</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<descriptors>
						<descriptor>maven-assembly-dist.xml</descriptor>
					</descriptors>
				</configuration>
			</plugin>
			<!-- Comment out the below GPG plugin if not set up with GPG and just 
				want to install local locally. -->
                
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>1.4</version>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
               
			<!-- Release Plugin (Update version in POM before/after release, create 
				tag, deploy) to try: mvn release:prepare -DdryRun=true && mvn release:clean 
				to perform: mvn release:prepare release:perform Read http://nexus.sonatype.org/oss-repository-hosting.html#3 
				for instructions on releasing to this project's Sonatype repository -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>2.4</version>
				<configuration>
					<!-- During release:perform, enable the "release" profile -->
					<releaseProfiles>release</releaseProfiles>
					<goals>deploy assembly:single</goals>
				</configuration>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings 
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-antrun-plugin
										</artifactId>
										<versionRange>[1.7,)</versionRange>
										<goals>
											<goal>run</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.codehaus.mojo</groupId>
										<artifactId>
											jaxb2-maven-plugin
										</artifactId>
										<versionRange>[1.4,)</versionRange>
										<goals>
											<goal>xjc</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.codehaus.mojo</groupId>
										<artifactId>
											build-helper-maven-plugin
										</artifactId>
										<versionRange>[1.7,)</versionRange>
										<goals>
											<goal>add-source</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.8.1</version>
			</plugin>
		</plugins>
	</reporting>
	<distributionManagement>
		<!-- My project's Sonatype repository to be used by the release plugin -->
		<repository>
			<id>sonatype-nexus-staging-and-release</id>
			<name>Nexus Staging Repository</name>
			<!-- giving a 400 error <url>https://oss.sonatype.org/content/groups/public</url> -->
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
		<snapshotRepository>
			<id>sonatype-nexus-snapshot</id>
			<name>Nexus Snapshot Repository</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>
	<!--repositories> <repository> <id>ibiblio.org</id> <name>ibiblio Mirror 
		of http://repo1.maven.org/maven2/</name> <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url> 
		</repository> </repositories -->
	<profiles>
		<profile>
			<id>release</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>                             
          
          
          
          
          
          
          
          
