You can subscribe to this list here.
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(27) |
Jun
(63) |
Jul
(17) |
Aug
(58) |
Sep
(7) |
Oct
(9) |
Nov
(3) |
Dec
(9) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2013 |
Jan
(16) |
Feb
(5) |
Mar
(8) |
Apr
(3) |
May
(9) |
Jun
(7) |
Jul
(11) |
Aug
(1) |
Sep
(5) |
Oct
(33) |
Nov
(21) |
Dec
(32) |
2014 |
Jan
(8) |
Feb
(43) |
Mar
(36) |
Apr
(22) |
May
(69) |
Jun
(76) |
Jul
(66) |
Aug
(53) |
Sep
(39) |
Oct
(62) |
Nov
(28) |
Dec
(16) |
2015 |
Jan
(7) |
Feb
(2) |
Mar
(51) |
Apr
(97) |
May
(58) |
Jun
(20) |
Jul
(8) |
Aug
(5) |
Sep
(5) |
Oct
(27) |
Nov
(28) |
Dec
(43) |
2016 |
Jan
(17) |
Feb
(4) |
Mar
(12) |
Apr
(5) |
May
(15) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <nik...@us...> - 2016-05-13 09:45:27
|
Revision: 2513 http://sourceforge.net/p/jsbml/code/2513 Author: niko-rodrigue Date: 2016-05-13 09:45:25 +0000 (Fri, 13 May 2016) Log Message: ----------- added a todo in SBMLReader Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java Modified: trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java 2016-05-12 10:54:44 UTC (rev 2512) +++ trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java 2016-05-13 09:45:25 UTC (rev 2513) @@ -1119,7 +1119,7 @@ } if (attributeParser != null) { - attributeParser.processAttribute( + attributeParser.processAttribute( // TODO - return a boolean here to tell if the attribute was read or not ?? currentNode.getLocalPart(), attributeName.getLocalPart(), attribute.getValue(), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-12 10:54:46
|
Revision: 2512 http://sourceforge.net/p/jsbml/code/2512 Author: niko-rodrigue Date: 2016-05-12 10:54:44 +0000 (Thu, 12 May 2016) Log Message: ----------- removed the dependency to jsbml-distrib for jsbml-1.0 as it was not yet there Modified Paths: -------------- tags/jsbml-1.0/dev/maven/pom.xml Modified: tags/jsbml-1.0/dev/maven/pom.xml =================================================================== --- tags/jsbml-1.0/dev/maven/pom.xml 2016-05-12 10:11:04 UTC (rev 2511) +++ tags/jsbml-1.0/dev/maven/pom.xml 2016-05-12 10:54:44 UTC (rev 2512) @@ -110,11 +110,6 @@ </dependency> <dependency> <groupId>org.sbml.jsbml.ext</groupId> - <artifactId>jsbml-distrib</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.sbml.jsbml.ext</groupId> <artifactId>jsbml-dyn</artifactId> <version>${project.version}</version> </dependency> @@ -184,11 +179,6 @@ </dependency> <dependency> <groupId>org.sbml.jsbml.ext</groupId> - <artifactId>jsbml-distrib</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.sbml.jsbml.ext</groupId> <artifactId>jsbml-dyn</artifactId> <version>${project.version}</version> </dependency> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-12 10:11:06
|
Revision: 2511 http://sourceforge.net/p/jsbml/code/2511 Author: niko-rodrigue Date: 2016-05-12 10:11:04 +0000 (Thu, 12 May 2016) Log Message: ----------- added the generic jsbml info and the wagon-ssh configuration to the 1.0 and 1.1 'jsbml' pom file Modified Paths: -------------- tags/jsbml-1.0/dev/maven/pom.xml tags/jsbml-1.1/dev/maven/pom.xml Modified: tags/jsbml-1.0/dev/maven/pom.xml =================================================================== --- tags/jsbml-1.0/dev/maven/pom.xml 2016-05-12 09:59:03 UTC (rev 2510) +++ tags/jsbml-1.0/dev/maven/pom.xml 2016-05-12 10:11:04 UTC (rev 2511) @@ -30,12 +30,67 @@ <artifactId>jsbml</artifactId> <version>1.0</version> <packaging>jar</packaging> + <inceptionYear>2009</inceptionYear> + <description>JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams.</description> + <url>http://www.sbml.org/Software/JSBML</url> + <licenses> + <license> + <name>LGPL License</name> + <url>http://opensource.org/licenses/LGPL-2.1</url> + </license> + <license> + <name>Licensing and Distribution Terms for JSBML</name> + <url>http://sbml.org/Software/JSBML/License</url> + </license> + </licenses> + + <developers> + <developer> + <name>JSBML team</name> + <email>jsb...@ca...</email> + <organization>SBML Team</organization> + <organizationUrl>http://www.sbml.org</organizationUrl> + </developer> + </developers> + + <issueManagement> + <url>http://sourceforge.net/p/jsbml/bugs/</url> + <system>Sourceforge Tickets</system> + </issueManagement> + <mailingLists> + <mailingList> + <name>JSBML Team</name> + <post>jsb...@ca...</post> + </mailingList> + <mailingList> + <name>JSBML Development</name> + <post>jsb...@go...</post> + <archive>https://groups.google.com/forum/#!forum/jsbml-development</archive> + </mailingList> + </mailingLists> + + <scm> + <connection>scm:svn:http://svn.code.sf.net/p/jsbml/code/trunk</connection> + <developerConnection>scm:svn:https://use...@sv.../p/jsbml/code/trunk</developerConnection> + <url>https://sourceforge.net/p/jsbml/code/HEAD/tree/trunk/</url> + </scm> + <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> - + + <build> + <extensions> + <extension> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>2.10</version> + </extension> + </extensions> + </build> + <dependencyManagement> <dependencies> <dependency> Modified: tags/jsbml-1.1/dev/maven/pom.xml =================================================================== --- tags/jsbml-1.1/dev/maven/pom.xml 2016-05-12 09:59:03 UTC (rev 2510) +++ tags/jsbml-1.1/dev/maven/pom.xml 2016-05-12 10:11:04 UTC (rev 2511) @@ -30,12 +30,67 @@ <artifactId>jsbml</artifactId> <version>1.1</version> <packaging>jar</packaging> + <inceptionYear>2009</inceptionYear> + <description>JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams.</description> + <url>http://www.sbml.org/Software/JSBML</url> + <licenses> + <license> + <name>LGPL License</name> + <url>http://opensource.org/licenses/LGPL-2.1</url> + </license> + <license> + <name>Licensing and Distribution Terms for JSBML</name> + <url>http://sbml.org/Software/JSBML/License</url> + </license> + </licenses> + + <developers> + <developer> + <name>JSBML team</name> + <email>jsb...@ca...</email> + <organization>SBML Team</organization> + <organizationUrl>http://www.sbml.org</organizationUrl> + </developer> + </developers> + + <issueManagement> + <url>http://sourceforge.net/p/jsbml/bugs/</url> + <system>Sourceforge Tickets</system> + </issueManagement> + <mailingLists> + <mailingList> + <name>JSBML Team</name> + <post>jsb...@ca...</post> + </mailingList> + <mailingList> + <name>JSBML Development</name> + <post>jsb...@go...</post> + <archive>https://groups.google.com/forum/#!forum/jsbml-development</archive> + </mailingList> + </mailingLists> + + <scm> + <connection>scm:svn:http://svn.code.sf.net/p/jsbml/code/trunk</connection> + <developerConnection>scm:svn:https://use...@sv.../p/jsbml/code/trunk</developerConnection> + <url>https://sourceforge.net/p/jsbml/code/HEAD/tree/trunk/</url> + </scm> + <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> + <build> + <extensions> + <extension> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>2.10</version> + </extension> + </extensions> + </build> + <dependencyManagement> <dependencies> <dependency> @@ -185,23 +240,19 @@ </dependencies> <distributionManagement> - <repository> - <id>local-repo-deploy</id> - <name>Test Maven2 repository</name> - <url>file:///var/www/html/repo</url> - </repository> + <repository> + <id>jsbml-maven-repo-sf</id> + <name>JSBML Maven repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo</url> + </repository> + <snapshotRepository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 SNAPSHOT repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/snapshotRepository</url> + <id>jsbml-maven-repo-s-sf</id> + <name>JSBML Maven SNAPSHOT repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots</url> </snapshotRepository> + </distributionManagement> + - <!-- <repository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/releaseRepository</url> - </repository> - --> - </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-12 09:59:06
|
Revision: 2510 http://sourceforge.net/p/jsbml/code/2510 Author: niko-rodrigue Date: 2016-05-12 09:59:03 +0000 (Thu, 12 May 2016) Log Message: ----------- added pom file and jar to be able to deploy jsbml-0.8 the same way as we did for 1.0 and 1.1 Added Paths: ----------- branches/jsbml-0.8/dev/ branches/jsbml-0.8/dev/maven/ branches/jsbml-0.8/dev/maven/README branches/jsbml-0.8/dev/maven/jsbml-0.8.jar branches/jsbml-0.8/dev/maven/pom.xml Added: branches/jsbml-0.8/dev/maven/README =================================================================== --- branches/jsbml-0.8/dev/maven/README (rev 0) +++ branches/jsbml-0.8/dev/maven/README 2016-05-12 09:59:03 UTC (rev 2510) @@ -0,0 +1,7 @@ + +To deploy to a maven repository, you can use the following command: + +mvn deploy:deploy-file -DpomFile=./pom.xml -Dfile=./jsbml-0.8.jar -Durl=scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo -DrepositoryId=jsbml-maven-repo-sf + +You can adapt the url or repositoryId parameters for your needs but the rest should stay the same. + Added: branches/jsbml-0.8/dev/maven/jsbml-0.8.jar =================================================================== (Binary files differ) Index: branches/jsbml-0.8/dev/maven/jsbml-0.8.jar =================================================================== --- branches/jsbml-0.8/dev/maven/jsbml-0.8.jar 2016-05-11 15:22:49 UTC (rev 2509) +++ branches/jsbml-0.8/dev/maven/jsbml-0.8.jar 2016-05-12 09:59:03 UTC (rev 2510) Property changes on: branches/jsbml-0.8/dev/maven/jsbml-0.8.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: branches/jsbml-0.8/dev/maven/pom.xml =================================================================== --- branches/jsbml-0.8/dev/maven/pom.xml (rev 0) +++ branches/jsbml-0.8/dev/maven/pom.xml 2016-05-12 09:59:03 UTC (rev 2510) @@ -0,0 +1,182 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id$ + $URL$ + + This file is part of JSBML. Please visit http://sbml.org/Software/JSBML + for the latest version of JSBML and more information about SBML. + + Copyright (C) 2009-2016 jointly by the following organizations: + 1. The University of Tuebingen, Germany + 2. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK + 3. The California Institute of Technology, Pasadena, CA, USA + 4. The University of California, San Diego, La Jolla, CA, USA + 5. The Babraham Institute, Cambridge, UK + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation. A copy of the license agreement is provided + in the file named "LICENSE.txt" included with this software distribution + and also available online as http://sbml.org/Software/JSBML/License. + + Version: $Rev$ +--> +<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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.sbml.jsbml</groupId> + <artifactId>jsbml</artifactId> + <version>0.8</version> + <packaging>jar</packaging> + <inceptionYear>2009</inceptionYear> + <description>JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams.</description> + <url>http://www.sbml.org/Software/JSBML</url> + + <licenses> + <license> + <name>LGPL License</name> + <url>http://opensource.org/licenses/LGPL-2.1</url> + </license> + <license> + <name>Licensing and Distribution Terms for JSBML</name> + <url>http://sbml.org/Software/JSBML/License</url> + </license> + </licenses> + + <developers> + <developer> + <name>JSBML team</name> + <email>jsb...@ca...</email> + <organization>SBML Team</organization> + <organizationUrl>http://www.sbml.org</organizationUrl> + </developer> + </developers> + + <issueManagement> + <url>http://sourceforge.net/p/jsbml/bugs/</url> + <system>Sourceforge Tickets</system> + </issueManagement> + <mailingLists> + <mailingList> + <name>JSBML Team</name> + <post>jsb...@ca...</post> + </mailingList> + <mailingList> + <name>JSBML Development</name> + <post>jsb...@go...</post> + <archive>https://groups.google.com/forum/#!forum/jsbml-development</archive> + </mailingList> + </mailingLists> + + <scm> + <connection>scm:svn:http://svn.code.sf.net/p/jsbml/code/trunk</connection> + <developerConnection>scm:svn:https://use...@sv.../p/jsbml/code/trunk</developerConnection> + <url>https://sourceforge.net/p/jsbml/code/HEAD/tree/trunk/</url> + </scm> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + </properties> + + <build> + + <sourceDirectory>src</sourceDirectory> + <testSourceDirectory>test</testSourceDirectory> + <resources> + <resource> + <directory>resources</directory> + </resource> + </resources> + <testResources> + <testResource> + <directory>test</directory> + </testResource> + </testResources> + + <extensions> + <extension> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>2.10</version> + </extension> + </extensions> + + </build> + + + <repositories> + <repository> + <id>biojava-maven-repo</id> + <name>BioJava repository</name> + <url>https://github.com/biojava/maven-repo/raw/master/</url> + </repository> + </repositories> + + <dependencies> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.8</version> + </dependency> + <dependency> + <groupId>org.codehaus.woodstox</groupId> + <artifactId>woodstox-core-lgpl</artifactId> + <version>4.0.9</version> + </dependency> + <dependency> + <groupId>org.w3c.jigsaw</groupId> + <artifactId>jigsaw</artifactId> + <version>2.2.6</version> + </dependency> + <dependency> + <groupId>org.biojava</groupId> + <artifactId>core</artifactId> + <version>1.8.1</version> + </dependency> + <!-- + <dependency> + <groupId>org.biojava</groupId> + <artifactId>biojava3-core</artifactId> + <version>3.0.1</version> + </dependency> + --> + <dependency> + <groupId>com.thoughtworks.xstream</groupId> + <artifactId>xstream</artifactId> + <version>1.3.1</version> + <type>jar</type> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.codehaus.staxmate</groupId> + <artifactId>staxmate</artifactId> + <version>2.0.0</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8</version> + <type>jar</type> + <scope>test</scope> + </dependency> + </dependencies> + + <distributionManagement> + + <repository> + <id>jsbml-maven-repo-sf</id> + <name>JSBML Maven repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo</url> + </repository> + + <snapshotRepository> + <id>jsbml-maven-repo-s-sf</id> + <name>JSBML Maven SNAPSHOT repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots</url> + </snapshotRepository> + </distributionManagement> + +</project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-11 15:22:51
|
Revision: 2509 http://sourceforge.net/p/jsbml/code/2509 Author: niko-rodrigue Date: 2016-05-11 15:22:49 +0000 (Wed, 11 May 2016) Log Message: ----------- cleaned the modules pom file + updated ebi repo urls now that scp work fine Modified Paths: -------------- trunk/modules/pom.xml trunk/pom.xml Modified: trunk/modules/pom.xml =================================================================== --- trunk/modules/pom.xml 2016-05-11 15:02:19 UTC (rev 2508) +++ trunk/modules/pom.xml 2016-05-11 15:22:49 UTC (rev 2509) @@ -38,38 +38,19 @@ </parent> <build> - <sourceDirectory>${basedir}/src/</sourceDirectory> - - <testSourceDirectory>${basedir}/test/</testSourceDirectory> - - <resources> - <resource> - <directory>${basedir}/resources/</directory> - </resource> - </resources> + <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>2.5</version> + <version>2.19.1</version> <configuration> <skipTests>true</skipTests> - <systemPropertyVariables> - <user.dir>${basedir}/../../</user.dir> - </systemPropertyVariables> </configuration> </plugin> </plugins> </build> - <repositories> - <repository> - <id>arbitrary</id> - <name>JSBML Maven Repository Test</name> - <url>http://jsbmlmavenrepotest.sourceforge.net/repo/</url> - </repository> - </repositories> - <dependencies> <dependency> <groupId>org.sbml.jsbml</groupId> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2016-05-11 15:02:19 UTC (rev 2508) +++ trunk/pom.xml 2016-05-11 15:22:49 UTC (rev 2509) @@ -251,22 +251,15 @@ <repository> <id>ebi-maven-repo</id> <name>EBI Maven Repository</name> - <url>file:///homes/maven/public_html/m2repo</url> + <url>scp://ebi-001.ebi.ac.uk/homes/maven/public_html/m2repo</url> </repository> <snapshotRepository> <id>ebi-maven-repo-s</id> <name>EBI Maven Repository</name> - <url>file:///homes/maven/public_html/m2repo_snapshots/</url> + <url>scp://ebi-001.ebi.ac.uk/homes/maven/public_html/m2repo_snapshots/</url> </snapshotRepository> - or (but scp does not seem to work well) - - <repository> - <id>ebi-maven-repo</id> - <name>EBI Maven Repository</name> - <url>scp://ebi-001.ebi.ac.uk/homes/maven/public_html/m2repo</url> - </repository> --> <!-- @@ -284,6 +277,8 @@ <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots</url> </snapshotRepository> +jsbml maven repo test: replace jsbml by jsbmlmavenrepotest in the urls + --> </distributionManagement> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-11 15:02:21
|
Revision: 2508 http://sourceforge.net/p/jsbml/code/2508 Author: niko-rodrigue Date: 2016-05-11 15:02:19 +0000 (Wed, 11 May 2016) Log Message: ----------- making sure the jsbml-1.1 maven pom files are compiled with the jdk 1.6 as target Modified Paths: -------------- tags/jsbml-1.1/core/pom.xml tags/jsbml-1.1/pom.xml Modified: tags/jsbml-1.1/core/pom.xml =================================================================== --- tags/jsbml-1.1/core/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) +++ tags/jsbml-1.1/core/pom.xml 2016-05-11 15:02:19 UTC (rev 2508) @@ -33,55 +33,24 @@ <version>1.1</version> <relativePath>../</relativePath> </parent> - <!-- - <scm> - <connection>scm:svn:http://127.0.0.1/dummy</connection> - <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection> - <tag>HEAD</tag> - <url>http://127.0.0.1/dummy</url> - </scm> - --> <build> - - <directory>dist</directory> - <outputDirectory>dist/classes</outputDirectory> - <finalName>${project.artifactId}-${project.version}</finalName> - <testOutputDirectory>dist/test-classes</testOutputDirectory> - <sourceDirectory>src</sourceDirectory> - <scriptSourceDirectory>scripts</scriptSourceDirectory> - <testSourceDirectory>test</testSourceDirectory> - <resources> - <resource> - <directory>resources</directory> - </resource> - </resources> - <testResources> - <testResource> - <directory>test</directory> - </testResource> - </testResources> - - <extensions> - <extension> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ssh</artifactId> - <version>2.4</version> - </extension> - </extensions> - - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <groups>deployment,deployment-validation,jar-deployment</groups> - <skipTests>true</skipTests> - <testFailureIgnore>false</testFailureIgnore> - <argLine>-Dfile.encoding=UTF-8 -DDATA_FOLDER=${project.basedir}/test/org/sbml/jsbml/xml/test/data/ -ea</argLine> - </configuration> - </plugin> - </plugins> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> + <configuration> + <!-- <groups>deployment,deployment-validation,jar-deployment</groups> --> + <!-- <skipTests>true</skipTests> --> + <testFailureIgnore>false</testFailureIgnore> + <argLine>-Dfile.encoding=UTF-8 -ea</argLine> + <includes> + <include>Tests.java</include> + </includes> + </configuration> + </plugin> + </plugins> </build> <repositories> Modified: tags/jsbml-1.1/pom.xml =================================================================== --- tags/jsbml-1.1/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) +++ tags/jsbml-1.1/pom.xml 2016-05-11 15:02:19 UTC (rev 2508) @@ -81,6 +81,8 @@ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <jsbml.version>${project.version}</jsbml.version> + <jsbml.build.javac.source>1.6</jsbml.build.javac.source> + <jsbml.build.javac.target>1.6</jsbml.build.javac.target> </properties> <build> @@ -89,20 +91,20 @@ <testSourceDirectory>test</testSourceDirectory> <resources> <resource> - <directory>resources</directory> + <directory>resources</directory> </resource> </resources> <testResources> <testResource> - <directory>test</directory> + <directory>test</directory> </testResource> </testResources> <extensions> <extension> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ssh</artifactId> - <version>2.4</version> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>2.10</version> </extension> </extensions> @@ -129,9 +131,18 @@ </executions> </plugin> --> - <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.5.1</version> + <configuration> + <source>${jsbml.build.javac.source}</source> + <target>${jsbml.build.javac.target}</target> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.10.3</version> <configuration> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-11 14:11:06
|
Revision: 2507 http://sourceforge.net/p/jsbml/code/2507 Author: niko-rodrigue Date: 2016-05-11 14:11:04 +0000 (Wed, 11 May 2016) Log Message: ----------- updated the jsbml-1.0 pom files to be able to deploy it using the same artifact ids as 1.1 Modified Paths: -------------- tags/jsbml-1.0/build.xml tags/jsbml-1.0/core/pom.xml tags/jsbml-1.0/extensions/arrays/pom.xml tags/jsbml-1.0/extensions/comp/pom.xml tags/jsbml-1.0/extensions/fbc/pom.xml tags/jsbml-1.0/extensions/groups/pom.xml tags/jsbml-1.0/extensions/layout/pom.xml tags/jsbml-1.0/extensions/multi/pom.xml tags/jsbml-1.0/extensions/pom.xml tags/jsbml-1.0/extensions/qual/pom.xml tags/jsbml-1.0/extensions/render/pom.xml tags/jsbml-1.0/extensions/spatial/pom.xml tags/jsbml-1.0/modules/pom.xml tags/jsbml-1.0/modules/tidy/pom.xml tags/jsbml-1.0/pom.xml Added Paths: ----------- tags/jsbml-1.0/dev/maven/ tags/jsbml-1.0/dev/maven/jsbml-pom.jar tags/jsbml-1.0/dev/maven/pom.xml tags/jsbml-1.0/extensions/dyn/pom.xml tags/jsbml-1.0/extensions/req/pom.xml Modified: tags/jsbml-1.0/build.xml =================================================================== --- tags/jsbml-1.0/build.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/build.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -97,6 +97,12 @@ <property name="core.base.dir" value="${basedir}/core" /> <property name="package.names" value="arrays comp dyn fbc groups layout multi qual render req spatial" /> + <!-- don't commit the repo url for releases to avoid messing it up as much as possible --> + <property name="maven.repo.url" value="scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo"/> + <!-- local test instance url file:///homes/maven/public_html/m2repo + sf repo url scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots + --> + <filter token="year" value="${year}" /> <filter token="version" value="${version}" /> <filter token="date" value="${TODAY}" /> @@ -613,8 +619,57 @@ </target> + <!-- =================================================================== --> + <!-- Install jsbml in the local repo --> + <!-- =================================================================== --> + <target + name="maven-install" + description="Install jsbml localy" + depends="init" + > + <exec executable="mvn"> + <arg value="javadoc:jar"/> + <arg value="source:jar"/> + <arg value="install"/> + </exec> + <!-- TODO - add the jsbml artifact as well ? + --> + + </target> + <!-- =================================================================== --> + <!-- Deploy jsbml in a remote repo --> + <!-- =================================================================== --> + <target + name="maven-deploy" + description="Deploy jsbml remotely" + depends="init" + > + <!-- mvn javadoc:jar source:jar deploy + --> + <exec executable="mvn"> + <arg value="javadoc:jar"/> + <arg value="source:jar"/> + <arg value="deploy"/> + </exec> + + <!-- deploy a pseudo jar file to be able to have all dependencies defined in one go ? --> + <!-- mvn deploy:deploy-file -DpomFile=./dev/maven/pom.xml -Dfile=./dev/maven/jsbml-pom.jar --> + + <exec executable="mvn"> + <arg value="deploy:deploy-file"/> + <arg value="-DpomFile=./dev/maven/pom.xml"/> + <arg value="-Dfile=./dev/maven/jsbml-pom.jar"/> + <arg value="-Durl=${maven.repo.url}"/> + <arg value="-DrepositoryId=jsbml-maven-repo-sf"/> + </exec> + + <!-- mvn test jar:test-jar to generate the test jar files to be able to run the tests in a new project --> + + </target> + + <!-- =================================================================== --> <!-- Cleans everything --> <!-- =================================================================== --> <target Modified: tags/jsbml-1.0/core/pom.xml =================================================================== --- tags/jsbml-1.0/core/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/core/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -24,8 +24,7 @@ <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.sbml.jsbml</groupId> - <artifactId>core</artifactId> - <version>1.0</version> + <artifactId>jsbml-core</artifactId> <description>JSBML</description> <packaging>jar</packaging> @@ -35,71 +34,41 @@ <version>1.0</version> <relativePath>../</relativePath> </parent> - <!-- - <scm> - <connection>scm:svn:http://127.0.0.1/dummy</connection> - <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection> - <tag>HEAD</tag> - <url>http://127.0.0.1/dummy</url> - </scm> - --> - <build> - - <directory>dist</directory> - <outputDirectory>dist/classes</outputDirectory> - <finalName>${project.artifactId}-${project.version}</finalName> - <testOutputDirectory>dist/test-classes</testOutputDirectory> - <sourceDirectory>src</sourceDirectory> - <scriptSourceDirectory>scripts</scriptSourceDirectory> - <testSourceDirectory>test</testSourceDirectory> - <resources> - <resource> - <directory>resources</directory> - </resource> - </resources> - <testResources> - <testResource> - <directory>test</directory> - </testResource> - </testResources> - - <extensions> - <extension> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ssh</artifactId> - <version>2.4</version> - </extension> - </extensions> - - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <groups>deployment,deployment-validation,jar-deployment</groups> - <skipTests>true</skipTests> - <testFailureIgnore>false</testFailureIgnore> - <argLine>-Dfile.encoding=UTF-8 -DDATA_FOLDER=${project.basedir}/test/org/sbml/jsbml/xml/test/data/ -ea</argLine> - </configuration> - </plugin> - </plugins> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> + <configuration> + <!-- <groups>deployment,deployment-validation,jar-deployment</groups> --> + <!-- <skipTests>true</skipTests> --> + <testFailureIgnore>false</testFailureIgnore> + <argLine>-Dfile.encoding=UTF-8 -ea</argLine> + <includes> + <include>Tests.java</include> + </includes> + </configuration> + </plugin> + </plugins> + </build> <repositories> - <repository> - <id>biojava-maven-repo</id> - <name>BioJava repository</name> - <url>https://github.com/biojava/maven-repo/raw/master/</url> - </repository> - <repository> - <id>ebi-repo</id> - <name>The EBI internal repository</name> - <url>http://www.ebi.ac.uk/~maven/m2repo</url> - <snapshots> - <enabled>false</enabled> - </snapshots> - </repository> + <repository> + <id>biojava-maven-repo</id> + <name>BioJava repository</name> + <url>https://github.com/biojava/maven-repo/raw/master/</url> + </repository> + <repository> + <id>ebi-repo</id> + <name>The EBI internal repository</name> + <url>http://www.ebi.ac.uk/~maven/m2repo</url> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> </repositories> <dependencies> @@ -123,14 +92,7 @@ <artifactId>biojava3-ontology</artifactId> <version>3.1.0</version> </dependency> - <!-- <dependency> - <groupId>org.biojava</groupId> - <artifactId>biojava3-core</artifactId> - <version>3.0.1</version> - </dependency> - --> - <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.3.1</version> @@ -165,18 +127,5 @@ <version>0.2.4</version> </dependency> </dependencies> - - <distributionManagement> - <repository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/releaseRepository</url> - </repository> - <snapshotRepository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 SNAPSHOT repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/snapshotRepository</url> - </snapshotRepository> - </distributionManagement> - + </project> Added: tags/jsbml-1.0/dev/maven/jsbml-pom.jar =================================================================== (Binary files differ) Index: tags/jsbml-1.0/dev/maven/jsbml-pom.jar =================================================================== --- tags/jsbml-1.0/dev/maven/jsbml-pom.jar 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/dev/maven/jsbml-pom.jar 2016-05-11 14:11:04 UTC (rev 2507) Property changes on: tags/jsbml-1.0/dev/maven/jsbml-pom.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: tags/jsbml-1.0/dev/maven/pom.xml =================================================================== --- tags/jsbml-1.0/dev/maven/pom.xml (rev 0) +++ tags/jsbml-1.0/dev/maven/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -0,0 +1,187 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id: pom.xml 2394 2015-11-09 14:31:49Z niko-rodrigue $ + $URL: svn+ssh://nik...@sv.../p/jsbml/code/trunk/pom.xml $ + + This file is part of JSBML. Please visit http://sbml.org/Software/JSBML + for the latest version of JSBML and more information about SBML. + + Copyright (C) 2009-2015 jointly by the following organizations: + 1. The University of Tuebingen, Germany + 2. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK + 3. The California Institute of Technology, Pasadena, CA, USA + 4. The University of California, San Diego, La Jolla, CA, USA + 5. The Babraham Institute, Cambridge, UK + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation. A copy of the license agreement is provided + in the file named "LICENSE.txt" included with this software distribution + and also available online as http://sbml.org/Software/JSBML/License. + + Version: $Rev: 2394 $ +--> +<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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.sbml.jsbml</groupId> + <artifactId>jsbml</artifactId> + <version>1.0</version> + <packaging>jar</packaging> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + </properties> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.sbml.jsbml</groupId> + <artifactId>jsbml-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-arrays</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-comp</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-distrib</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-dyn</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-fbc</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-groups</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-layout</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-multi</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-qual</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-render</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-req</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-spatial</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.modules</groupId> + <artifactId>jsbml-tidy</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>org.sbml.jsbml</groupId> + <artifactId>jsbml-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-arrays</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-comp</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-distrib</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-dyn</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-fbc</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-groups</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-layout</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-multi</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-qual</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-render</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-req</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-spatial</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.sbml.jsbml.modules</groupId> + <artifactId>jsbml-tidy</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + +</project> Modified: tags/jsbml-1.0/extensions/arrays/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/arrays/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/arrays/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,12 +28,37 @@ <parent> <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <groupId>org.sbml.jsbml.ext.arrays</groupId> - <artifactId>jsbml_ext_arrays</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-arrays</artifactId> <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-comp</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> + <configuration> + <skipTests>true</skipTests> + <testFailureIgnore>false</testFailureIgnore> + <argLine>-Dfile.encoding=UTF-8 -ea</argLine> + <includes> + <include>ArraysJUnitTests.java</include> + </includes> + </configuration> + </plugin> + </plugins> + </build> </project> Modified: tags/jsbml-1.0/extensions/comp/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/comp/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/comp/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,12 +28,11 @@ <parent> <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <groupId>org.sbml.jsbml.ext.comp</groupId> - <artifactId>jsbml_ext_comp</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-comp</artifactId> <packaging>jar</packaging> </project> Added: tags/jsbml-1.0/extensions/dyn/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/dyn/pom.xml (rev 0) +++ tags/jsbml-1.0/extensions/dyn/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id$ + $URL$ + + This file is part of JSBML. Please visit http://sbml.org/Software/JSBML + for the latest version of JSBML and more information about SBML. + + Copyright (C) 2009-2016 jointly by the following organizations: + 1. The University of Tuebingen, Germany + 2. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK + 3. The California Institute of Technology, Pasadena, CA, USA + 4. The University of California, San Diego, La Jolla, CA, USA + 5. The Babraham Institute, Cambridge, UK + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation. A copy of the license agreement is provided + in the file named "LICENSE.txt" included with this software distribution + and also available online as http://sbml.org/Software/JSBML/License. + + Version: $Rev$ +--> +<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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>ext</artifactId> + <version>1.0</version> + <relativePath>../</relativePath> + </parent> + + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-dyn</artifactId> + <packaging>jar</packaging> +</project> Modified: tags/jsbml-1.0/extensions/fbc/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/fbc/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/fbc/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,12 +28,29 @@ <parent> <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <groupId>org.sbml.jsbml.ext.fbc</groupId> - <artifactId>jsbml_ext_fbc</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-fbc</artifactId> <packaging>jar</packaging> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> + <configuration> + <testFailureIgnore>false</testFailureIgnore> + <argLine>-Dfile.encoding=UTF-8 -ea</argLine> + <includes> + <include>FBCTests.java</include> + </includes> + </configuration> + </plugin> + </plugins> + </build> + </project> Modified: tags/jsbml-1.0/extensions/groups/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/groups/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/groups/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,12 +28,11 @@ <parent> <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <groupId>org.sbml.jsbml.ext.groups</groupId> - <artifactId>jsbml_ext_groups</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-groups</artifactId> <packaging>jar</packaging> </project> Modified: tags/jsbml-1.0/extensions/layout/pom.xml =================================================================== (Binary files differ) Modified: tags/jsbml-1.0/extensions/multi/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/multi/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/multi/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,12 +28,11 @@ <parent> <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <groupId>org.sbml.jsbml.ext.multi</groupId> - <artifactId>jsbml_ext_multi</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-multi</artifactId> <packaging>jar</packaging> </project> Modified: tags/jsbml-1.0/extensions/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,63 +28,40 @@ <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <parent> - <groupId>org.sbml.jsbml</groupId> - <artifactId>jsbml-parent</artifactId> - <version>1.0-SNAPSHOT</version> - <relativePath>../</relativePath> + <groupId>org.sbml.jsbml</groupId> + <artifactId>jsbml-parent</artifactId> + <version>1.0</version> + <relativePath>../</relativePath> </parent> - - <build> - <sourceDirectory>${basedir}/src/</sourceDirectory> - <!-- - <testSourceDirectory>${basedir}/test/</testSourceDirectory> - --> - <resources> - <resource> - <directory>${basedir}/resources/</directory> - </resource> - </resources> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>2.5</version> - <configuration> - <skipTests>true</skipTests> - <systemPropertyVariables> - <user.dir>${basedir}/../../</user.dir> - </systemPropertyVariables> - </configuration> - </plugin> - </plugins> - </build> - + <dependencies> - <dependency> - <groupId>org.sbml.jsbml.core</groupId> - <artifactId>jsbml_core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.10</version> - <scope>test</scope> - </dependency> + <dependency> + <groupId>org.sbml.jsbml</groupId> + <artifactId>jsbml-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.10</version> + <scope>test</scope> + </dependency> </dependencies> - + <modules> + <module>arrays</module> <module>comp</module> + <module>dyn</module> <module>fbc</module> <module>groups</module> <module>layout</module> <module>multi</module> <module>qual</module> <module>render</module> + <module>req</module> <module>spatial</module> </modules> Modified: tags/jsbml-1.0/extensions/qual/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/qual/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/qual/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,12 +28,11 @@ <parent> <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <groupId>org.sbml.jsbml.ext.qual</groupId> - <artifactId>jsbml_ext_qual</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-qual</artifactId> <packaging>jar</packaging> </project> Modified: tags/jsbml-1.0/extensions/render/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/render/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/render/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,20 +28,19 @@ <parent> <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <groupId>org.sbml.jsbml.ext.render</groupId> - <artifactId>jsbml_ext_render</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-render</artifactId> <packaging>jar</packaging> <dependencies> <dependency> - <groupId>org.sbml.jsbml.ext.layout</groupId> - <artifactId>jsbml_ext_layout</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-layout</artifactId> + <version>${project.version}</version> </dependency> </dependencies> Added: tags/jsbml-1.0/extensions/req/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/req/pom.xml (rev 0) +++ tags/jsbml-1.0/extensions/req/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + $Id$ + $URL$ + + This file is part of JSBML. Please visit http://sbml.org/Software/JSBML + for the latest version of JSBML and more information about SBML. + + Copyright (C) 2009-2016 jointly by the following organizations: + 1. The University of Tuebingen, Germany + 2. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK + 3. The California Institute of Technology, Pasadena, CA, USA + 4. The University of California, San Diego, La Jolla, CA, USA + 5. The Babraham Institute, Cambridge, UK + + This library is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation. A copy of the license agreement is provided + in the file named "LICENSE.txt" included with this software distribution + and also available online as http://sbml.org/Software/JSBML/License. + + Version: $Rev$ +--> +<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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>ext</artifactId> + <version>1.0</version> + <relativePath>../</relativePath> + </parent> + + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-req</artifactId> + <packaging>jar</packaging> +</project> Modified: tags/jsbml-1.0/extensions/spatial/pom.xml =================================================================== --- tags/jsbml-1.0/extensions/spatial/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/extensions/spatial/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,65 +28,12 @@ <parent> <groupId>org.sbml.jsbml.ext</groupId> <artifactId>ext</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <groupId>org.sbml.jsbml.ext.spatial</groupId> - <artifactId>jsbml_ext_spatial</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml.ext</groupId> + <artifactId>jsbml-spatial</artifactId> <packaging>jar</packaging> - <build> - <plugins> - <plugin> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <phase>process-resources</phase> - <configuration> - <tasks> - <ant antfile="build.xml" target="jar"/> - </tasks> - </configuration> - <goals> - <goal>run</goal> - </goals> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>com.sun</groupId> - <artifactId>tools</artifactId> - <version>1.7.0</version> - <scope>system</scope> - <systemPath>${java.home}/../lib/tools.jar</systemPath> - </dependency> - </dependencies> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>1.3</version> - <executions> - <execution> - <id>add-jar</id> - <phase>package</phase> - <goals> - <goal>attach-artifact</goal> - </goals> - <configuration> - <artifacts> - <artifact> - <file>build/${artifactId}-${version}-with-dependencies.jar</file> - <type>jar</type> - </artifact> - </artifacts> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </project> Modified: tags/jsbml-1.0/modules/pom.xml =================================================================== --- tags/jsbml-1.0/modules/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/modules/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -28,68 +28,45 @@ <groupId>org.sbml.jsbml.modules</groupId> <artifactId>modules</artifactId> - <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <parent> <groupId>org.sbml.jsbml</groupId> <artifactId>jsbml-parent</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> - <build> - <sourceDirectory>${basedir}/src/</sourceDirectory> - - <testSourceDirectory>${basedir}/test/</testSourceDirectory> - - <resources> - <resource> - <directory>${basedir}/resources/</directory> - </resource> - </resources> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>2.5</version> - <configuration> - <skipTests>true</skipTests> - <systemPropertyVariables> - <user.dir>${basedir}/../../</user.dir> - </systemPropertyVariables> - </configuration> - </plugin> - </plugins> - </build> - - <repositories> - <repository> - <id>arbitrary</id> - <name>JSBML Maven Repository Test</name> - <url>http://jsbmlmavenrepotest.sourceforge.net/repo/</url> - </repository> - </repositories> + <build> - <dependencies> - <dependency> - <groupId>org.sbml.jsbml.core</groupId> - <artifactId>jsbml_core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.10</version> - <scope>test</scope> - </dependency> - </dependencies> - - <modules> - <module>android</module> - <module>celldesigner</module> - <module>libSBMLio</module> - <module>tidy</module> - </modules> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> + <configuration> + <skipTests>true</skipTests> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.sbml.jsbml</groupId> + <artifactId>jsbml-core</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.10</version> + <scope>test</scope> + </dependency> + </dependencies> + + <modules> + <module>tidy</module> + </modules> </project> Modified: tags/jsbml-1.0/modules/tidy/pom.xml =================================================================== --- tags/jsbml-1.0/modules/tidy/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/modules/tidy/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -23,25 +23,24 @@ --> <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/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.sbml.jsbml.modules</groupId> - <artifactId>modules</artifactId> - <version>1.0-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> - </parent> - - <groupId>org.sbml.jsbml.modules.tidy</groupId> - <artifactId>jsbml_modules_tidy</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>jar</packaging> - - <dependencies> - <dependency> - <groupId>net.sf.jtidy</groupId> - <artifactId>jtidy</artifactId> - <version>r938</version> - </dependency> - </dependencies> - + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.sbml.jsbml.modules</groupId> + <artifactId>modules</artifactId> + <version>1.0</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <groupId>org.sbml.jsbml.modules</groupId> + <artifactId>jsbml-tidy</artifactId> + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>net.sf.jtidy</groupId> + <artifactId>jtidy</artifactId> + <version>r938</version> + </dependency> + </dependencies> + </project> Modified: tags/jsbml-1.0/pom.xml =================================================================== --- tags/jsbml-1.0/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) +++ tags/jsbml-1.0/pom.xml 2016-05-11 14:11:04 UTC (rev 2507) @@ -24,17 +24,272 @@ <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/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + <modelVersion>4.0.0</modelVersion> - <groupId>org.sbml.jsbml</groupId> - <artifactId>jsbml-parent</artifactId> - <version>1.0-SNAPSHOT</version> - <packaging>pom</packaging> + <groupId>org.sbml.jsbml</groupId> + <artifactId>jsbml-parent</artifactId> + <version>1.0</version> + <packaging>pom</packaging> + <name>JSBML</name> + <inceptionYear>2009</inceptionYear> + <description>JSBML is a community-driven project to create a free, open-source, pure Java library for reading, writing, and manipulating SBML files and data streams.</description> + <url>http://www.sbml.org/Software/JSBML</url> + + <licenses> + <license> + <name>LGPL License</name> + <url>http://opensource.org/licenses/LGPL-2.1</url> + </license> + <license> + <name>Licensing and Distribution Terms for JSBML</name> + <url>http://sbml.org/Software/JSBML/License</url> + </license> + </licenses> - <modules> - <module>core</module> - <module>extensions</module> - <module>modules</module> - </modules> + <developers> + <developer> + <name>JSBML team</name> + <email>jsb...@ca...</email> + <organization>SBML Team</organization> + <organizationUrl>http://www.sbml.org</organizationUrl> + </developer> + </developers> + <issueManagement> + <url>http://sourceforge.net/p/jsbml/bugs/</url> + <system>Sourceforge Tickets</system> + </issueManagement> + <mailingLists> + <mailingList> + <name>JSBML Team</name> + <post>jsb...@ca...</post> + </mailingList> + <mailingList> + <name>JSBML Development</name> + <post>jsb...@go...</post> + <archive>https://groups.google.com/forum/#!forum/jsbml-development</archive> + </mailingList> + </mailingLists> + + <scm> + <connection>scm:svn:http://svn.code.sf.net/p/jsbml/code/trunk</connection> + <developerConnection>scm:svn:https://use...@sv.../p/jsbml/code/trunk</developerConnection> + <url>https://sourceforge.net/p/jsbml/code/HEAD/tree/trunk/</url> + </scm> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <jsbml.version>${project.version}</jsbml.version> + <jsbml.basedir>${basedir}</jsbml.basedir> <!-- will be reset on each sub-pom to be the directory of the pom --> + <jsbml.build.javac.source>1.6</jsbml.build.javac.source> + <jsbml.build.javac.target>1.6</jsbml.build.javac.target> + <jsbml.doc.stylesheet>/home/rodrigue/src/jsbml_all/tags/jsbml-1.0/stylesheetfile.css</jsbml.doc.stylesheet> + </properties> + + <build> + + <sourceDirectory>src</sourceDirectory> + <testSourceDirectory>test</testSourceDirectory> + <resources> + <resource> + <directory>resources</directory> + </resource> + </resources> + <testResources> + <testResource> + <directory>test</directory> + </testResource> + </testResources> + + <extensions> + <extension> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>2.10</version> + </extension> + </extensions> + + <plugins> + + <!-- properties file not used at the moment --> + <!-- cannot use the property file at the moment, we would have to put the file in an archive + that is deployed to the repository. Then we can use it as a dependency or use the dependency:unpack goal. + see http://maven.40175.n5.nabble.com/Relative-path-to-parent-directory-at-multi-module-maven-project-td4611798.html + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>properties-maven-plugin</artifactId> + <version>1.0.0</version> + <executions> + <execution> + <id>jsbml</id> + <phase>initialize</phase> + <goals> + <goal>read-project-properties</goal> + </goals> + <configuration> + <files> + <file>${jsbml.basedir}/jsbml-build.properties</file> + </files> + </configuration> + </execution> + </executions> + </plugin> + --> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.5.1</version> + <configuration> + <source>${jsbml.build.javac.source}</source> + <target>${jsbml.build.javac.target}</target> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>2.10.3</version> + <configuration> + <stylesheetfile>${jsbml.doc.stylesheet}</stylesheetfile> + <links> + <link>http://docs.oracle.com/javase/6/docs/api/</link> + <link>http://www.biojava.org/docs/api17</link> <!-- TODO update --> + </links> + <tags> + <tag> + <name>sbml.deprecated</name> + <placement>a</placement> + <head>Deprecated in SBML since:</head> + </tag> + <tag> + <name>libsbml.deprecated</name> + <placement>a</placement> + <head>Note: this method is kept here as it exist in libSBML.</head> + </tag> + <tag> + <name>jsbml.note</name> + <placement>a</placement> + <head>Note:</head> + </tag> + <tag> + <name>jsbml.warning</name> + <placement>a</placement> + <head>Warning:</head> + </tag> + <tag> + <name>doc.note</name> + <placement>a</placement> + <head>Documentation note:</head> + </tag> + <tag> + <name>date</name> + <placement>a</placement> + <head>Last modified:</head> + </tag> + </tags> + <failOnError>false</failOnError> + </configuration> + </plugin> + + </plugins> + </build> + + + <modules> + <module>core</module> + <module>extensions</module> + <module>modules</module> + </modules> + + <repositories> + <repository> + <id>local-repo</id> + <url>http://localhost/repo</url> + </repository> + <repository> + <id>sf-repo</id> + <url>http://jsbml.sourceforge.net/m2repo</url> + </repository> + <repository> + <id>sf-repo-s</id> + <url>http://jsbml.sourceforge.net/m2repo_snapshots</url> + </repository> + </repositories> + + <distributionManagement> + + <repository> + <id>jsbml-maven-repo-sf</id> + <name>JSBML Maven repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo</url> + </repository> + + <snapshotRepository> + <id>jsbml-maven-repo-s-sf</id> + <name>JSBML Maven SNAPSHOT repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots</url> + </snapshotRepository> + +<!-- +To Deploy locally + + <repository> + <id>local-repo-deploy</id> + <name>Test Maven repository</name> + <url>file:///var/www/html/repo</url> + </repository> + + if snapshotRepository is not define, the defined repository + will be used for snapshots as well. + +--> +<!-- +To deploy to EBI: + + <repository> + <id>ebi-maven-repo</id> + <name>EBI Maven Repository</name> + <url>file:///homes/maven/public_html/m2repo</url> + </repository> + + <snapshotRepository> + <id>ebi-maven-repo-s</id> + <name>EBI Maven Repository</name> + <url>file:///homes/maven/public_html/m2repo_snapshots/</url> + </snapshotRepository> + + or (but scp does not seem to work well) + + <repository> + <id>ebi-maven-repo</id> + <name>EBI Maven Repository</name> + <url>scp://ebi-001.ebi.ac.uk/homes/maven/public_html/m2repo</url> + </repository> +--> + +<!-- +To deploy to the jsbml maven repo + + <repository> + <id>jsbml-maven-repo-sf</id> + <name>JSBML Maven repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo</url> + </repository> + + <snapshotRepository> + <id>jsbml-maven-repo-s-sf</id> + <name>JSBML Maven SNAPSHOT repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots</url> + </snapshotRepository> + +jsbml maven repo test: replace jsbml by jsbmlmavenrepotest in the urls + +--> + + </distributionManagement> + + </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-11 11:48:29
|
Revision: 2506 http://sourceforge.net/p/jsbml/code/2506 Author: niko-rodrigue Date: 2016-05-11 11:48:27 +0000 (Wed, 11 May 2016) Log Message: ----------- upgraded the wagon-ssh version to 2.10 to correct a bug that was preventing the maven deployment through scp if an existing maven-metadata.xml file was present in the remote repo + did a bit of cleaning of the core pom file to remove things already define in the trunk pom file + put as default distribution management the current sourceforge repo, could be replaced by github later on. Modified Paths: -------------- trunk/build.xml trunk/core/pom.xml trunk/pom.xml Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-05-11 10:04:17 UTC (rev 2505) +++ trunk/build.xml 2016-05-11 11:48:27 UTC (rev 2506) @@ -129,7 +129,8 @@ <fileset dir="${simulation.core.dir}/lib/ext-lib/" includes="*.jar"/> </path> - <property name="maven.repo.url" value="file:///homes/maven/public_html/m2repo"/> + <!-- don't commit the repo url for releases to avoid messing it up as much as possible --> + <property name="maven.repo.url" value="scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots"/> <!-- local test instance url file:///homes/maven/public_html/m2repo --> </target> @@ -767,14 +768,15 @@ description="Install jsbml localy" depends="init" > - <!-- mvn javadoc:jar source:jar install - --> <exec executable="mvn"> <arg value="javadoc:jar"/> <arg value="source:jar"/> <arg value="install"/> </exec> + <!-- TODO - add the jsbml artifact as well ? + --> + </target> <!-- =================================================================== --> @@ -801,6 +803,7 @@ <arg value="-DpomFile=./dev/maven/pom.xml"/> <arg value="-Dfile=./dev/maven/jsbml-pom.jar"/> <arg value="-Durl=${maven.repo.url}"/> + <arg value="-DrepositoryId=jsbml-maven-repo-sf"/> </exec> <!-- mvn test jar:test-jar to generate the test jar files to be able to run the tests in a new project --> Modified: trunk/core/pom.xml =================================================================== --- trunk/core/pom.xml 2016-05-11 10:04:17 UTC (rev 2505) +++ trunk/core/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) @@ -33,43 +33,9 @@ <version>1.2-SNAPSHOT</version> <relativePath>../</relativePath> </parent> - <!-- - <scm> - <connection>scm:svn:http://127.0.0.1/dummy</connection> - <developerConnection>scm:svn:https://127.0.0.1/dummy</developerConnection> - <tag>HEAD</tag> - <url>http://127.0.0.1/dummy</url> - </scm> - --> <build> - - <directory>dist</directory> - <outputDirectory>dist/classes</outputDirectory> - <finalName>${project.artifactId}-${project.version}</finalName> - <testOutputDirectory>dist/test-classes</testOutputDirectory> - <sourceDirectory>src</sourceDirectory> - <scriptSourceDirectory>scripts</scriptSourceDirectory> - <testSourceDirectory>test</testSourceDirectory> - <resources> - <resource> - <directory>resources</directory> - </resource> - </resources> - <testResources> - <testResource> - <directory>test</directory> - </testResource> - </testResources> - <extensions> - <extension> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ssh</artifactId> - <version>2.4</version> - </extension> - </extensions> - <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -106,7 +72,7 @@ <snapshots> <enabled>false</enabled> </snapshots> - </repository> + </repository> </repositories> <dependencies> @@ -154,7 +120,6 @@ <type>jar</type> <scope>test</scope> </dependency> - <dependency> <groupId>org.mangosdk.spi</groupId> <artifactId>spi</artifactId> @@ -162,27 +127,4 @@ </dependency> </dependencies> - <!-- - <distributionManagement> - <repository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/releaseRepository</url> - </repository> - <snapshotRepository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 SNAPSHOT repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/snapshotRepository</url> - </snapshotRepository> - </distributionManagement> ---> - -<!-- -To deploy to EBI: - <repository> - <id>ebi-maven-repo</id> - <name>EBI Maven Repository</name> - <url>http://www.ebi.ac.uk/~maven/m2repo/</url> - </repository> ---> </project> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2016-05-11 10:04:17 UTC (rev 2505) +++ trunk/pom.xml 2016-05-11 11:48:27 UTC (rev 2506) @@ -105,7 +105,7 @@ <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> - <version>2.4</version> + <version>2.10</version> </extension> </extensions> @@ -208,26 +208,85 @@ <id>local-repo</id> <url>http://localhost/repo</url> </repository> + <repository> + <id>sf-repo</id> + <url>http://jsbml.sourceforge.net/m2repo</url> + </repository> + <repository> + <id>sf-repo-s</id> + <url>http://jsbml.sourceforge.net/m2repo_snapshots</url> + </repository> </repositories> <distributionManagement> + <repository> + <id>jsbml-maven-repo-sf</id> + <name>JSBML Maven repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo</url> + </repository> + + <snapshotRepository> + <id>jsbml-maven-repo-s-sf</id> + <name>JSBML Maven SNAPSHOT repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots</url> + </snapshotRepository> + +<!-- +To Deploy locally + + <repository> <id>local-repo-deploy</id> - <name>Test Maven2 repository</name> + <name>Test Maven repository</name> <url>file:///var/www/html/repo</url> </repository> + + if snapshotRepository is not define, the defined repository + will be used for snapshots as well. + +--> +<!-- +To deploy to EBI: + + <repository> + <id>ebi-maven-repo</id> + <name>EBI Maven Repository</name> + <url>file:///homes/maven/public_html/m2repo</url> + </repository> + <snapshotRepository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 SNAPSHOT repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/snapshotRepository</url> + <id>ebi-maven-repo-s</id> + <name>EBI Maven Repository</name> + <url>file:///homes/maven/public_html/m2repo_snapshots/</url> </snapshotRepository> - </distributionManagement> - - <!-- <repository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/releaseRepository</url> + + or (but scp does not seem to work well) + + <repository> + <id>ebi-maven-repo</id> + <name>EBI Maven Repository</name> + <url>scp://ebi-001.ebi.ac.uk/homes/maven/public_html/m2repo</url> </repository> --> + +<!-- +To deploy to the jsbml maven repo + <repository> + <id>jsbml-maven-repo-sf</id> + <name>JSBML Maven repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo</url> + </repository> + + <snapshotRepository> + <id>jsbml-maven-repo-s-sf</id> + <name>JSBML Maven SNAPSHOT repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots</url> + </snapshotRepository> + +--> + + </distributionManagement> + + </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-11 10:04:19
|
Revision: 2505 http://sourceforge.net/p/jsbml/code/2505 Author: niko-rodrigue Date: 2016-05-11 10:04:17 +0000 (Wed, 11 May 2016) Log Message: ----------- configured the pom files to deploy into a sourceforge repo. Goal is to have a clean repo in sf or github that can be used to mirror to maven central Modified Paths: -------------- tags/jsbml-1.1/build.xml tags/jsbml-1.1/pom.xml Modified: tags/jsbml-1.1/build.xml =================================================================== --- tags/jsbml-1.1/build.xml 2016-05-09 12:57:32 UTC (rev 2504) +++ tags/jsbml-1.1/build.xml 2016-05-11 10:04:17 UTC (rev 2505) @@ -126,7 +126,7 @@ <fileset dir="${simulation.core.dir}/lib/ext-lib/" includes="*.jar"/> </path> - <property name="maven.repo.url" value="file:///homes/maven/public_html/m2repo"/> + <property name="maven.repo.url" value="scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo"/> <!-- local test instance url file:///homes/maven/public_html/m2repo --> </target> @@ -738,6 +738,7 @@ <arg value="-DpomFile=./dev/maven/pom.xml"/> <arg value="-Dfile=./dev/maven/jsbml-pom.jar"/> <arg value="-Durl=${maven.repo.url}"/> + <arg value="-DrepositoryId=jsbml-maven-repo-sf"/> </exec> <!-- mvn test jar:test-jar to generate the test jar files to be able to run the tests in a new project --> Modified: tags/jsbml-1.1/pom.xml =================================================================== --- tags/jsbml-1.1/pom.xml 2016-05-09 12:57:32 UTC (rev 2504) +++ tags/jsbml-1.1/pom.xml 2016-05-11 10:04:17 UTC (rev 2505) @@ -188,29 +188,26 @@ <repositories> <repository> - <id>local-repo</id> - <url>http://localhost/repo</url> + <id>sf-repo</id> + <url>http://jsbml.sourceforge.net/m2repo</url> </repository> + <repository> + <id>sf-repo-s</id> + <url>http://jsbml.sourceforge.net/m2repo_snapshots</url> + </repository> </repositories> - + <distributionManagement> <repository> - <id>local-repo-deploy</id> - <name>Test Maven2 repository</name> - <url>file:///var/www/html/repo</url> + <id>jsbml-maven-repo-sf</id> + <name>JSBML Maven repository</name> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo</url> </repository> <snapshotRepository> - <id>jsbmlmavenrepotest.sourceforge.net</id> + <id>jsbml-maven-repo-s-sf</id> <name>JSBML Maven2 SNAPSHOT repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/snapshotRepository</url> + <url>scp://shell.sourceforge.net/home/project-web/jsbml/htdocs/m2repo_snapshots</url> </snapshotRepository> </distributionManagement> - <!-- <repository> - <id>jsbmlmavenrepotest.sourceforge.net</id> - <name>JSBML Maven2 repository</name> - <url>scp://shell.sourceforge.net/home/project-web/jsbmlmavenrepotest/htdocs/releaseRepository</url> - </repository> ---> - </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-09 12:57:34
|
Revision: 2504 http://sourceforge.net/p/jsbml/code/2504 Author: niko-rodrigue Date: 2016-05-09 12:57:32 +0000 (Mon, 09 May 2016) Log Message: ----------- setup the target java version in the pom files to 1.7 + added some configuration to the maven-surefire-plugin to include only the main junit test suite class so that we can run the tests again from maven Modified Paths: -------------- trunk/core/pom.xml trunk/extensions/arrays/pom.xml trunk/extensions/fbc/pom.xml trunk/extensions/layout/pom.xml trunk/pom.xml Modified: trunk/core/pom.xml =================================================================== --- trunk/core/pom.xml 2016-05-06 10:45:56 UTC (rev 2503) +++ trunk/core/pom.xml 2016-05-09 12:57:32 UTC (rev 2504) @@ -74,11 +74,15 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> <configuration> - <groups>deployment,deployment-validation,jar-deployment</groups> - <skipTests>true</skipTests> + <!-- <groups>deployment,deployment-validation,jar-deployment</groups> --> + <!-- <skipTests>true</skipTests> --> <testFailureIgnore>false</testFailureIgnore> - <argLine>-Dfile.encoding=UTF-8 -DDATA_FOLDER=${project.basedir}/test/org/sbml/jsbml/xml/test/data/ -ea</argLine> + <argLine>-Dfile.encoding=UTF-8 -ea</argLine> + <includes> + <include>Tests.java</include> + </includes> </configuration> </plugin> </plugins> Modified: trunk/extensions/arrays/pom.xml =================================================================== --- trunk/extensions/arrays/pom.xml 2016-05-06 10:45:56 UTC (rev 2503) +++ trunk/extensions/arrays/pom.xml 2016-05-09 12:57:32 UTC (rev 2504) @@ -47,13 +47,16 @@ <build> <plugins> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> <configuration> - <groups>deployment,deployment-validation,jar-deployment</groups> <skipTests>true</skipTests> <testFailureIgnore>false</testFailureIgnore> - <argLine>-Dfile.encoding=UTF-8 -ea</argLine> + <argLine>-Dfile.encoding=UTF-8 -ea</argLine> + <includes> + <include>ArraysJUnitTests.java</include> + </includes> </configuration> </plugin> </plugins> Modified: trunk/extensions/fbc/pom.xml =================================================================== --- trunk/extensions/fbc/pom.xml 2016-05-06 10:45:56 UTC (rev 2503) +++ trunk/extensions/fbc/pom.xml 2016-05-09 12:57:32 UTC (rev 2504) @@ -41,11 +41,13 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> <configuration> - <groups>deployment,deployment-validation,jar-deployment</groups> - <skipTests>true</skipTests> <testFailureIgnore>false</testFailureIgnore> <argLine>-Dfile.encoding=UTF-8 -ea</argLine> + <includes> + <include>FBCTests.java</include> + </includes> </configuration> </plugin> </plugins> Modified: trunk/extensions/layout/pom.xml =================================================================== (Binary files differ) Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2016-05-06 10:45:56 UTC (rev 2503) +++ trunk/pom.xml 2016-05-09 12:57:32 UTC (rev 2504) @@ -81,6 +81,9 @@ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <jsbml.version>${project.version}</jsbml.version> + <jsbml.basedir>${basedir}</jsbml.basedir> <!-- will be reset on each sub-pom to be the directory of the pom --> + <jsbml.build.javac.source>1.7</jsbml.build.javac.source> + <jsbml.build.javac.target>1.7</jsbml.build.javac.target> </properties> <build> @@ -108,11 +111,15 @@ <plugins> - <!-- properties file not used at the moment + <!-- properties file not used at the moment --> + <!-- cannot use the property file at the moment, we would have to put the file in an archive + that is deployed to the repository. Then we can use it as a dependency or use the dependency:unpack goal. + see http://maven.40175.n5.nabble.com/Relative-path-to-parent-directory-at-multi-module-maven-project-td4611798.html + <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> - <version>1.0-alpha-2</version> + <version>1.0.0</version> <executions> <execution> <id>jsbml</id> @@ -122,16 +129,26 @@ </goals> <configuration> <files> - <file>jsbml-build.properties</file> + <file>${jsbml.basedir}/jsbml-build.properties</file> </files> </configuration> </execution> </executions> - </plugin> + </plugin> --> - + <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.5.1</version> + <configuration> + <source>${jsbml.build.javac.source}</source> + <target>${jsbml.build.javac.target}</target> + </configuration> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.10.3</version> <configuration> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-06 10:45:59
|
Revision: 2503 http://sourceforge.net/p/jsbml/code/2503 Author: niko-rodrigue Date: 2016-05-06 10:45:56 +0000 (Fri, 06 May 2016) Log Message: ----------- set the JSBML.READING_IN_PROGRESS user object to the CVTerm and History elements when reading is in progress. Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLCoreParser.java trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLRDFAnnotationParser.java Modified: trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLCoreParser.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLCoreParser.java 2016-05-06 10:20:55 UTC (rev 2502) +++ trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLCoreParser.java 2016-05-06 10:45:56 UTC (rev 2503) @@ -67,6 +67,7 @@ import org.sbml.jsbml.UnitDefinition; import org.sbml.jsbml.util.ResourceManager; import org.sbml.jsbml.util.SBMLtools; +import org.sbml.jsbml.util.TreeNodeAdapter; import org.sbml.jsbml.util.TreeNodeWithChangeSupport; import org.sbml.jsbml.util.filters.Filter; import org.sbml.jsbml.xml.XMLAttributes; @@ -594,10 +595,9 @@ if (o instanceof TreeNodeWithChangeSupport) { if (((TreeNodeWithChangeSupport) o).isSetUserObjects()) { ((TreeNodeWithChangeSupport) o).userObjectKeySet().remove(JSBML.READING_IN_PROGRESS); - } else { - // System.out.println("######### user objects not set !!!!!!!! " + o); - // TODO - set the user object property on the RDF objects ? (CVTerms) - } + } // else if (! ((o instanceof TreeNodeAdapter) || (o instanceof XMLNode))) { +// System.out.println("######### user objects not set !!!!!!!! " + o + " class name = " + o.getClass().getSimpleName()); +// } } return false; } Modified: trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLRDFAnnotationParser.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLRDFAnnotationParser.java 2016-05-06 10:20:55 UTC (rev 2502) +++ trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLRDFAnnotationParser.java 2016-05-06 10:45:56 UTC (rev 2503) @@ -513,6 +513,9 @@ removeXmlNodeIfEmpty(rdfNode); } } + if (contextObject.isSetHistory()) { + contextObject.getHistory().putUserObject(JSBML.READING_IN_PROGRESS, Boolean.TRUE); + } } /** @@ -741,6 +744,7 @@ Creator creator = new Creator(); contextSBase.getHistory().addCreator(creator); + creator.putUserObject(JSBML.READING_IN_PROGRESS, Boolean.TRUE); // get name information List<XMLNode> nameNodes = liNode.getChildElements("N", Creator.URI_RDF_VCARD_NS); @@ -950,6 +954,7 @@ CVTerm.Qualifier qualifier = CVTerm.Qualifier.getModelQualifierFor(bqmodelNode.getName()); CVTerm cvTerm = new CVTerm(CVTerm.Type.MODEL_QUALIFIER, qualifier, resources.toArray(new String[resources.size()])); + cvTerm.putUserObject(JSBML.READING_IN_PROGRESS, Boolean.TRUE); if (contextSBase instanceof SBase) { ((SBase) contextSBase).addCVTerm(cvTerm); @@ -1005,7 +1010,8 @@ CVTerm.Qualifier qualifier = CVTerm.Qualifier.getBiologicalQualifierFor(bqbiolNode.getName()); CVTerm cvTerm = new CVTerm(CVTerm.Type.BIOLOGICAL_QUALIFIER, qualifier, resources.toArray(new String[resources.size()])); - + cvTerm.putUserObject(JSBML.READING_IN_PROGRESS, Boolean.TRUE); + if (contextSBase instanceof SBase) { ((SBase) contextSBase).addCVTerm(cvTerm); } else if (contextSBase instanceof CVTerm) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-06 10:20:59
|
Revision: 2502 http://sourceforge.net/p/jsbml/code/2502 Author: niko-rodrigue Date: 2016-05-06 10:20:55 +0000 (Fri, 06 May 2016) Log Message: ----------- update to the documentation, partially done by Roman Schulte. It does mention the full name of the annotation processor to use in the eclipse settings + updated the libraries dependencies Modified Paths: -------------- trunk/core/doc/user_guide/JSBML_getting_started.tex trunk/core/doc/user_guide/User_Guide.pdf trunk/dev/README.txt Modified: trunk/core/doc/user_guide/JSBML_getting_started.tex =================================================================== --- trunk/core/doc/user_guide/JSBML_getting_started.tex 2016-05-05 10:12:26 UTC (rev 2501) +++ trunk/core/doc/user_guide/JSBML_getting_started.tex 2016-05-06 10:20:55 UTC (rev 2502) @@ -31,8 +31,8 @@ \toprule \textbf{\sffamily Library name} & \textbf{Purpose} & \textbf{Source URL} \\ \midrule - biojava3-ontology-3.1.0.jar - & biojava3 ontology-related classes~\citep{Holland2008}. + biojava-ontology-4.0.0.jar + & biojava ontology-related classes~\citep{Holland2008}. \index{Ontology} & \href{http://biojava.org}{biojava.org} \\ @@ -64,10 +64,12 @@ Dec. 2010), containing classes for date manipulation. & \href{http://jigsaw.w3.org}{jigsaw.w3.org} \\ - log4j-1.2.17.jar - & Library for logging errors and other diagnostics. - & \href{http://logging.apache.org/log4j}{logging.apache.org/log4j} \\ + log4j-1.2-api-2.3.jar + & Libraries for logging errors and other diagnostics. + & \href{http://logging.apache.org/log4j}{logging.apache.org/log4j} and \href{http://www.slf4j.org}{slf4j.org} \\ + log4j-api-2.3.jar \\ log4j-core-2.3.jar \\ log4j-slf4j-impl-2.3.jar \\ slf4j-api-1.7.21.jar \\ + \bottomrule \end{tabular} \end{table} @@ -183,7 +185,7 @@ The Subversion repository contains copies of all the third-party libraries listed in \tab{tab:dependencies} and needed by JSBML. They are -located in the folder ``\dirname\code{/lib}''. +located in the folder ``\dirname''\code{/core/lib}. \subsection{Setting up Eclipse} @@ -198,7 +200,9 @@ because the different parsers in JSBML are registered automatically using Java annotations. To configure the annotation processor in Eclipse, follow the instructions found on the web page -\url{https://code.google.com/p/spi/wiki/EclipseSettings}. If you checkout +\url{https://github.com/niko-rodrigue/spi/blob/wiki/EclipseSettings.md}. + The jar file of the annotation processor is located in the jsbml source tree at + ``\dirname''\code{/core/lib/spi-full-0.2.4.jar}. If you checkout the full trunk (and not just the core), you can find a folder dev, which contains a README.txt file that has also these instructions and further important information. Modified: trunk/core/doc/user_guide/User_Guide.pdf =================================================================== --- trunk/core/doc/user_guide/User_Guide.pdf 2016-05-05 10:12:26 UTC (rev 2501) +++ trunk/core/doc/user_guide/User_Guide.pdf 2016-05-06 10:20:55 UTC (rev 2502) @@ -13451,30 +13451,36 @@ endstream endobj 607 0 obj << -/Length 2917 +/Length 2919 /Filter /FlateDecode >> stream -x\xDA\xED]]s\x9B:\xBE\xEF\xAF𥽳Ѣo87;i\xDA=\xD33M\xDBisNw\xA6\xBB\x94\x9836x+x\xDA\xED]]s\x9B:\xBE\xEF\xAF𥽳Ѣo87;i\xDA=\xD33M\xDBisNw\xA6\xBB\x94\x9836x \xA4\xA4\xB3\xAB\x9B\x99$3\xC1}\xE4a1\xBB\x8Ag\xE6YZ\xAA\xB4,\xFF\xBD\xFA -\xDA\xF4|x\x98c8HY\xB7\xB9sڬ\xF4\x91\x92\xE9\xF6\xBC\xD9\xF1#\xB8n/\xCE0\xFE\xFCWU\x96Iz\xBB8#ҟe\x98Ù7/U\_\xF9\x94\x94\xCB\xFA\xEC\xB7wO/_6\x9D\xFD\x85fLP\xE8\x8CA\xB7Uw\xEC\x88ac*f\xF9\x9E'\xF5\xB8\xCF\xF3\xF3ggF/\xDA\xD1#=~\xCE\xE4\xFC\xF5u&\xA9y\x830m\xBE-̵\xE3F?[0\\xE8\xEE1\xA1\x88S\xF3hqƠ\xC9\xEAOp\xF2O\x8F\xAC#\x80\xA0Fײ\x92`<cЄpąhxbhR\xC5t~\xB5T]:\xD4lɣe\xF2qA\xF8\\xED\xD3=V\x95\xC6*\x8DU\xF4\xE6\x8E\xF0\x91t\x87;\x8F\xE0\xFB\xA2N\xB8-\xE3\xC3H\xD2Ǥ؆\xAB\xE4\x9Do\xEAq\xFAR3h\xD8V f\x98\x9AEϲh\xBBVii\xDF\xCA\xE0\xC0\xEA\x8D\xEC\xFAO\x95\xFD\xC5@\xD6{\x8C:\xC8\xC5̑\xB0b\xC3\xDB^ &tp\x91\xAB\xB0<\xE4çq\xE2&x\x8DT\x92!Cߊ\xDFY\xB8\x81\x88z\xE6\x87F\xD7*\xB4\xD1*\x97Y\xAEڿ'd>A\x82\xF9\x93\xF9\xD0\xDE\xB0\xD77\xDBrƸ\x8F(Lh \xA8\xAF\x86=\xA4I\xBA<Knn؛\xAB\\xA5Qk2^\xAB\xF2\x93j\xE3V]3\xA4<\xAB\xE4\xFA\xB8̇3\x8A\xA3sLz\xCF\x9D\x90blw\x93|y\xBF\T\xAEqJi\xE6C\xB9T\xEDi\xAC_\x94\x9A\xFD甅\xF9>\xFD, \xDF7?\xEF-]\xC0!\x90\x8C\x9C\xBA\x84\x86.\xEA>@\xC9\xF7\x95\xED~\x9DS)dr\xBE\x8F@:\x8D\g\x8A\xC1ȕ˰l\xC1\xEA\xF8m\xD12Lo՞\xE1]\xA7.V[\xB5\xAB\xAF\xC3\xEE\xB7M\xAC\xCDn8\xB1\xF5)\xD8؏\xE7E\x91ܦm\xAC\xB0L\xB7MH`ݎ\xED\xE7\x9D\xBFyQ\xECB3F\xC4`?\x8E\x88\xC1<'?\x8F\xAB\xE4r\x80(\x98\xF6\x81\xD1J\xC4}fS\xE3\xBD\xAC\x89u1\xCAj\xC9?\xBE\xE6F\xD1\xE4\xA2\xF6\xA6Y\xC0\xA3\xA8?\xF4\xBC}&\xBD\xA5'ȓS\xB0\xE58\xA2H\x8C\xC9\xD3\xA5\xF5\xA9*\xF7\xA7\xF2\xA3F\xA0w\xA00?72\x9C\xD9¡{V\x88G\x90O\xF9cf\x8D3%\xE1<v\x8B:\xB5\x9E\xF4F\xEB\\xE6\xCD\xCBug%\xC0\xF1\xD1 -L%?Az\xE8[w䊬R\x8A\xA4\xF5==\xD4B\x8D{v\x99ŭ\xDEX&\xC5\xE0µ\x89&\x8F\x8B&\xAD\xEB\xA7=\xE9\xFD&핷\xD3:\xAB§\xDE\xE9\x8C<A'bx\xB5C a\xF0'!F\xEBY^\xAC2\xEB\xD6Z\xB6>Gۢ\x98h\x99\xACʤ mZ\xC72k\xC3\xF6EZ\xEF<\x87G\xE8y(\xF0\xC9N\x98\xA7\xB7\xC9\xA7?|m\x953rYNj\xD0\xEC\xF1\xF9\xE7Hm\xCDu \xCA4\xD5Di0\x890\xC3\xE3Ӥ#\xFC\x86'\xAF2Wf\xEEpzK\x8E|a\xBC\xA0&\xFEp\x91U\x82\xA1\xBF\xC5*D\x84\x9C8\xF6_Dp$:b\x83\x9D@W{|\xA8\xF4\x87<p\xABͳ\x8CCQ\xEF8\x89\x98\x93\xD9{yR\xDA`xC=ّ#q\xF21\x89\xB7\xE1\xCA%D|d\x86\xF3<\x99\xD77s\x95LR\x8605\xE2\xAFb\xA2\xEA\xD6\xEAWq\xE9vUg\xB9\xBEU:\xABPŭ#W\xCF1Nw\xFB\xEE\xCDZ\x9D]d\x8F;\xBF\xCC:\xA1\x8F\x93\xF07\xBC\xF9\xBD\xD8\xCBD\xC4j\x93\xAB\x81\xC5\xF9\xD3ڝoWSF\xF8H\xA5\x94us\xB4\xA9\xA4<\x8Fu\xDC2N\xBA\x8Bw\xEA\xD2ʰ*\xAA\xAFl\xF2j\xC1G\xB5&'\x89۽-*\xF9p\xD7kw\x8Bg\x94p̉\xB5\xB2\x92\x9A\xCAʋNRnbH\x8B\xAD\xFE\xBF \xB0\x95n\xE0-@\xE5u\xFB\x89\xE9IS^G\xCF\xC9\xFC7}\xE9\x9D><ՇK}x\xA9g\xFAPEYB3fUw\xDC<\xE7sX\x99N"\xF3Li\xAEeu\xEFU\x8Fv$e\xFDUu5\xAC[\xED\xFD\xC3U\x8Dؑl\xCDMMw} M\xC1q\xF4\xC6A:(,\xB8\xA6\xFEI)L\x8F\x96MzY\xE8ܭLrN|\xA7| -L\xDDLr݉\xEB\xD5O8\xD7\xC0J\xBD\xEF2\xF3\xBETĕ.'\x80g\x86FG.\xEA\xD3\xB3\xFB#\xA6q\x9E%\xF1\xD7\xCB*\\xD8\xE8y\xD3Q\xB3L\xA5(\xD5zЮڜ}߅@.\xE49L>6>\xF0\x9D\xB9\xCD\xEF\x8F|^\xAE\x8ED~/\xA4r\x88s\x9C\xD9"\xE1f\xA1\x8A\xCE,&D{\xB0\x96q\xC7z1܁bzH\xF8\xE2\xA1,\x8F\x93@+\xEEm\x99\xC4wθ'4I\xDD\xD6dknr\xB8j6\xC5n\xC2\xBA\xB9\xEA\xEC\xDF-Lٶ\xDCl{/\xDE\xC5@\xB0-\xB8A,8\xD7\xFE߉\xE9\xB9\xE9Ŧ\xF2\x91\xFF\x90\xB5\xB8Ӻ\xF9W\xC9\xFBѡ\xD5\xB6Ri\x98\x90Z\xC0\xBCY0\xD0Qm\xB5/\xD9-\xD8\xF7W\xA0\xF7\x91\x89ϯ\x9E\xFCFߒ7 +\xDA\xF4|x\x98c8HY\xB7\xB9sڬ\xF4\x91\x92\xE9\xF6\xBC\xD9\xF1#\xB8n/\xCE0\xFE\xFCWU\x96Iz\xBB8#ҟe\x98Ù7/U\_\xF9\x94\x94\xCB\xFA\xEC\xB7wO/_6\x9D\xFD\x85fLP\xE8\x8CA\xB7Uw\xEC\xC3\xC6T\xCC$\xF2=O\xEAq\x9F1\xE6#\xE6\xCF\xCE0\x8C^\xB4\xA3Gz\xFC\x9C\xC9\xF9\xEB\xEB2LR\xF3a\xDA|[\x98k\xF79\xFCl\xC1,@Xp\xA1\xBBDŽ"N\xCD{\xA0\xC5\x83&\xAB?\xC1\xC9?=\xB2\x8E+M\xE8c\x8C<K >\x8C\x94\xD0CJ\xB0\xBF\x98\xFEE\xB6\xCD#u( +z[0 \xDF\xCF-\xE5\x821k\x9C\x82\xFCHBDYܜ\xE5j\x93I\x99\x81EL\xBD\xF9]#+5/z\x8B\x83\xF0d\x8Cf\xF8\xA3\xCB+\xFA1\xC0E\xC0qN\x8A2\xE5m\x9A|a\x8A\xFBԷ\xFE2+x\xC7IĜ\xAC\xC8\xDEC\x98ȓ\xD2{\xC0\xEAɎ\x89\x93\x8FI\xBC +W.!\xE2#3\x9C\x97\xE0ɼ\xBE\xF9\x9B\xABd\x922\x84\xA9U\xB7V\xBF\x8AK\xB7\xAB:\x9B\xC8\xF5\xAD\xD2Y\x85*n\xB9z\x96\x88q\xBA\xDBwo\xD6\xEA\xEC"{\xDC\xF9e\xD6 }\x9C\x847\xB8\xE1\xCD\xEF\xC5^&"V\x9B\ +,Ο\xD6\xEE|\xBB\x9A2\xC2G*\xA5\xAC\x9B\xA3M%\xE5y\xAC\xE3\x96q\xD2]\xBCS\x97V\x86UP}e\x93W>\xAA59I\xDC\xEEmQɇ\xBB^\xBB[|8\xA3\x84\x8B`NĨ\x95\x95\xD4TV^t\x92r+CZl\xF5\xF8\xD0\x9D"9f\x99Q\xAE\xCD!\xDE;\x8DHm}\xA5*U\xD0O\xD2Z:\xEE\x88ͽ\xEF^ +\xB7\xD5ͮ\xF2\x8CJ\x9D\x99,\xFD\xF9\xEAV]\xE7a\xBDݮ\x94s=C+n!i\xB7\xDB\xF0\xC88K\xAB\xEC\x96\xFDi\x8CN\x90\xDFn\xEB\xACA\xF1'\x90\x94L+ю^\x89\xC6:Q\xEAѭ +\xEE\xD0>\x9D\x95\xDD_D\xBF\xBF\xA5\xC10➘\x94ǐ2KtX4\xA5SO\xDDn\xFA3\xAD\xED\xFF\xC1Iwm? FN\x97uv6\x9B=\xB4S\xC1\x9D\xB6\xBB559\xD1$sY\xAA@Mb\x9D\x90\x9A\xBF,\xCE(cݍ\x8D۴\xEAa\xAD\xEF&\xCC\xEDm\xF6\x9E$mKu:\xEC\x8E\xC32t.\xA0\xED\xBF\xFD6\xCEj\x91\xC6I\x80\xADt`u\xC4a\xA9N\x80w<\xE2\x8B\xFA6Y5\x87g\xE6Z\xA1\x89>\xDC\xEACj\xBEȝ\xE1T \xAFh\xF8`\xB2q\x95\xE24\xADW\xCFk\x9E`0^\xCCW+\x8E\xA37^\xD2Aa\xC9\xC05\xF5OJazo٤\x90\x85\xCE݊\xC0$\xE7\xC4wʧ\xF0@\xC0\xD4\xCD$ם\xB8^\xFD\x84Cp +\xAC\xD1\xFB.3\xEF\xE1KE\\xE9r endstream endobj 203 0 obj << /Type /ObjStm /N 100 /First 938 -/Length 4378 +/Length 4380 /Filter /FlateDecode >> stream @@ -13503,10 +13509,10 @@ e\x91\xAD\xD66g\xC6\xED\xCF<\x8A\xAE\xF6 `\xC1:\xF2`\xDFr\xE7\xF4|6npJho\xFDm\xAC\xC1\xB5Kn\xDD9\xDB\xF3\xABǂ\xF2-\xC6j\xDB}j\xF7y\xB5\xDA\xDD.\xD4=QEIW\xD6.q\xA0\xB8\x8A\xAB\xCCJm\xAE"\xEAR\xC7Ķ#u\x98vT\xEA\xDC\xEA\xC1\x96\x8A\xAA\xF4\xAD\xBD\xE7R\xEF\x964[Vc7Z<\xA8\xD5w\xB7\xE3mCܴ\xD8\xCA_7|P\xB9\xEFlXou\xA4\\xA0[\xB7\xD8G\xB9\xEF\xEEq\xCEL\xB0\xC2A\xB0\xED\xC1 ~\xB7z|\x87\x8E\xFD^e\x94\x94\x82\xF9\xB8\x99\x97\xF4\xF5n\xF8\xD7\xE1\xABᓷ\xF4a\xCAxݜ/\xAB\xB7&ƚS\x98\xF6\xA6.W6`P\xF0k[[M\xF5\xDA\xF16|>\x99~\x9E<zTZ\x9E\x94\xF6\x87gÿ\xBF>\xE5߃O\xCB\xE5\xD5\xC3\xE1\xE2\xFD\xE5E=\x9B\x9E\xCD>,\xBF\x8E\xE6Ͱd\x92\xAEF\xE9\xD10P#~-\xC4\xC0\x87 {\xF5X'\xED\xEA\xFB\xD4D\xABT'\xF8j\xD03?\x8D5\x83\xB1ur~\xBF*\x9B\xC9\xE2\xFAH\xFA([ӷwj\xBE6 -\x91<\xF5\xD4\xC7ܿ>\xF0\xEB\x9A\xF9'Х&\xF3\x87\xD6ٸ~\xFA\xD8#\xE8\x93\\xCD\xC4\x83\x99\x8EKb\xB5\xA9\x9F>\xEE\xFA`>\xE3J\x8F \xAE\x8E|\xB4H\xBA\x8E\xAA\xA7>\xFE\xFA -\xB6\xC2O\xB4}ͥQ\xC4Q1\xD3O\x9Fp}0ϗ/\xB3\x86~*_\xD7*\xE9~\xFA\xC4{\x8F<x\xAB\xA3\xE6\xEEn\xEC9\xD6\xC1\xDCx\x8E1\xB0,\xD3\xF0`\x94Vψ\xB5\xF6\xB90\xE6\x81\xC7\xEBn\xBF_7\xB99\xF5\xD3\xC5ܿ\x91T\xAE\xB9G\x9Bm*\xAA\x9B\xEE\xB4\xD2=\x86\x9Bv\xBEt\xD9\xD7\xFCI-`\x88L\xE6\xC1\x8Cp\xF78?\x82\xDFج@\xC8\xF9\xC32 \xE8\x89\xE7\xB9\xD6)\xF7\xC6c\x9Cۘ\xF0̔\xF8=+\x91<\xF5\xD4\xC7ܿ>\xF0\xEB\x9A\xF9'Х&\xF3\x87\xD6\xC1\xE4~\xFA\xD8#\xE8\x93\\xCD\xC4\x83\x99\x8EKb\xB5\xA9\x9F>\xEE\xFA`>\xE3J\x8F \xAE\x8E|\xB4H#\xCD\xF4\xD3\xC7A\x9F\xA0\xC1V\x{276BF9}4\x8A8\x8A!\xD6S\x9Fp}0ϗ/\xB3\x86~*_\xD7*\xE9~\xFA\xC4{\x8F<x\xAB\xA3\xE6\xEE\xB6\xCE\xFC\xC4׃ܙ;\xCF1\x96!b\x9A\x8C\xD2\xEA\xB1־\xD7\xC02\xC7<^g8p\xFB\xFD\xBA\xC9uȩ\x9F.\xE6\xFE\x8D\xA4r͕8\xB2\xD8lSQ\xCD\xD8t\xA7\x95\xEE1ܴ\xF3\xA5˾\xE6Ox`d\xF8 +\xB9\xBB\xE6\xCB\xFB\xC4%L +h\xDF(NV|\xA7\x8AI\xC1\xDE5_\x9A#\xCC\xDC.\x82@h\xFEV\x83\xAB\x99+\xE1\x81<\xE2\xCF\xE0\x9C)tq\xC8'\xDDS!}\xEF\x94\xDD\xCCp\xC3q\xF8#`xxH\xE9\xCE\xDE\xC2\xFF\xBA\xC2\x9A endstream endobj 627 0 obj << @@ -13527,276 +13533,229 @@ \x93NM\xDE\xD9\x89\x9Fk\xC8IZNʷ\xEE6\xB0=\xAEE^\xE8W endstream endobj -652 0 obj << -/Length 4655 +653 0 obj << +/Length 4522 /Filter /FlateDecode >> stream -x\xDA\xED\Ys\xDBF\xB6~\xF7\xAF\xE0\xDB\xAB\xCC6zÒyrn\x96\x8A'\xA9I,\xA5&S\x8E \x92\xE0\x90CP\x96\xF5\xEF\xE7l -4@ږd{\xA6j*\x95 - 6\xBD\x9C\xE5;\xDF9 -9U\xC6\xCF\xD2\xFEc\xFD\xA0\x8F\x97\xDF?I?[\x9FT\xE3/[\xC0G\xC6}F-\xD0\xE7\xCF'z\x96\xC2z\xE6rU8=ˍSλ\xD9r\xF3\xDB]i\x94+f^\xA0\x9E]>\xF9\xE5N\x9D\x95\x96N\xFD\xEAu:[\xC1\xBDй\xC8\xF3\xD9-\xF5܄夳\xF5\xEC\xEC\x9EK\xE9')Ke -\x98ĩ\xAC\xA0I\xFE|\xA2R_\xD2\xED\xFE\x82\x9A\xC3#\xD2\xF0쇍\x9E}\xD3\xC2|\xBF\xF4\xB72\xDC"\xEF\xEB\xF3'Ͼ\x83K\xEDT\x99\xE7vv~9\xEC\xACP\xB6\xACf\xAF=_\xE84M\x93\xEF\xEBá\xD9^\xCD&/\x92\xEEP\xED\xE1*M\xF5\x8A[n\x9B\xC35_\xBD8\xFB\xFA\xA7\xE7\xAF\xCF_\xDCK\xAC\x9FK=\xF7\xB6[\xCEJ\xA53\x9F\xE1nSU\x96"\x9F\\xC3\xC6\xCD,+\xB4\xB9\xD9\xF96\x8E\xFB\x98\xEB\xE4Gؕ)\x93Đtx]$\xBD\x98\xDB\xAEu\xF2v\x8E߰\xE3Y\x90\xB7\xB6V\x95\xBA\xF8\xBB\xB1\x9AzEk\xE7\x95\xCB\xF4\xB8\xE3\x9A&\xBB\xD8\xCFu\x9A\xA0\x9Cu\x91\xDC\xF1*@\xC6:\xA9<\xFF-u[\xAF\xF9ީ\xD7ز\xE3\xDBw\xB0\xAA\xF6F\x9E\x83\x9B-_\xEE砶\xBAZ=\x95A\xF0 \x98\xA3H\x9AC-\xDB\xDBB\xEF_o\xAAm\xB3\xBBYW\xE1閮~OSC\xD3\xD5"\x95WA\xE7\xA8\x92P\xE0 \xAC\xAB\xB8\xF4Ћ\xC9\xE9R9\xE3ƻ\xD7Z\xFA\xB8BcI:\x9Au\x91?}Ě@u\xC0\xC7xM\xE6qkrVY?\xEA\xB5qYr\x8E -k:V\xCA\xAE\xAF\xAB|\xEA=\x8Bs\xB7\x9F\xE7\xA03\x9B&oIϫ9\x89:\xB6\xB2,,7/\xA0\xA1\x9B\xED%ꙴ\xB9\xA9P\xE7\xF4d\xBB\xC5]r\xD9\xD2\xD0>\xF9\xF3\x9B\x9B\xE5k2\xAB,\xB9±\xFD\xA8\xFF+\xEE\xDA\xE1\x92*o\x93\xB7C3\x9B\xB6\s\xC3M\xC7\xD8-\xBC\xCDDn]\x99t\xA5\x96\x96\xB4\xAB\x97 -\xFAɲ\x8A\x82\xBEyg\xCEJU@\xC6;\x9Fu\xF7\xC7\xE0H.\xEC\x85\xF1GcC\xF7\xAFyQ\xFC\x99\xC0\xC3\xD8\xD9ٌB \x8B0\xCE\xE7\x9920:c\x81!\xC1\xED\x9Eĕ|\xE4\x98U\xCC53\xAD\xD8h-$\x82#]\xC9\xFE\xF1\x91^\xC2y,\xD5"\xF9n\x9E\xA5\xC9st\xF4_\xF8\xEEc\xE2\xF8rY\xB8\xF1\xBA\xAD}X<\xEB\xC5\xE4i>\xECu\xC8¢{\xC9N!L\x88.z\xE2\x99CP\xFAC\xEC6\x93H\x8FlE\xF1\xB2(&c\xA9\xF44\xAA[D&\xA4\x8B\x88A\xC6F\xDFt\x87@\xC5%;o2e]9\x91\x9D\x9C\xEC\xBC\xCDT:5\xA0\xD7Jp\xB3\x98i\xAC\xA3hM\xC0\x99\xA4W\xA5\xB3E\xFE̕\x8A-\xC0Qц\xB4\xC1K\x82\xCCI\@}\x87au\xC7\xEA\xE51˦\xA5.\x8B\xB8\x9B#\x84wr\xD2U\xB5\xFC\xBD\xF0\x8AB\xE80.N.\x99\xF6\xAF; !w|\x8F)X`/аn )\x93j\xA5 -N\x87\xAC3Lӻ\xB63\xA3\x98\xFB7\xBE\x8D\xBA3Q\xC6\xED\xB2\xF2\xB6k֘Ӄ\xB7\xE3JHcNO4v"\xBCby҉\xE1\xAE\xD8\xDB%;<\xA1\xC7<\x94r?N\x91>B\x86\xF2Te֎'\xABA0\xEF@T\xCB5M\xB4j\x88]}\x84\x81 \xB8\xA3eZT\xBE˭;\x9DM -\x89\xCEF\xA2\xCB\xFDTt\xB9D\xD7\x87s\xD2\xF0Rږ\xEDJ\xAE\xDE'\xA2\x9E\xE6Ҵv\x80\xF2\xDC\xD3\xDC0\xFDțe~v\xB6I.\xE0J-8\xA5\xB3\xC8\xACQy \x9F\xEFa\xA3\xDFS\x82\x9E\x8A} -k)\x84UN1\xC1HJw.\xF7\xA1r\xB4ᆁU\xE9Q$3\xE4\xF4\x92\xCB\xF0\xEDVF?\x9Bk\x9D\x8C\xF8;t\xA6\x96r7\xDC\xFF1D?\x825\x8F1\xE2\xF9\xBD\x98\x9D\xB7qn<\xD8k\x91\xDB?\xC0zɞd\xADC\xD9\x8D\xA2\xAFy\xE8qy\x83ZN\xC1\xA58\x93\xAA"09\xA1\x91\xCD\xF5\xE4\xF6D\x92/\xB4\xA1\x87`\xB0d_&R\xEEm\xA4\x80\xD9t\xA1\x84rIyU\xA2"g\xEA\xC1\xC6\xD1\xF3ѽ\xA3Lj~ ?\x9C\xA0\xAE\xA4n\xBC]=I\xE2~\xA8\x8Bp\xBD\xB3\xD8ޮ\x8A -\xE5\xCD6*s\x90\xC9pnWn\x862\xF7\xA4\x92~\x88\x90\xB6Ǡh\x8A-%\xBA\xC7ŔR\xA60\xDA\xDC+7\xC5Ũ**\x92L`㤮9Z\xBF:X\xD9Pj\x81\xFC\xAE\xDFaUu\x910&\xAF:F\xC9e\x8E\xA6\x9A\xF8\xE0.\xE6\x98G\xE6XD@7\xFC\x9B\xF7\xA7~mO\xA5\xEF\x8EW^F\xAA\xC7G:\x98ڤ\tv\x80L\xA5\x89j\xD4u\x80 -)tD\xDBlf\x95˼\xF0\xC0.}\x9A\xC7\xE7Q="(\xDBL\xA6\x83\xE2{\xD1\xD6U\xBF\xCE\xB8\x8F-9\xF1h\xB6\xFDyO_\xEA3\x94\xA3\xC3\xEFPE8\xCD -6\xA3\xDA\xDA/\xB0\xC2~\x82uC\xD6Ro\xEF\xF0\xED\xACLa\x94\xD1ũe\x84x\xE7rB\xD6 -o\x9E\\xAA -\xE1\xF6{-\xED=\x89ȉD\xA4\xC9]D\xEB9\xD0~{\xBD \x98;\x95\x99rjV\xDEfGo(\x96\xD1\x8A$\x84\xCE\xF4\xAF(\x86\x97\x87\x9Dw\xE0\xCA@Yd:\xEC\xEFbOk\xECW\xB2\xAD\xF0]\xEB\xD4\xE5\xC9\xCF7\xFBq]\xD8R'g\x99\xA1\xB6]}\xF9\xE3\xFBW\xAC5\xBE\xD37Y\xB0)ˏ,8\x9F*+s/8M\xB9\xA6\x8C\xBEh\xDA7\xD5\xDB\xCA.\xDA\xED\xA1]\xB7Wwp\x98\xAA7\xB0 \xA6\xC8\xACڤ\x87qo\xB1\x96[Y\xD1hi_\xE3ɟh\x870>\xA8\xED\xA8\xF8\x9C?\x80\xEF\xC8\xD9\xC8}\xE9\x95w\xBF\xE3m\xA8vu\xEF\xEC\xF2\xD9\xF0A}F-\xD0\xE7\x94>un\x95\xCDmx=\x97\xE5\x8A'\xDE*\xD5\xEE!o\xE8\xBEW\xCD`\xBC\xC4z1j\xEA\xCDͶ9,\x9C*\x82b\xBEp\x93\x96 -\xE6\x99.\xF7\x93\xFB\xC7.|b]q\xD5\xDB\xEAF\xBB@\xD4\xFD7\xC1gɮ\xB4Iw\xB3۵\x82\xDC\xC3\xC0\xE6\xDD\xDF\xE6\x8B,E\x86\xB5a\xEC\xF0\xC0..\xB9\xEDC)`g\x8C\xF9\xFD\xF49\x86\xF0\xE2\xC1\xA1'f\xBB\xF0\xCDpt\xB3 -\xD8%\x9E\x8CkSo\xA2{$w\x9A%B\xFF\xF1˷\xB1\xFAJ\x80&oz\x92E#\xDD\xBC\xC75=\xF0^bi\xD7+\xC6Z\xF58\xB0\x85S\xA2\xF9\xD4\xBCQ\x85\xC9a\xF7\xF1\xD2vbK\xE8a\xCC\xD8\xC4ooo\xF1\xE0[\x91\xA9?ȇ' --\x8FJ\xAE\xAB\xFE\xF2x\xB6j\xBAݺ \xDC=\xFB\xE7\xD9\xF9o\xCF\xCE\xCF3_\xEA\ \xC4\xC9M\xA1NH&\xFC\xE7\x81:4@a\xF3\xB7m\xBB\xEA\xED\xBBŲ\xDD\xD7\xA1L:\xE6Mv \x98\xF7\xC8L\4 M\xB4\x87\xCFg6\x8Fu\xF0Ɇ\xC5\xC1\xBE\xE1Ou\xF0X\xB1\xEC\xAC\ʻ#\xFB\xFEt\x97\xFD\xF5\xFE\xBE\xFA\xB20\xCA~\x80\x9D\x88X\x88\xA4\x91\x8Ak\xD2\xC2z{M\xE2\x8F^\x93\xD6H\xA1 [ǚ\xC4[\xA4I\xBA\xF7\xF3\xBE\xA5̴\xA1\xB2.\xB6T\xA7\x96\x8B\xCD$\xDB߀\x847<\xEA\xFD\xE22\x90\xE7\xEDj-\xEC ĩC\xBD\xA7EV\xC0GQ\xA4\xC8\x83C\xA4\xFCFH,\xBF\x93P\xF4\xE51'\xB5\xCA0\xC1\xFFR\xF4J\x83hɇ\xDEuP\xE9f\xFDs\xC0\xCDd\xF1_\x9Ab\x85\x9DDK/\x83\x85\x91\xC1\xCAK\x9C\xD8J\xEB\x835h\xB0O\xB9S7\xBC؇os\x9D\xB4\xD52\xA7\xF0:=d|\xC3[H\xFB\xBA\xBBYu\xB9\xA7\xFA}̯\x86C\xA6\xEC\xEBfU\xE1a\xFCg\xA06\xD9\xFFר\xCD \xF3\xFA\x883\x9C7\xCDUW\xDD.@\x92\xF5Ϡ\x8Cz\xFF\xD0\xD3\xF9D\x97\xA5SyxW\xFD\xE7\xB9\xE3W\xEB\xB1\xCA\xCCG\\xB9\x95\x84\xDF"<\xAD/B̶\xE5h\xC0\xB82L\xD0n?\xBA\x9CR\xAB$?=M -p\xFC\x92\xCC[|ѣ?\x86\x83\xB5S\xB3\xC97\xF5\xB2\xFF\x9D\xC2O6[X \xBC\xC6R\x9D\x867\xC6\x83\xE7c\xC3;v\xF8\xBBO{\x8B.%o\x84\xC1\x9D\xFF\xE94\xF3\x9F\x92a\xA9\xA6Bq\xA9\x87\x97\xEC\x82\xD5\xC4\xDB~3 -i\xF1\xAD\xFD\x8F-\x89`v\xEA\xCB\xE0^\xF6\xD7sm\xEC/A\xFE\x8F\x92\xE1\xD3\xCE\xC2\xFF\x842\xC3\xCFUƅ&\x80Y@\xFA\xA7\x8DP\xD6_\xE9A\xE8賦O\x8Am.\xF9\x9E~\xDC\xD0gC\x9F\xAB\xD0 _"\xBE\xA4m\xFC\xC4\xFAqF\x9F_\xD3\xE7O\xF4^\xC1\xF0+\x80e\x94\xF4G\x85WZ\xF7\xF5\xB7߭\xCBORF\xFC\xD7(\xFA^\xFF]\xED\xF8\xAF\xCB\xE9k\xBE\xC8 \x939\xF1\xAF:\xB8\x8F\xFF\xAB\x85\xE7K\x96\xDE\xD7ȴA - -t\xE0J\xD27>2\xCB\xDC\xA6\xBBW\xFC7\x9A\x9B\xF1 +x\xDA\xED\Ys\xDBF\xB6~\xF7\xAF\xE0\xDB\xAB\xCC6z\xC32\xF3\xDF,\x8FS\x93XJMn9~\x80HH\x82CAYֿ\x9F\xB35\xD0+mnv\xBE\x81\x8D\xE3>\xE6:y \xBB2e\xD2+\xAA\\xC77E\x97O0s1@r3pdj5^\xAC\xA3߁K\x96\xEB\xAA\x94\xDA!>B{!s+\xA5}\xCE\xDBE/Umz\xA8\xA1\xDCi\x94\xA1\x93\xBB\x9F\xAE\xDAv\xC5W}\xC0\x92'\x92\xAE\xC0s\xBB\xB6\xE9}\x9FIB\x90\x84\xD7\xC1\xF2\xF8m\xD3{7\x98\xF8"\xA8\xF8́'\xEC)\xC4m&\xD2p\x83\xE8*Ȥ\x93(u\xB0DҮ^6h'\xCB*r\xFA\xE6Q1sV\xAA2\xDE\xFB\xAC\xBB?GRp9`/\xCC?\x9A\x8B0\xF2\xB8\xFF\x9B\x85\xC0\x9F q;\xABQpd\xC6\xF9<Sfg\x8C#0$\xB8\xDD\xBBr\x81\x8F\xB3\x8A\xB9\xE6H\xAB\x80h\xB4\x96 \x82#CI\xFF\xF1\x91\x9E\xC3y\xCC\xD5"\xF9~\x9E\xA5\xC97h\xE8\xBFp\xEFc\xFC\xD8rY\xB81\xDD\xD6>̟\xF5\x93\x81`\xF24O\xF6&d\x8CaѼd\xA7\xE0&\x84}\xE0\x99\x83S\xFAC\xF46O\x8Fl\x85\xEC\xF1\xB2\xC8'c\xAE\xF4aT\xB7\x88LH+}\xD3B(\xF6(\xDEy\x93)\xEB\xCA \xEF\xFC\xE3x\xE7m\xA6ҩ\xBDQ\x82\x9B\xC5LcEk\xCEH\xDD \xBD*\x8D\x84?s\xA5\xE2\x9F\xE27۾V\xC1`!G\x89kǨ<@D\xC1 M\xE3U\xE9K^\xE3_\xF3\xCC\xE7\x86R\xA4(\x8DS\xB4\x95\xF8\xB9ˑ\xBFjw\xE3p\xB6\x83B?E\xB5YM?\xFETN2\x9C@=a\xE0߸\xA1]\x87P0#>\x9B\xBDɻ\xADV\xC7͋o^\xF1\x9AuY\x87ܡ;.6\x81ți|Λ\xE9\xE14\xD5L2\xA0~\xD3'+N\x87\xAC3,ӛ\xB63#\x9F\xFBw\xEEFٙ\xC8\xE3vYx\xDB5K\xCC\xE9\xC1ڑ\x92\x98\xD3\x89\x9Dp\xAFX\x9Et\xA2\xB8+\xB6v\xC9O\xC81\xE5\x81S\xA4OCy\xAA2kNj\xD5\xC0\x98\xF7\xC0\xAA\xE5\x9AZ5]}"pGdZD\xBE\xE4\xD6\xB0Φ\x86Xg#\xD6\xE5~ʺ\xDC\xAC\x83\xEB\x8E\xDD9Ix)m\xCBv%WbQ\xE6Ҳv\x80\xF2\xDC nX~dͲ>\xDB$p%+CD-\x83P\xB3\xB9\xF8\xB396\xEB\x9B\xDEǖ\x9C\x95\xC9\xFF\x80M\x94\x84\xCE桬r\x81\xDA2\xC8`ּ\xEC\xAE\xED\x9A*\x86.C\xAD\xF6Ur\xF5\xAA\xEE>+O\xAD\xB8\xF5\xC57\xD0\xF0\x8A\xAF\xA9\x80+`*$D\x86\xBE%y+T\xE30+ռ\xA4g\x97L\xEE(4D\xA8_y \x88c\xFFQ5epJg\x911X\xA3\xF2|~\x84\x8D\xFE@ +F*\xB65XK XuX\xD3)&I\x89\xA0\xE7r*Gn\xA2*=\xF2d\x86\x8C^r\xEEne\xF6\xB3\xB9\xD6\xC9Ȁ\xBFGcj\xB9!w\xC3\xE3\xE8\xA7`M\xD8c̃\xE2\xFC\x9E\xCDN\x83\xD987\x9E\xEC\x8D\xF0ퟠ\xBD\xA4OB\xEBP\xF6@\xA5\xE8kz\ޠ\x96S\xF0\xC6G)Τ\xAA\x91\x9C\x84\x91\xCE\xF5\xC1\xED\x89$_\x82A\x93}\x99H\xB9\xB7\x91fӅ\xCA%\xE5U\xBD{\x88\x8A\x9C\xFD\xA9G\xCFG}GLj~~8A]I\xDDx\xBBz\x92\xC4\xFDP\xE1zg7D{\xBB**\x947ۨ\xCCA*ù}T\\xB9\xCAܓJ\xFA1 B\xDAV\x83\xA2y(\xB6\x94\xE8~SJ\x99F\xC0hs\xAF\xDC\xA3\xAAd\xA8Hr+\x85m6\xB3\xCAe^\xE2\xC0.}:\x8EϣzD.P\xB6\x99L\xC1\x{1ECB6B}~7\x9C=pX\x86}\xEF=y\xB8\xAAD\xA7^\xA3\x99\x8B\xFB\xF0\xB0(@\xD3\xF2\xF1d\xA1Z|\x86\x84\xBESHn\x847\xAB\xB6w\x93p\xC75\xAA\xC0\xBE\x91\xAF\x8D\xF4 \xBE\xE6+\xFF&\x81\x87\xF6\xD1\xD36We\xE6\x8B^6\x9D\x84\xE4\xE0\xF1\xFBp\x8Dr\xE6L\x8E.\xA9ًf!\xAA\xDCq\xEB:\xC2\xEDL\xA0\xBD\xC7̜03M\xEE\xA2(\x86\xB7\xFC\xDDy\xF4\xE2S\x9E\xA9\xD22SxU\xE4\xF6腬2z!\xCB`Y\xFFFVx*⋁\xC0w9\xA5CD\xF5\xC8${B\xB6\x9E\xEA\xD4e&\xF9\xF9f\xBF#\x84ԅ-ur\x86 +2y\xFA뫗&8c\xA76!ؔ\xE5'\xCEg\x85\xCA\xCA\xDCE\xFB\Y\x80"\xF8\xA2i\xDFV\xEF\xAAE\xBB=\xB4\xEB\xF6\xEAn\xE1\xA0\xAEz\x9B`\x8B\xB0Y\xB4cmY\xF2\xDE&\xE8a\xDC\xC1\xBB\xB9\xD4!Q\x9Ea\xA6}\x8D\xC7"R\xE8 \xB4D\xA4\xE6+\xCDt\xE4s\xD4\xF4\xB8{\x89\x95\x8Dv\xBDb\xA8U\x8FS\xBAe2}\xA4T\xCE\xE4\x8FP\x82\xFB\x98\xE9 E\xB1\xE1C\xC06V\xF2\xDB\xDB[<\xE6S\xA4\xEC2\xE2\x89+bRd\xE9J9\xC1$R>\x8F\xF9w\x8D\xBE:\xEC\xE8(\xE4\xFF\xEB\xC4X:\xF7J;\xD9\xEB\xFB\xEE+\x809o\x9B\xAB\xAE\xBA]+;_m\x9BY\xA9J'\xDBd\xD2Q@ZAd>D\x87' s\x949<\xA00\x9D\xFEgx}?k\xE4\xCAZx +X\x92\xCE+\xC8\xDAt_+\xF8\xC1\xC2\xEFq\x9B endstream endobj 672 0 obj << -/Length 4559 +/Length 4551 /Filter /FlateDecode >> stream -x\xDA\xED]_\x93\xDB6\x92\xF7\xA7\xD0#UeA@d\xE2rU\x9C\xDDd\xE3Jr\xB9\xD8\xF7r\x89\xEB\x8A#Q3\x8C%Q+Q3\x9E{\xD8Ͼ\xDD\xF8GP3\xE3!)\xE8\xCAu\xE5rY\x82`\xA3\xD1\xE8_\xA34Ș\xB0t\xBB\x9F\xFD\xB5w\xA1~~\xFF\xF1E\xAC\x9F\xD8\xFF\xAA@{ w1\xFF\x81r1\x91$\x8Bc9y\xBF\x9A\xF0\&҉L"\xA9\x98\xBC_N\xFE\x88ޕ\x8B\xA6\xAA\xB7\xD3\x93YD %ә`,\x{23EB9A8}\xB6\xD5\xF6Z\xDF(\xB6K\x9D8\\xDE\xDBwo~\xF9y\xFA\xE1\xFD۞\xDC\xC6\\xA4~\xA4\xD4e:9Pf\xFEC\x96\xBF\x9C\xC3#\xC0\xEF\x8C3ND>\x99\xA5P\x92jv\x81=\x9A\x8A\xC7\xFE\xA4\x9F\xB9'\xBE>\xF7\xB5a_\xF9\xFF\\x90}M\x9D\xE0?\xB8\xA5\x90\xF3\xF7\xF7/\xFE \xD91\xFC\xA3\xC9\xFCМȔM\x9B\x98\x9B4\xA3t\xC2 \xCF\xC0x\x95\x93Ջ\xFFYW/c\xA9X\xC1[\xEA\xE4t\xD8cy\xEE3\xF8LJx\xB2\x84{o\xD1\xF6\xE7\xD9\xE4N\x95\xDC\xC0\xCD\xEEz\xF2\xB8=m c$O>\xF7\xB8~8~\xF8xJ\xB8\xF1<\x81DP3\xF1\x89\x94\xB0\xFB\xFC&R͏\xE9p1\x8C\xFF\xC3n\xEC\x883\x81\xEA$\x8D \x85\xCDh4\xB3\x9C\x88$q\xFA2\x94\xAC\xEEgG\xF6\xE9\xEAjL\xFB\xE8\xCE@\x9A\x9F\xE5ӨC\xB7\xF9\xB6\xEF\xCF\x80S\x92\xC0\x82mU'\xA0d\xC7\xED\xE5;aZ\xFFW\xDAK\xEB\xE9\x81H\x92f,C\xC7Id$\x96\xE0\xE7QN\xE2\xD88N\xB4\xB7ybr\x92\x81\xE3%$F\xA1\x80\xDBX\x93y\xB5/w\xF5\xA1j\xEA}U^k\x9A=\xA4j``\xE2\x98$" \x98\x96l8\xC0\xA5\xD90\xDD\xE6\x87L`\xC1:\xDD)\xD9\xF1D/\x98F\x8ATjMgc\xC3R"\xA4x\x98\xFB\xF3\xE0"\xF2\x98d,4ZZ\xAA\xC1\xC02\x94d\xACt\xDB*\x81\x85j\x95:\xA4TGӼND\xCE .Z\xC1\xF9X\x9C\xF0\\xEA\xDC\xE1\xA4Z\xBE.\xAF\xAA\xC2\xE5\xD5.\xCEKF \x86FKK6\\x86\xD2샗n\xF3C&\xB0`\x9Dv\x87\x94\xECx\xA2\xC4L\x96\x90X\xE4Zٓ@\x98\xD9\x9B\xF2\xF5\xFB\x9Br:KY\xFD\xFD\xCDO:\xD19\xAF\xE6\xAA\xC8yX\x92\x94\xA4<\xFC\xC8Ӓ -\x87\xA5\xA14\xFB`\xA9\xDB\xFC\x90X -,X\xA7\xF6!%;\x9E\xE8\xB1$\x92\xE01\x82 -\x84\xA5\xE3~\xFD\xFA\xA6iv\xDF\xCC\xE7www\xC6"R,\xC8\xF1\xE3\xFC_\x9B\xE2\xB6\xDC\xCE7LMX\xEE<<\x81eY\xF0\x85\x8Fl8< -\xA5\xD9O\xDD\xE6\x87\xC4S`\xC1:\xD5)\xD9\xF1D/\x88'\x91iwXD <\xED\xCBuY\xCA\xC3\xEBW嶸Z\x97\xCB\xD7\xCD\xFEX\xBE\x9A۫WsW\xE2<8\xA5\xA0\xABI\xF0e\x8Fl88 -\xA5\xD9N\xDD懄S`\xC1:\xCD)\xD9\xF1D/\xA74%\x94g2\xD02\xC2<\xD8:B-\xAD\xFF-\xD9p\xFA?\x94f\xFD\xEF6?\xA4\xFE\xACSՐ\x92O\xF4\xFA\x9F\xAA -\x84\xC5&\x82\x8Dƣ\x87\x8C\x8C\xE4\x80&;d,\xCB]\xB9]\x96\xDB\xC5\xF9#\xE5D\x88<8bZ\xB2\xE13\x94f\xC4t\x9B1\x81\xEB\x94;\xA4d\xC7\xBD b\xD0=\xCC ft0-Fb\xF1-u\xB2\x9A\x8A\x98P\xB85c \x893\xB9\xF77S\x95P\xF0\xA9\xE6V\x98L\xA2*F\xE0^G+H\xC0lK\xAB֘gJ\xAA\xFB[\xB8\xBFX1\xB9,u\xFE_xq\x80|\xA09\xC3\xF4\xD25&\xF6\xD8,S\xE5n\xAA\xD1\xE8x0\xFB\xB4\xC64oK\x8B\x8F\xC55\xF2ts<\xCAd\xFD\xAC8\xF8h\xAAm\xB0=\xD5A?\x83\xFCߔ~}\x95\xA9f[\x9B\xC6lu\xF3\xE1gih6\xB1\xF0ZQ>\xA8\x92\xBC\xCBY\xE3\x89\xED\x843\x95w5e\xFA\xBA -\xBA#\xCFs\xC2IJ\xC9R\x90\xFE\xA4S\xC03\xEA\x98=<S /&}\x87u\xA9:\xB6\xE6\xA6\xFE\xB3-\xEFt\xA2\xB6b\xB7 -\xD3\xE2V\xE9ey;\xAD[r\xF9Rg\xDDO\x85~\xE4\xE8ѯ֪5"\xBA.\xAF3m7\xAB"\xAA\xA1\xF5\xD1姊\xAB\xE2\xD6u\xFBu+\xEAZS\xDB`\xA3t\x9Doo7\x9A\xF6B7\xFC\xDA\xF2/\xFC\xE7\xAFJ\xEB\xE1bg\xB5f\xA3\xEB\xF93\x8E\x99\xD56\xF4\xAC\xC4MN+\xE4$\xCF gF\xC8?\xBD\xD5_,`Hc\xDAWl\x9Dk\xEA\xC6\xCC]\xB5\xF8\xA83]T\xC84\xE6\xEC -Ta\xE8\xE7\xD2<f\x9E\xA9\xBA\xDA\x9A B\xE7I\xDE:\xC4ǡ\x93\xD5ê\xD5\xC1\xE3\xE0\xA6\xDC\xE8\xBFk\xEA@\x95\xAE\xB7~V[Lq\x8D](b.\xB9G]b&\xCD{\xCB\xF7\xEBUH\xD7i\xAATH\xD1h\x8C\x99\xE9\xF5\x89ނ\xE0j\\xA7^/\xC0T\x96\x8B̨\xBA\xB3UK\xA0\xF5\xFEz\xFE\xAE^5wž\x9C\xABWJ̗\xF5\xE20\xFF\x83n\xFF\xE7\xFBz\xBB\xAA\xAE\x8F\xFB\xA22\x8B<\xB1v`H\x9CP\xEB(%\xBB'\x93$\x8Esem\xA9K\xC1\x82'\x84P\x92\x80\xC4\xE28\x8ET\x98}\xFB\xDE\x95<\xA0n\x82\xB4\xE6V\xA1\xAF\xA64\x8En\xAA\xDBRW\xD4\xE1-\x80\xB4b\xA1DR\xF0\x83\xBA\xA6D\xD3\xDA`\x81\xD4].Lj;\xAA\xBA2X4\x96\xB96\xF6aU\xC0 \xA7p\x99e\xD2\xD8;\xA1\xB1*\xBF\xA9օ)\xD9\xD4-\xF4nLUo\xBF\x83\x8B\xDF?_\xAD\xD1\xCF\xD6\xC2\xC62\x94\x9F\xA6\x949$Xմ\xB6\xF8Ʋ\xA0ڶ\x9C\xED\xDA1\xE6\xDET\xA8\x9C6\xFB\x9CB\x95\xB9\xA3-\xF1\xD5\x85\(M\xAE\x8C\x80\x8C\x97\x8F- \xBE\x8D.\xE8\xD7\xEB"1h-]ί\xE4* \xF2}\x8C\x9DY\xFE0\xE5@\xC9^\xB7\xD4\xFE\xE8m\x9D%L$Z\x9C\xA4+]\xD6{\xC9\xEF\xA4$CNvi}0\xD2.\xAC5u\x8D2\xC6\xC9aOw\x90\xD7\xED\xB1 \\xB0X\xD5tN\xC5V\xFD\xEF\x9F~3\x965Zuצh\x94\xD2=T$\x9Ee`O -ſ)ո\xB3\x98V\xDAZ\xA7\x8E\xB3\xDAm\xD9{M\xD7\xE1yni\xB4\xA9 -\xE1jQoQ'\xCAmUn\x8F?3\xE29\xD7\xE7\xA8\xEDHa}\xAD\xA3\xE5f\x87\xC2\xC21\xBFk \xD3'$\xA7}\xAF\xED\xA9Se,\xEA\xA2uV\x80\xB2\xD3\xE5rom\xFB\xA6\xBCs\xFE\xA8r]f,K\xAC\xFDD\x8C|\xC5ܸ1\xCA\xFBh<\xBD]\xE9\xF4qk\xD0ʹc\x89ג\xC7t@Xm\xF6\xDD@\xF0O6\x9AV\xDD -NV\xF5z\xA9[\x91\x98ַ\xE6\xCA\x9A+KulJs\x85gЬq\xC0.i\xEC\xF3>k8\xC4X\xE4\x9B7RA\xAEV\x83C\xE5\xA1o\xB5\xFC\xBA=\xCB\xC1\xAE7\x810f\xC74\xF5\xA4(\x92sㆨڵ.\x81\x95-\xEEu\xE2\xAA\xD4\xFF\xB2O\xAC\xAC=\xE1\xE6P\x861\xDD:\xD4<j6\xD6sTos\xE8\x90\xC7\xD7uш\xAF \x98,3ѯSH\x97\x9F\xB0\x81/\xBB=\x84-\xF3{\x9Ak\xEFRw3~-ϯ\x8B\x9F\xC1\x86],\x89\x8B\xBD\x8D\xE5ƍ໌\xD9`ی\x83i\xF6\xD8g<i~\xC0\x8D\xC6Ђ\xB5\xAAT\xB2\xE3\x89^\xEE -\xCB=\x9E\x9F\xF5n4I\xCA\xEC\xBA\xE2b\xA9߾\xA1]~h\xEAY\xFB\xF2,\xA3\xF07x8\xA7G6d\x86\xD2\xEC\x99n\xF3CB&\xB0`\x9Dv\x87\x94\xECx\xA2\x84L\x86\xA1\xA5əoG\xEB@Fm\xBB\xA4\xCA=\xD1+\x9B}\xBD&1&\xF9r\xBD\x8F\xC1Q^>.\xC0^H -\xCF{!g\xB0\xE1Tx\xA8$.\xB8;O\xC1\xEA3\xC6T:\xE7f\xDB\xFB{\xA5{'\xAF5WI\xB3h)\x98\x85}k6\xE4\xF5\x8A\xA4J\x9C\x88\xE1\xB2Ӻ\xB4\xEFF/ͭ7\xC5\xC1<x\xB8)\xD5B&\xEF\xB7M\xF1\xE9\x8C={\xC6\xF3\x9D=\xFB_\x91 o\xA5GD\x95\x99\x8D=\xBE\xCD{0\xBB\xAEMmgr8\xF3wp\xEC$\xA2\\xAFfM\xA9\xA6jf\xA6Ymn\x8B~Y\xDAE\xDB\xCA.m\xDE\xE8\x8CvrL\xA3\x97\x97]\xEDƧڜn7zm\xD2엫\xB4a\xE7vf\xEE\xDC\xE5Rͭ\xD7v\xB2n\xBC\xBDh=\xDD\xDF\xE8\xFD\xF4\xFE\xB3\x98\x87\x81\xFE\xD3/ؾ\xB4\x8E\xB3/\x9C\x82I\xCEϱ/\xCFS\xE8a_Ƴ\xE1\xEC\xCBPI\n\x96C3\x92\x89\xE0<\xB2\xE1\\xB6\xA14\xFB\xB8l\xDD\xE6\x87t\xD9֩NHɎ'zA\x97\x8DQ"E\xC8I\x8E\xF3\xD8\xD4\xD0\xD0ۜRT\x91/ؚ:\xFE\xC6S\x8A\xEF\xEA9˘>O\xA1\x871\xCFF\xAB\xBC\xC3q\xC9HJ\x96\x93\x94\x83\xE3\x8Etl^\x9C\xF9;\xF8\xCESklD\xCEq[5&\xB4\xD2\xF8`\xBB}=\xA5\xA9Z)_\x9E\xBAs\xCA\xC7\xED\x89\xE1\xF6\x80_B3P"|!\xAE\xC3\xFE0\xCD\xF5\xAE\x82 \xBC\x9Ff\xA9v\x83\xA4\xF1̄\xE7eyf\xE1m\x8El\x97\xFA\x97G\xBD~+\xF5>\xC6䘀\x9Cvk^\xE2\xC67\xD2P\xDF뱞\x8FT\xFBm\x98\xA2\xEC\x86\xF6t\x83[ -\xB5}\xAA\xF7̴o'#\xE7\xEE!-\xBD\x92-\xDDJ\xB6ݫ\x90\xBE)\xBCm\x89[ŏ\xBAe\xAB쓁\xF8I\x96\xC9/x\x8E2#T\xE4\xCAj\x8F7#=(<oF\xCE`Ú\x91\xC1\x92\xB8\x98OFSAX\xFC<\x98G6\x98O6\x98f\x9F\xEC\xA4\xF9}\xB2Ђu\xAAR\xB2\xE3\x89^\xCE'\xA3i\xAE\xF6\xD0/\xE1\x94\xFDU\xEC\xFB\x9BS<\xA1\x90\x8A/\xB6\x8E3\xA7)'qz\x969}\x9EBs:\x9E\x8DV}J\xE2\x92n\xC8\xF8\x9AЄaW\x83\xBFߗE\xD3~,\xD08Y\xB8Ϭ\xFCi\xF7\xBF\xD1!\xE2v=\x88юcU\xF9\x8C3h=k\x83\xB4\xD3A\xDAf+R\xEE\x81\xF8\xB4>\xA2\xF1\xD0\xD5\xCBD7\;g$\x8E\xB3\xD3hm\xE6ac\xE0\xB2vELbl\x85u\xE8\x8A\xC5M\xEB\x8D\xD5\xFA\xC1\xFAJ\xC5د-Zg}\xB2\x9D[ -\xCB\x©\xEFf\xA4su\xD0CI[v"\xFD \xA3\xD1喕.\xB9\xC0\xA2kS\xCDJ\x85\x81\xB8S\xBE\xDF(\xA3wS2\xBC°\x90[\x89\xA4x\x9B\x8A1f\xB0\x95inyj\x94\xC6\xB2\x92\x8E\xB8(k{.\xA5\xE8\xC8\xAD'q"*\xF3$\xC2"\xFE\xEC\xF1sZ\xF8\xB16\x9F\xB0\xE3\xCC0\x83\xAE\xDAc1\xDA\xEF=9В>\xD57.\x9E\xD4_\xDC\\xDB\xE8K\xE8bbZ]D\xE4\xB6[\xA9\xFF\xA4\xA0\xE4\xD6VUl\xAA -h\xB6D\xFB\xBB\xDF\xBF\xF9\xF1︴\xFC\x8D-\x84 y|\xCEi\xC8\xE7 <?V\x8Cg\xA2}K\xE50)\xC4\xFF\xA7\xAC}\xFF\xD6mj\xBF+9I\xC1m 1;\xDC|\xFDt\xE6\xD7o\x97~\xE4WA>\xFD\xD8\xCF}\xFB\xF4\xB3\xD83\xAA\xCC\xBF\xDCȌO\xF9_0r\xC6j\xDFS\x8Eq\xB8\xE6q\xFD\xA8.\x8E\xEA\xB7R\xBFK[\x88\xC7\\x9DÈ\xD5X\xEF\x9Ex\xAB.ީ\xDF7\xEA\xF7\xF5\xFB\xB3 k\xE3\x97\xC1\xE4ϊ\xAF&YJ(u\xEF\xEA\xF9\x93'Ҕ\xEAp\x9Cfҕ\xFA\xFE\xA6\xD8\xE9\xEA\xDE\xFA\xFB\xDD?\x96M\xEB\x90<(\x97\xC4Q\xF3\xC4Rho\xF7\xEC\xF3\x92\x9D\xFC1c0ȱ\xE8\xB7)T\xA6\xC7b\xA9\xFE\xA3\xF8+\x92\xD5=?\xAA\x80\xA7\xF2o\xF2HW} +x\xDA\xED]\xDDo\xDB8\xEF_\xE1Ghh\x91Ii\xB7(\xB0\xDD\xDB\xEE\xB5h\xF7\x{1B6E57}\xEB\xC5V\xB5\xB6\xE5\xB3妹\x87\xFB\xDBo\x86_\xA2\x9C4\x91d(EQG\xA2\xA8!g8\xBF\xE1\xF0c\xA8\x980>\x89\xDD\xCF\xF6ʻQ?\xFC\xFA$\x96'\x99\xD8\xFF*C{O_\x9C?\x99\xBD\xA4\x89\x98H\x92ű\x9C\x9C_N\x92\&\xF8D\xF2\x94H*&\xE7\x8B\xC9\xFB\xE8]9o\xAAz==c2\x8B(\xA1dz&\x8B\xFEv\xD1պZ_\xE9\xC5z\xA1/\xF6;\x97\xF6\xFA\xB7o\xA6\xCE_\xF7\xACm\x9C\xC1 +\xA7\xF0#\xA5\xCE\xD3I\x81<\xB3\x97Y\xF5Mx\xEA{\x96\xB0\x84\x88|r\xC6!'\xD5Յ\xEAQ.\xEE\xFB\xC3x&\xBE\xBF\xF7\x9D\xB1\xEF\x82\xFC?d_S4{\xC9\xE2dBc\x92\xC6q\xAE +%\\xF2\xC9\xCBI\x96%\xDAР)L\x80r\xC7\xD1\xDBbJy\xF4\xB94VrQn\xCA\xF5\xA2\ϫr\x87\x85*\xB3\x95*\xB8@j1ɁH\xFF\xE8DR\x92\xA5l"c(Ld\x93\xF3PF\xBB9\xA5\xD1 \xC6\xF2h^ U&\xA3b \xA5E;xR\xEB'%\xFE͢\xFA\xA2\x81Ģ\xC2\xC7k\xB8*:\xBD\xB9\x86\x9B\xEDTD\xF5\xFE\xEAZ'\xFD4\xA5y\xB4\xC1\xDCs|XjBPZ\x9F\xA7<*MY7\xC9\xC0\x83\xE6\x84e`\x98\x81\xAF+\xAC\xB7\xCC;Ra9#,M\xBB\xB4>@;\xB2\x8CG\xAF\xA62\xBA\xD4\xEC\xDC*\xE6\xF4u\xB1\x9D\xB2\xD8rT,\xF5]\xB1\xB8\xD5 \xB6[\x82\x8C\x87\xDCfQ\xB5\xB6\xE4$ʖF\xFB\xADN\xD8(\xE9}\x84\x84\xF5TSj˄\xB6AI\x9A\x97\x8B\xC5\x99u\xF20-+\xB2ĕ\xDCmY;\xFCˣ\xFF\xA4Fkt\xAB膜\xDFN\x81ߧ:\xF7ǽj\xFEFg\xC6\xD2\xD4E\xE3\xDAQ\x80T@7\x94\x96,\xEBiG7\x86g-\xABuiJ\xAB\x90rS\xEB\xCB\xEA\x89J\xD8\xD4+\xF2e9\x99T\xF3\xD1 \xFE\x83V\xD3\xD0X\xBF\x9C?\xF9\xF7\xC7(#t"\xF0W\xA6\x93\xF9\xEA \xA6\xA6\xBD +:I@%@q\xCA\xC9哿\xF7R\x83\xBBe\xF5\xF2TU\xF0\x91\xFA)\x9D\xEA\xB1<\xF7+\xF8\xFEC<Y\xC0\xB3\xD7\xE8 +\xE5\xD9\xE4F\xE5\\xC1]\xDD\xE5\xE4\xD4\xF6\x83\x9C$\x82=\xF4\xBE~;\xBE\xFB>')<\xE8A!\x94\xC4L\xDCC\x83'B\xA9\xD1\xD5\xE0INdL\x87Kb\\xDCmɎDS(NFxbu\x86\x81@3)+\xD5iM@\xA9\x8E\xA6\xD9k\x81\xD7\xFA\xBF\xCA\xD0\xDE\xDAA$%<cv\xC6"#1t\xEDB@\xB30۵\xF0\xA0)3\x831DO)\xEC\x854\xAB7\xBB;\xAD\xD7'\x8C\xD3\xF4\x84\xBB!`^G\x85\x80\xE1\xFB"K\x8F\xEBA\xE1\xF1\xB0#\xAA\xD1\xEA\xF0@I\x84:\x92@i2\xA3\xDC;t\x80%( \xBA\xE3\xABV\xC1\xB7Fo~\x9E2\xA3)1Fs\xD7l1\x907ګ\xF3v:Y2\xCA\xCC\xC4Cz \xB7H\xA1V\x81\x9Cp\xA7\xC3\x97CB\x80;!\xBBgTĄ2NI"\xCD\xD2빋\xBD\xE4\x91Z\x99\xD8L(*\xCFTH\xEE\xA5 +\xB75q\x9B7\x95\x8E\xCF\xD4w.dw\xBETA\x98\x8BR\xA7\xB4\x91\xBE@\xF3\xAF\xE7:\xEA\xC34m\x90+Wq\xBC\x8A\xDA~g +\xF6i\xBF\xC1\xEB\xA4\xCDY\xCC?WX\xDF\xC6+7B~5Űb<h\xC3\xC5 +'\xC8_\xB1nt\xAA)7\xD5\xFC\x93Nt-Pa\xA51eS\xA0 +C;\x97\xE65\xF3N\xD5\xD5~\xD0Lz\x92\xE6\xA1cFj\x8D/+\xAA\x9DW\x83\xEBr\xA5o\xFC\xA6\xC5\xD7.\xA6\xAA\xD5u\xBD\xF6\xB0Z\xD8b*\xD1,\xE6\x91k\x83\xA3\xA5yak\xEB\xBDkTt= ]\xA4\xA9R!E\xA3\xE9=\xAF:bpD\xA2\xBAu\xEA\xB5\x98j\xB5\xC3P\xA9\xBA\xDEe\xABf@\xEB\xED\xD5\xEC]}\xD9\xDC\xDBr\xA6\x8EX\x99-\xEA\xF9n\xF6\xF7\xDC\xFE\xEB\xE7z}Y]\xED\xB7E3d,y`\xED\xC02\x908\xA5\xD6! \xFA\x83\xC33l\xAE3\x86\x8B6Y{*BjNEP\xDB\xECۃ`\xD4\xE5\x95\xC4=7\x8Ft\xD4>4n]W\x9F\xCB\xFBOK\xC8eS/i>I\xF2\x84d\x8Ciٜ{\xF0;\xCBnK\x80\xB4EնTua\xC0hLsm\xC4em\xE3\xE8Kc\xF0\x84\xB2\xC4*\xFF\xAAZ&gS\xB7ػ6E\xBD\xFE n\xFEx\xB8X\xA3\xA0\xAD\x89-\x8Ci(\xBFL)sP\xB0\xBAi\x8D\xE2mq\xB6i;\x99[S\xE0}\xC7\xA8'\xDA_lQȅR\xE5\xCAX+|rVtqW.m +]b\x92\xC8觝\xCE}\x83\xE6\xFB\x80Iն[4\xBDS\xE6IM\xE4$\xA7F+덯d\xA6Sݮ\xBB\xB9\xD1 +\xDDmB\xEFxQO\xA9\x8E\x9B\xF7\xA9\xD7\xE8\xA6k\xEE\xE0\xC6\xB2=\xEC\x83Z\x96-VG^\x88\xA8\xB0\xEF-qO\xB1\xA6ui\x8F Y\xE9\x8C~\xB9> R{\xC6F\xA1\xF3\xF9\x85\xBCC%\xC1:R}*F\xF9r\x9A+\xD7\xE5wΏס+d2G\\xAF\x9C\xB7=z\xB98t\xD5N\xE5\xDC\xEB\xCBL\xEB\xDC5\xC2\\xE1\xAF;3\xFD\x8FFc\x9Cp\xBF\xDDyq\xAF\x82\xA3\xE6\xC5焧\xFC\x88y\xF1\x9F?\xA2v^|\xB0$Nv4\x8C5\x89\xA4\xC1\x83\xCE<\xB2\xC1\xD6\xD3\xEC\xB1\xD6x\xC0~\xC0\xB5\xC6Ђu\xAAR\xB2㉞.\x84\x86\xA5\\xF7\xE7G\x9D\x90&IJ\x99\x9DX\x9C/\xF4\xE9\xDA姄\xB5<ϒ\x84\xC4"xԙG6d\x86\xD2\xEC\x99.\xFB!!X\xB0N\xBBCJv<\xD1B&\xE1$\xEC\xC8C\xD2:\x90Q\xEB.\\xB9'zf\xB3\xB7\xE9\x8C}\xC3^H[\xC1q^\x88:\x9C\x99\xE3\x85<N\xA1\x872\xBEN\x85\x87JÅ\xF34O \xB8\xCDP'\xC8D\xCD\xCE䟕\xEE\x9C\xF3\xAF.ͤ9\\xC1(\xECG\xB3"\xAFg\x8C\xE0\xAAāN;-K\xFB\xB1\x80\xD2<zQ\xEC̋\xBB\xEBRM\xB4\xE0\xE5\xED\xBA)\xBE\xB1hϘ\xAA|g\xD1\xFE7\xAC\x847\xD3#\xA2ʌ\xC6\xEE_\xE7ݙeW{d\xB2\x85\xF9+8vQ./ϚR +\xD5\xDCY\xCBs\xB7F\xBF(\xED\xA4me\xA76\xAFuB;8\xA6\xD1ӻӮ\xED!\xD3\M\xFB\xD7\x{D894}\xB94\xE6\xEA\xDAT\xC7v\xEE\xF4g\xBF\x96wψ>X\x8C\xD6\xC3\xFD\x95^P\xEF?ʡ2'<\xFE\x86\xED\x8BW\xC1Q\xF6\x85f\x8C<ܯ<b^'\xF0\xB8u_ k\\x8B\xE1dC*\xC0R\xF2\xE0!l\xD9`\xFE\xDA`\x9A=\xFC\xB5\xF6\xFAk\xA1\xEBT'\xA4d\xC7=\x9D\xBFF\xA1\xB9%\xA7!\x878\xCE_SCoc*\x84Z\xBA\xFAv\x8Di[\xC1q\xC6\xDE\xF8\xEC\xA1nj\xE9\xA3z\xD3ѕh\x95w\xA0N\xB9\x8F\xBCF\x9Ep\xB3\xEAe<\xB5?\xC0p~Zc\xF7\xE3\xEC\xD7Uc\x92@+\x8D\xB6\xD9\xD6\xEA#&\x95vT:Μ\xF2\xF0F\xFBa\xB88\xE0\xED.\xA1 \xF4a\xE6\x83/\xA7\xB9^R0\xDB^H㖉\xCEG>n +7o\xB7\xE0\xC8v\x9E\xB1ד\xB7R/\xE1\x86\xB3\xA7]\x97\x97\xB8\xEA\x8D4\xD4\xAC\xDB#բ@\xBBIQv\xF7\xF5tw\xB6(j\xEDT/\x98i\xC7NF\xCE\xD7CZz[\xBAil\xBBP!}Rxk\xEF\xF5\xC97\xDC!\xA3\xA0\xFA-ې\xB6\x82\xE3l\xCD|Gyd\x8FS\xE8aE\xC6WÙ\x91\xA1\x928\x9DO\x83I\xAC\x80G6\x9CO6\x94f\x9F\xAC\xCB~H\x9F,\xB0`\x9Dꄔ\xECx\xA2'\xF4\xC9b\xE8\xD6\xD2\xD3\xF8d\x8Bms'\x84\x89oؚ\xBA\xFA\x8D3\xA6\xF0z*\x8E\xB1\xA5\x8F\xE8aJGW\xA2\xD5\xDCaR8\xA5?&\xF1\xE36+\xB8R\xFFO\x8A\xD5G endstream endobj 610 0 obj << /Type /ObjStm /N 100 -/First 894 -/Length 2400 +/First 896 +/Length 2407 /Filter /FlateDecode >> stream -x\xDA\xEDZko\\xB7\xFD\xBE\xBF\x82\xE3|\xE0\xE5p\x86C\xB2\xC81ܤpZ\xD7rR\x86Q\Iky]yW\xD8]Eʿ\xEF꺩dI\xBB\x8A\xEE6Z@\xC3y\x9E\xE1\xDDT\x92.u\xC4mv1'\xB4\xC5 E\xB4ե\x84\xF758\xAD\x82\x96\\xE1\x826\xBA\x9A-;\xA2h\xC4QT\x9E\xA4\x9AI <\xC1\x94I0W͎\xD4&\xAA\xC5Qa{U\xD5\x9D\x86\xE0"\x91\xE2\x82\\x8C\x8AEBt\x911\x99v1Ŋ\x8B\xE2\xA2j\x9AhH\xB8\xC0\x82 \x81P\x838\x94\x9C9\xA6\x84'\xC0\xCCx\x84v,b\xAF\xD0Ƕ\xA1\xE8\xC7C\xEBq\xC9X\x8B\xB2R\x99(\xD9n\xF0Pu\xAD3\xB6$3.\xC8IR[4:\xD1jO\xD8Iat\x8E\xE2\xA4*\xA0F$T\x85ݒ\x8DJ\xD8dd\x9D(\x93\x86۶U\xB0:F\xA6\x9E\xD9Ĉ\xCEl\xBB\xCD\xD6'\xD9zva\xFD0\x87B%*\x90\xB5 -.ZG\xC1Ȝ\xCB\x8F\xA1\x91ֹ\xB8\x86ru\x99\xA1\x97\xD9\xF6.\xE42 \xE2"\xBA\xAC\x8A\xA1\xC2.[T\xC4\xE5Z\xACOr\x85ĖPWb\x8DM\xEC\x8A@\xD6L\xE5J\x82 \xE2\x92\xD8t\x8A\xBB\x86\xA8\x8A\x99\x81b\xE9b\xF2R\xD8I\xB1\xC1\x9AѵIH1e\xCD4QͮR`\xA8\xAD\xABVW\x88\xAF \xA6\xA4Y\5\x8D*쯚\x98O\xAB\x9A\x803\x86\xAB\xED#cx\x8E&\x82j\xF6& -\x805\x8CB\xAE\xA8DL\xB3\xD8Z3\x93t\xC1\xCC\xD5b\xBF\xB5\x9A\x9Ea\xEE\xB5\xEB\xDB\xC1,qe\xE2\x85\xFEqU09\xAC\x9E\xEC&i\x90DnWf\xBBX\x94B\xB4\xBD\x98\x84h\x88\xCDB4\xC8\xE6!0\xF3\x83\xC0\x86\xCC!0֏\xED\xA2\xC8dooҽ\xFE\xE5l\xEA\xBA\xFD\xF9|\xB1\x9Et\xE7\x87\xEBv\xFFb6\xFFǤ{\xBAXO\x97o\4\xBC\xEB\xBE\xEB^v߾\xA5v3\xE9^M\x8F\xD6\xEEmI\xBEtL\xC5gȋ\xB4z\x86\xA2\xAF\xBD\xF6\xDDޞ\xEB\\xF7\xC7\xC5\xEB\x85랹\xAFV7[\xCC}\xF0\xEC\xE9\x89\xFB\xE6\x9B \xFE\xC6"\xC5'\xD8J,\xE2 [7`\x91\xEAF$q|$\=̝ -y\xCE,\xFB\x9C6\x8B\x84\xC7\xB3\xACM\xB0 \xC6\xD9ǚ7"\x91\xF1\x90P(N\x8A`\xED\x84 -\x84\xC4\xE1}\x88\xB9\xBE\xF0P\xCE\xAF\xA1\xD3X\xFE\x85'\xA8O\x88f\xAE1.\x92BY\xBA\x9E\xF1M\xEB\xE1|4/ -xNi\xA3\xA6\xD2\xF8\x92!@JH1\x89O\xC8+T\x93\x97$\xDBH&\xEDBS\x94\x937\xC3̞ͫ\xC4%\x9C(JՓ\xC5n\xCD\xDEreH\x89y\xA3\xA2t\x82\x81\x82`/\xA0\xB6c\x90ć\xB7\x91\x8C\xEEDQ\xC2>#_K -\xB0a\xCB\xD7X\x88h;<qx1\xACf\x90 -\xDE]u -\xEF-\xAFl\x94\x8F|\xBE\x8BE\xDC\xC43\xA2keB\x9E\x90I\xE4(D@PAEl\x96|\xBB\xE5}\xE8\xCF\xD6\xD3%\x90\xC8\xE8\xA1ql\xB4e*\x98/\xD5 -qFv\xC0\xAB\xE9\xC0j#\x82W\xA7\x86J\xC2f\xD7\xFC\xF9\x99{\xABA1\xF9+\xD7=\x9F\xADB\xB5\xF0\xEE\xF3\xBB\xE7\x8B\xF9\xBA\xCD\xF4\xDE\xF1Ջ\xACAؿ\xBA1\xB6\xE2h\xB8A\xB6\xAE\xD4n0G\xF7r\xB98:\x98\xAF\xEB^>{\xEE\xBA\xD7\xD3˵{w]/\xFB\x93\xE9\xA4\xFBKM\xE7\xEBj\x9Dl\xC3m\xA3\xAB\xC5\xF9\xF2h\xBAjT{\xF4\xC3\xF4x\xD6?]\\xBA&+\xEB@\xF2\xB1ݗ\xFDc\x9D\xEB֯Iu\x85U\xADr0,V -^\xB5qhyh?\xBFOC\xABC\x9B\x87\xB6\xED\xD5\xAD\xA2\xB9j\x87\xF9\xE20_\xE6\x8BW\xF3\xBD\xD73Y\x98D1\x8B\xC1\x{16ABD1}7{ T\xBD\x8Bd\x82D\xE2ɒ\xF2+\x94A\xCFD\xB7\x84\xB3\x83\\xA2\xC6ϪU;\xA0\xAD\xA8\xAA3\x9C2\x84\xB8\x9Ed5焁0'\xEA9\xAB\xFA|\xDA\xCF\xF8\xA1 -\x953\xC8Yn\xF1\x86\xD4\xE0\x85\xB21H\xECB0 A0\xD8 -2\x88\xD5ٰ\xA5\xBA\x8D`xv\xAC i1\xA5\xC6 n\xF8(m\x89g|\xFA -\xCA\xEA\xEDd\xA2\xD5vpd\xADn\xD6\xD4L\xC9\xD5ι\xA8\xB5\x8B\x9C7I\xE31b\x96-\xCF"\xC1\xB5\xB3h\x91\x8CO;4\xE4V\x91o\xA7qd\xE5\xBAn it *\xA9lgO\x92\xB0\x93Q\xE4\xF6Xן\x9DM\xE7dzK\xBF?>\x8A\x8C\x90_ -"\xA8݃\x95i\xA0\xFBa<\x86\xC28\xBB\x92\xBDC\xE3)\xDDk_\xFB:>i\x86\xE0,ȇ\xE4RJ\x9Bjί=\x85\x9B,nd`ۑ\xAE\x9BL͎\x8Bc}K\xF1>\x96\xC2o\xE5c<\xF0'\xF8\xFC\x89\xFE\xC4く\xF1\xC0\xC7x\xE0c\xF2\xB9x\x99\xBC\x8C\x87{\xEEeXG\x86udXG\x86udXG\x86uD\xC7ۂ\xA33 -\xA1\x82\xF8i\x87\xC6p֚Q\xCAuN\x8C6\xDEH\x8Ff\xEB\xA9\xB6\xEC\xA7'\xD3eD\xFDc,\xF5+h\xF9W4\x82\xFCe\x80\xE6p<\xBFa+Zj2+j\xD9WP\xEFf\xFB@\xA0\xE4\x997\x9D \xD3\xE3\x88\xC0u\xC1\xA0\x90\xF4\xB5}\xD8)>\xD9 |;%\xB1\x8F&\x8A\xB8BwK\xE6O\xFD\xCF\xFD\xB3\xC5\xC5\xFCt\xD1\xFF\xF8\xEAň\xAARP\x93\xD4>\xB9\x81\x92\x90\x93\x82$\x92\xED\x9BPB\x94\xB9\xD1\xC1\xD3^\xACΦG\xAB\xA5\x93P\xF0#\x94$#\x90ɾ\xAE!\xE5\xB4`\xCFP\x94ޏ\xE5\xF9\xFE_\xC7C\x92b\xF2\xF6\x85\xE43\x92\xC4(\x84\xB4l\x87\xE4\xFDby\xFEiD\xB1H-5\xF1p\xBAǏ\xF6\xCF\xFA\xA3\xD3\xFA\x9F\xA7\xF3\xF1\xD00\xDBi0\x81OWp\x8E\xF8\x82\xFC\xD0>t\xA4{\x94\xF4\xDD\xE2\xF4\xB4\x9F\x83\xFE\x96;\xD1ܵ<\xFD\xBA<6\x9D\xC00\xECk\x83(H\x84\xEC;\x86} -\xB3Շ -\xB5\xFDt\xFB{{m\x81n\xBF\xC5\xDC\xEE\xA0\xFB\xF1\xD5\xF7\xF6\xFFՇ\xF5\xFA\xEC]w8[|D\xFC\xF3\x8B\xE5ɓ\xC7c\xCA`\x90\xD9Rd\xBE:m\xAC\x8A\xE3\x83\xBA\xB8\xB8\xF0\xCF\xE7\xB3\xF5H\xB04@D\x888Fpk;\xE9h\xD0\xC3@/\x8EV\xFEhq<\xFDП\xAFXw<[\x9D\x9D\xF6\xBFt;x\xFD\xA6;X#`5WS\x880\xA3j\xCB!\\x8E\xDBi\xFAE\xB8X\xAF\xCBk\x88G\x80\x87\xE0\xA4i\xDA~"`y_\x8Cn\xB5\xEE/?\xF5\xF0\x89\x91ѡ\x80\xB2`\x8E\xBC\x9B\xDAa;ؼ<\xDD\xE5j\xBD\x9C\xF6\x9FF\x97+\x82\x97\xC27\x8A\xB7cP@\xED\xC9\xF1\xC1\xE0>\xCENV\xFD\x85\xBF\xE0qP\xD9iIF\xC9b\xAB\xB3\xDBq\xEAtqr2\x9B\x9F\xF8\xBE\xDC\xE6x$\x9F\/\x8C\xDD^}\xF9.\xFE\xF7\xBC\x8B\xC6͊\xEE?G\xBFVđ\xFDة\x86\xE1.ڑC\x92\xCFwdG\xFDz[\xB9w\xBD,\xBCY\xEF\xBD\xF9\xCB\xE1Gӝ\xAD\xFD\xFD'K\xFC\xA8Z0Y\xE6\xDF\\xEAP\xDB\xE9P\xD3\xE9P\xC3i\xBD\xA7\xDBl\xA6C].E<J -0\x8F\xE8\xCAG\xA9\xE2\xAB>\xDCNW\x87\x9FN\x9Bu,ޯ/\xB0\x99\xAE1\xA7ۻ\xC6\xFE\x{1F1F75C}/{\x9B\xE1\xC9x\xA5+x\xDA\xEDZ\xDBn9}\xD7W\xF0q2l\xABx[8cxg \xD6gf\xC1\xA2m)\x8E\xBC\x8Eڐ\xE4\xB1\xE7\xEF\xF7\xDDs\x91cY\xB2\xDD\xCA>\xEC6\xC8\xEE\xE6\xE5\xB0X\x97S\xA4Bƙ\x90\xA3!N(\x93\xF1)\xA0\xCCFȣ,&|/\xCE\xC4"(\xC9d\xCE(\xBD))\xA2dC䵁\xF2\x91G\xA1C\xE2o0d\x8CU\x92\xA1\xA8\x95l(\xB3~*\x86J\xF2&:g<QD\x85\x8C\xF7\x938o<c\xB0\xE8\xD8\xF8\xE0*\xD9\xF8\xC3(\xBA\x80 +&\x8C>$F'\x86\x89S\xC0`f\xBCB\x85 +\x8B\xE8'\xB4\xD1eD\xB4ㄮ\xF3qN\x98\x8B\x92RE\xD2\xD5\xE0\xA1b\xC4kc,I\xC4'T\xC8H\x88:\xA97\x8B\xBEa#\x99\xD1؋\x91\xD5C \xAEh/\xAC\x96\xB4\xC6 +\x9E\xE3(\xB2S\xF9\xA1\xBB.; +fG\xCFP\xC13\xABјu\xB5I\xDB\x9DO+\xDA.`ؒ(\x90ut\xA8 +Ӥ\x9412\xDE,.r1\xC9\xF4g\x92\x87\x90\xA2\x90I\\xDFx\x93\xAA\x85M\x8A:\xA9\x88IYt\xD4`\xB2s:`4\xFB\x84J\xC2\xD6䌇,\xD2Bq\xE3u\x80 \xE20;ĘC\xD25\xA2\xA3\xEEI\xD0\\xE1$T2\xE9'grQ+\xD0\xC6d\x8A\xCFXZ̦T\xC1b\xC1h)(uÓ\x98\xA2R\x8Eп\xA2CD(X\x89Yߠwҵ&\xF4N*ń^Uٙ\x92 \x8D3\xA1\x82k\x87\x921X\xC4t\xA584\xCE\xB9(@\xE8z)\xBA\xF3\xAA\xEE\xCE9m\x9D\xB4\xA6\x92\x85xP\x8BھhMaC\xED\xC96\x9B\x8EJ\xF4*s\xADU{\xF0\xA8y\xD2}Я>\xDC\xDAj\x8AY\xED\xC0\xB1"SC\xC0\xFAN'c\x90t`q~\xB4\xB77j\xDE\xFEz91\xCD\xFEl\xD6-G\xCD\xF1\xD5ɲ>\xBF\x9A\xCE\xFE=j^v\xF3\xF1d\xFE\xDE\xC1H݇\xE6\x87\xE6\xA8\xF9\xFE=ՇQ\xF3fr\xBA4\xEFs\xB0\xEA\xE1C\xB6 \xA3X,\x80\x8F\xD9ƌV\xFBfo\xCF4Ǧ\xF9k\xF7\xB63́\xF9f\x81~\xD3nf\x9DeK/\xCCwߍ\xF07\xC96@[|KX\xBB\xF3T6"\xF1\xC3#\xE1b\xA1\xF9\x94\xC9rR`ɦ\xB0Y$<<\x9F\xAC\xA8k\x85h\x9C\xBA1N֗\xB4\x89\x87\x84\\xB6\xFA}\xB5pVp\xA0\x908\\xBC\xAEͼ\xCA\xD5\xC9 +\x9A!\x95\xE5w<.Zu\xAA\xAE .\xC8S\xC4f\xC5\xED\xF0\xAF2PX렼XV\xCD\xFE\xD4 +w*/\xA4\xAA8\x82ѓZ\x95\xD8R\xB6\x84\xB3\x83\x8D\x8Aђ:\x867J\x90\xF3ƍ\x8A;6\xFA\xC2\xE0\xA0; +I\xACK~\xC9ĝl\x94\xB0M`MtXY&"\xDA\x8F\xDF\x86O+\xC9:p&\x85\xB7\xEE\xA2\xE1\xA0\xF1\xDE"\xD4# +[ +\xDB\xECm,ہف7w\xB6\xDB+jT+ꋗ9\xC6 +~Fv\xC0\xAB"fG\xAB\x95\xB8\xCD8V\xEC\xF9\xC0\xBC\x8F \xC4μ1\xCD\xE1t\xF9\xB3I\xF0 +\xFD\xB7\xC3n\xB6\xAC#\xC2:<\xFEo[\x91\xE6"p\xFB\xB7O`ƚ\xF5\x88օ\xEA\xC6h\x8E\xE6\xDD\xE9\xF1xMstph\x9A\xB7\x93\x9B\xA5\xF9\xB0*\x82\xA3\xF6l2j\xBE\xC7T\x93\xD9r\x81l'iw]袻\x9A\x9FN5\x87\xAA\xAF^O\xC6\xD3\xF6ewc\xAAh4\xB1KE}\xEAQ;G_\xCC\xECo\xDBU\xA9.0\xABf\x83\x8AE\x93\xC1\xDB\xD2\xF7%\xF7\xE5o\xDFC_ƾL}\x99\xFB\xF2v\x81\x9Aޖ\xFDx\xBE\xCF\xF7\xE3\xF9\xDB\xF1>k\x82\x89\xD4M"\x9DE獌\xD5ϛ-[\xBD\x8B`\x82@bI\x83\xE2+\x94@\xCF$n g\xB1$*?+\x9A퀶"\xAFN0J\xE4q\xDB\xE1\xD9A4\x89j\x9CP\x86\xE3t5%\x87\x95 +m\x87gxW\x85\xDC\xE4,U\xFF\x9D4\xC7{\x977:\x89]$\xCA\xBDA\xC95\xBD )\xDB\x86w\xA1\xC7$͇P\xF9"\xC1\xC2\x85-\xF1O_AY\xC1B\xFA|C\x8F\x8E\x94\xA3\x95\xCD;\xB5\x95Ap\xD5*\xD0\xE0X\x81yN\x81\x84\xE1\x81(1Kg\xE0ꑙ\xD7\x8D\x8DH\x86\xA7ѥ\x9A+\x91\xAF\xE7q\xA4\xE9z\xDC@<\xC2\xE08\xB6\xA4\xB0\x88:\xAB'n\xCE['\xF7\xFB\xBA\xF6\xF2r2Oo\xEC\xFE\xF0(\~Q\xF0\xA0\xFAV=\xE3\xE5\xF00"ԁ\x93\xC9\xC9\xEAA4\xDE҃\xBA\xF1\xAD-\xC3c\x90\xAAF\x9D\xBC&\x84\xB0)\xE7\xFC֒\xBB\xCB\xC0\xFCF\xB6\xE9\xBA\xCB\xD4\xF4\xC0ؗg\xF1\xB1\xC0_\xF0\xB1@O\xE5c\xDC\xF3'\xEE\xF9\xF7\xFC\x89{\xFE\xC4=㞏q\xCFǸ\xE7c\xD2\xF31\xE9\xF9\xF7\xCF\xDC?K?\xBE\xF4\xE3K?\xBE\xF4\xE3K?\xBE\xF4\xE3K?\xBE\xA4\xE7\xF16g\xE8O\xAA!\x94\xE1?\xF5p\xC6ZR9g Sǂ\xD2\xDF\xEFHO\xA7ˉ=\x98\xB7\x93\xB3\xC9\xDC;\xA2\xF69\x9Az\x8E&\xB4\xFCA\xFC\xD2\xF3G\xA09\xCEnX\x93\x96\xA2w\xAEF_A\xBE\x9B\x82^\x90e\xDEt&L\xCF#\xAB\x82A"iK\xBD\xDA\xC96\xB8\xB3zJT\xED\xE0Wh\xBDd\xFE\xD6\xFE\xD2t׳\x8B\xAE\xFF\xF4\xE6Հ[AMB\xBDt%!#A$\xE9\xADP\x80\x97yJΟPq\xA4\xDE[T\x80\xDC7Ey2@u*\x8B\x8B\x8Fr~Gl\x9A%\x96\xF4\xE57\xFFu\xBFy%\x8C7\x9C\xAFdm\xA4\xBFo*\xAE\xAA\xA7!\xFC\xF6\xA4?` +\xE9\xBE\xFCn5\xBC\x9B\xE0\xBD\xFB\xFBɹ\xEE\x8A\xCE\xFD\xE3g\xFD\xC1?+\xF9K\xFE\x8B\xE4/\xB9\xA7&\xA1O\xCEb\x9Ft\xC5>\xA9\x8By\xC8\xE4\xCBgD\xFC\xAC\xE9 +\xF4\xF8}aĒ\xB5g5\xF2\xEFW\x93x\xDD\xFE2\x99=#\xF2\xF7\xC7\xC2zB\xA0\x81_D\xA7\xC3\xE3\xF0\xC9\xE7\x8Bj\xA5\xC7\xDD\xC7\xE55D\xDBT\xE2V\xA3\S\xB1\xFE\xBB\xF5qzv5ou\x84\xC3e"\x9FSb\x89,\x80"2:\xAF\xC4R\xE9n\xF8\xEADW \x9D\xF2Z/\xA3?Dc֟&\xB2q\xCDO\xFE\xB4\xAB\xFB\xB3\xE5\xDD#\x97D\xEB\x9D\xC9\xEA7\xFF\xC4oA\xE0\xF3\xFF\xEF\xFF\xB3\xDF\xFF[z\xE3\xBFJ߭\x8E&W\xC3\xDAJ [\x8Dq\xAB\xD1p\xFBs\xCB\xFF endstream endobj -711 0 obj << -/Length 4902 +708 0 obj << +/Length 5167 /Filter /FlateDecode >> stream -x\xDA\xED\[\x8F۸\x92~\x9F_\xE1\xB7#i\xB5H\x8A\xBA\x9C}\x9AK2\xBB\xC1\x993\xB3\x93>8X\xCC̃ږ\xDDNd\xCBk\xC9\xE9\xE4\xDFo\xDD(Q\xB2\xD3\xEDv\xBB\x81`i\xEBB\x96\x8Aź|U\xA4\x85\xDAN\xA2\xEE\xCFn\xE9\x9DП\xDF\xFE.\xBAX3q\xFF\xA9A -w\xB8\xF9\xEE\xFA\x8D2\xC9$ -\xB3(J'7\x8B\x89\xC9\xD3P'v\x92\xDA8LU2\xB9\x99O\xFEޕ\xB3vUo\xA6W:\xCD\xAApz\x95h\xFCz\xDB\xAB\xCDj\xB3\xE4\xC5f\xCE\xFB\xA6\xBB\xF6\xF6\xDD\xBF\xFCc\xFA\xD7\xCD\xDB\xB9\x8D28\xB1 -\xFE\xA4)\xB7\\x816\xD7o\xB2\xF85\xBA-\xB3\xCC\x85\xF8\_\xF7\xE5)\x8B\xA3\xDB\xA7L\xEB\x98GH\x82\xE9\xD2\xACD\xF9\xA9 \xD1V\xE5T\xE5\xC1+\xBCh\x82\xDB};\x9E7\xFB -O)-]V<\xB7\xCAM\xD9j\xE1\xE64\xF0t\xBFj\xEEBPN\xA7\x99 -~\x9DÇ\xCF\x942 -\xF0\x85\xA7\x94;4\xAA\xB962RI\xF7E1\x88\xA5CƉk\xB8\xBD\xD89^֞h\xA5\xFD;Tl\xB0[c\xC1n)\x8F\x87\xE3T\x9DY\xE8\xACX\xA1̳\x84'\xA2c\x85 -SŞ\xB0\xE3\xBD\xCC\xF3\xAC\x98\xCA\xEC2\x95U\x85<\xC0\xE3;\xFE\xE1=\xCE1 \xFEE\xBA"\x8F7ٜ\x8Fg$hYm߽\xE0^o\xBF\xFF\xDD\xEF\x8E\xCDB\xF6E\xBF\xAFUY4B\x9E),XT1I\xA6\xEE洛\xE8%\xA6\x9B2M\xE4\xAB\x8D\x8D4ۈS{\xBC48\xF9\x83z\xBC\xA3\xB9\x9C!\xD5U\xDD)\xBF\xC1\xC2%\x9E\x851\xF3R\xCB垧8\xD8v㟕\xE0\xE0\xA7\xE8\xCCh<\xE9\x9B8TZT}\x8B\xD2_\x96'\xBB]*N:\xFB1\xBDDžm\x92@\xCEhs!|\xE3ik\xB2\x95\xA4\xA4<\xBB>\xA6Jb\xB58,ӊ\xAB\x9C\xD5\xDBU)\xA0^\xD8s\xFB:̮\x82ϯ\xB6\xCD^\xFB\xCCM\xAB\xD5-* -\xF8FG\xB2b\xB7L\xCA3\xE3}\xE2\xE6\xC1Mq[ XjV\x81ƈm\xB1$\xE9<\x85,t\x8FO\xEEp\xDAT\x92:둈X\x96s7p\x88\xDB \x88k\xA0?*\xCCb\xD0!\x80J\x89\xC6\xF0\xFFA\xBA\x89\xB42\xFB(i\xA0P\xF0\xE4\xF2rB5}˞ʢ\x80\xE9\xB7Wd{\xE8\xB1\xEC\x85#\x9D\xCD\xE9\x97˾)韧!1\xEEiנ|\xE7" -\xD7\xF3\xD8Q\xA2(\xA9\x8Cb\xAB\x84A\x82\x9F\x85\xF4)\x8E\xA2\x9C4D\xD6,\xCD\xE0-'\xC5|\xCEAx\xE9\x981\xD4\xD8\xF9ov\xB3\x87m"-\xF58.\xD98\xA5l\x92\xEA\x90\xC5U4~R\xC4z\xA4 -\xDBF\xDC\xC4\xED~%x\x8CNQ\xA7(\xF0߽\xE2\xBC\xA4\x87`.M8V\xC0\x85\x9F\xC5 \xAC\x91jjB\xE2s߃3;\xA1֡\xB1]%\xCF'\xE0\xC7\xEA\xFDf\xE0\xE6\xE2/\xAB%Z\x81R"#>b<[ \xA4\xACs[27\x89dN8\x97*\xF1D\xAA!-MD\xA4\xFF\x9C\xF2\xC2*\xF8\x84Η\xA4z\x88 Ǜ\x92=\xB2\xEAH\x96~#T<\xFA-?\xB57\xF96G\xCA-\xDFk\xA5ό\xBB3:Bq,\x9D06\x91\xD6\xC0\xC3(\x84M\xEB\xB6\xEC\xC4W\xCD-\xEC^U5\xEA\xD6\xFD`H\xF4p\xBF?\x88\x8B -$>-\xBA\xE0\x9Bk\x8A@\xBCQ\xE61\x94\xC4a\xAC\x84\xA17\xD3\x98*\H\x87\x94ŁD\xCD~V,\x89\xB2ظ\xBC\xD8\xABK=\xEFzs{;\xC9(s6QCn~#w\xFCK\xB1)\x96\xE5\xEEE\xC0n\xB8\xDA\xE4\xB8\xED\xF0)\xB3\xAAh\x9A\x83\x9C\x9E\xEDe\xF6\xC1\x83<\xDBfP\x83`\xE4\xD1ȝ=N\xA2w^\xC9\xCE\mb\xEAǼ\xD8ي \xCA\xF5\xD6%\xA3\xA4} \xE3\x9F\xFB\xA9\xE8\xC2-F۫\x8B\xC9m\xA8trx\xA7]>\x96(\xECĮ\x86N\xB3\xA0"5 -\\x8E\xB02\xB0\xB4R/q<\x9F(\x81\xC4\xD0`롼'u@-\xCDq\x93܀\x98WWȰ\xCF\xF0\x81\xF4\xF8\x86y\xBA0\x91\xFA\x92\x83\xCCo]\xB2M\x82f\xEF\xB2ѭxXn\xD6\xC1\x84\xA7C'\x9F\n\x95 i\xB8\xD5oX\xE1*\xC0\x99\xC0\xF3\x96e\xF3"HdTS0C -\xCCx\xBF\x9Be\x9Ā\xE0$Eb\x9FZ\xE7S\xBC\x90+.p\xD4|8\x84O\xF2< MG\xC6&3\x8D/k\xA2\x8E\hmZ\xEE+\xE5ă\xC8^\xAC4\xF4\xD9P\xBA8\xDA"\x82i\xFF\xDBT) yY \x9A\xBD\xA5\x88=+D\x86sRR*I\x8A\xE6\xBB\xEB=\x86'\x98\xC8\xF09|\x9A -\xB0\x8Bs(\xD6\{bϠU\xB7 \xE4W\x80K\xDDx\xDER\xF6\xB8\xE2\x9Ć\x9Aw\x84\x95\xC1\xAC\xD5\xA9\x93\xDB#1~A\xAF\xFB\xEE)\xAE9\xAAaw\xC6\xE1\xE4\xA0\xC09\x894\x9D\xDBQ-\xB8\xC0\xBD\xEF\x87Kr\xA2\xE9\xC2$\xE4\x8A\xE1S\x81\xE9\xBF\xF3J2\xFD\xB2\x80S\x8F:\xD2/\xA4쩥\xBEڡ\x84\xE8g\xC1\x8FS\xA5A\xFD\xE9\xC6O\xA2\xEF\x8Dh\x9C^\xDFt\xC1+\xCE\xE30\xB1\xF9Pʜ^\x9E\xF6ek\xA384\xD9h\xE2\xFF\x92D\xC1\x8Dh\xBFD`\xE8\xAC\xD0\xD3,\x81$\xAA\x8F\xA15\x97\x8D\xF7\x8Dv}% \xF9\xDE/`*\xCC\xEE\xDC:Ȱ&\xED'\x97ǜ\xA7/Qn\xCE\x99\xE8}'N\x98\xAA\x84\x94\xE3\x8E\xD3Q\x8Am\x98\x8E\xF5~W\x86\xE9_\x81E\x98r\xBEt\xB5_|\xC6v[\x81m\xFA\xA5\xB6_\xE3\x87"8\x99;\xB5\xF6\x8A\xE0]֞\xB6\xF4\xFA -\xD71\xBDR\xBE/!\x92\xDDJ\xF2\xBDb\xD6){Qu\xC6\xED\xCDV\x9C\xD2^*.vq\xB6\xB2\xE9\x94\xF0\x99 7\xE0\xE9\xDEI¹\xBC.fwz\x80\x97\xF4\x9F\x88\xD4ۡH\x9CI<[o\xE9Z_nhɽ\x84\x92\x95\xC4(I\xFD\x85r%K\x88\xC8\xAC\xBDH\xE6\xE2H\xB7\x84\xF7\x9EV\x8Br\xDFǦ&\xAA|t|u\x85Ҝ.\x95s\xE5/_7u\xF9\x8B\xD4{\x9C\xD7}\xF1fV4\xA5xFK\x8B\xC3J\xCFܹ\x96OU;\x8D\x96ғ\x94U -\xEEY{\x95\x99w\xE8o\xDC\xD2:-\xBE\xC1\x92 Պ\x97\xFD\xCEp;\xAB\xE4\xB1X\x9F\xBE\xF3h 7\x83\xAB`I6\xA0\xF5f\xBCT\xB2\xC1\xA4Xߌ+V \xD8\xFDm\xE3\xD6\xFC6o\x9D&9\xBF\x9B'c\xAAz8\xF8\xD9y\xB3\xC2l\xEE)\xCBշ\x92 \x8F|\xA0\x95$I\xA5V\xBE\xB8T\xBA.\xC9\xCA\xC4\xC6\xE3\x99\xF6m\x93\xAD\xC3l?\x8F\xFD\x95\x8A\x92C\xDEU\x85i\x86 )\xE7\x98`\x97%\xAF\xBB\x9C\xE28\xEEW\xA3\xB5 -Y\xB7\x82l`\xB8 -\x89\xAB\xBF~T\xF7\x96y\x89A!\x9F`GQ4OMl\xC1)i5\xE4\xA0\xB0fVۍ\xB8S\x83GtzZAw˥\xAE\xBC`\xDC\xEAwSRu\x9C<rۋ\xF4\xCE'\xB0\xA8\xE5\xA0,\xBA" -\x90\xDD\xEFXXTK\x81\xF0>\xF9j\xE5܀\x83ӲdJ\xB2\xF6A\x98Wq\xD2 ,N\x8Fbۆ\xEA\xE0\x86\xA3\xE0\xA6y\xD4W -)\x9C\x97\xAB^ei\x9E\xB9\xF2VJ\xB7E\xB3j\xC9\xEFq\x9F\x8Eu\xA9\xB6\xD3\xE5R<}\xEC\xA5o\xBD\xB7\x89Q\\x85`\xC4\xE6\xA0BRKu\xA6\xA67\x88ƺoݦ\x81\xEDӋ$\xB1\x85\xA4;\xB1\xF2z\xA6.\xF9\xB3a\xA3,\xCC\xEChJ\xBC4\xC1Ic\xE4+\xB4MC\x95\x8B\xEA\xB10\x87+\xB7ǂ -\x99=\x98s\xFC'\xADB\xF8+'K\x9C'+V\xDE<\xF8R\xAD\\xAChe#\x95\xCD\xFB\x85\xEAc\xF1'I\xB4W\xE8\xDA5\xBC\xE0\xC1\x95\xBD.\xFFI(\xAC\xEDy\xA1\xCB^:>\\xB2\x96\xA5 \xB8\xDFϠn5m\xF5*G\xB7z\xC1\xF5\xFB\xBB\xB2/%^\xEA\xB78\xA0Us>\xADV\xA4;m\xC6Ū߹\xFA"9^\x81\xA0;\xA3-Kl:V\xF0N\xDEo\x8C\x93 -fG\xAA\xF6 \xB40uت\xD9/\x97\xBCE\xF1\xB0\xE6'\x85+\xC9-\xEE6\xFB\x99\x85u)\xC5-\xE0 -\xC5;{M˞60\xF8\x9B;\xD2L\xF1\x9B\xDB>u\xF16e\xEC`\x96!\x89\xCD\xC9\xF2-K\x84?7n\x91`P\xA4\xFDe\xBC\xFE\xA5\xFC;W\xA1\xB1#\x91\xE2@\xE7\xE1'ȟ7_֤T5<\x81\xE0\xF7h\xBFu\x83\x96\xC7\xEDf\xA0Fކ\xD8c;\xA7\xFD9\x9Df -k\xC2Qty\xEE\xED(=\x8A)\xBD\xDC@sY\xF8\xC1\xED\x95\xF4\xACj\xFE\xCA\xCB&w\xEE9\xB4\x82\xDF-&\xDEί\xF6C\xC7҇n\xAFc\xF1\xD7\xCF\xAB F\xDD\xE6\xEA#U\xA5\x83m-I\xBF\x97BRo+\xBF\x98\x86\xE0\xCB:\x9B\xE5\xD3\x87:\xFE\x8A_\xDC\xF4</\xB2Ѯv\xFB\x9C\xC8\xF68\x85"\xDB\xF9lt\x91\x{DA52}x\xB9\xC4CŐE\x99\x8B'=\xD9\xCB%O\xA5yJ\xE21\xFE%\x8F\xB6S\x9DKJ\xF6|\xA2/\x98x(0\xAF<\xB9d\xE21\x9Bs\xD2Ч\xD7~8\xF3S*\x8A\xC3\xDC^>g\xEF\xC9^\xCEt\x9EJ\xF3\xD3\xFF\x92\xA6sa\xC1vZ~IɞO\xF4M'Ji\x8D傟\xB2(v[YbeOF#\x91 --d _/\xE9<\x8D@\xFF4}V\x9E\xFD8\x85\xD0\xC8\xF9l\xF4*\xFCDI\xBC`\x9E\xAD\xF1em\xA3'9\x888\x92<\xFBGR\xBD\xC3\xFB\xB1<\xABWiܡl\xF5\xD9\xF0\xC4b -\xA2I\xAFDf\xF6O\xF8r\xDA\xC5\xDA<\xFDc\x90c";\xB9\xB2\xBC{\xF6\xDB\xE7 \xBF -\xEC\xDB|\xE4#\x9F\x83|\xE8\xB9\xE3\xE4^al\x83_\xD9\xD2M\xFE\x93K\x97\xBC-_h\xBC2Q\xFCL'{\xFA\xBB\xA2\xBFs\xD7\xC8D\x8664\xD2&\xBD\xBE\xC7[:yG\xA0\xBF\xBF\xD0_\xB7\xE7\x9C_\xA96~'b1\xC9l\xA8T\xFF2\xBB\x89Si5\xE08\xCDҮՏwŶu\xC5X\xF7%ߟ\xFD\xD7؛?\xEAG\xF2\x85\xB8r\x8F;\x87\xBE\xE7{\xCAw\x92,~A\xF0\x80~\x9B\xC2Ê\xA5D\xC1\x84\xA8ފ\xA7\x97\xFDl+x\xDA\xED<ے۸r\xEF\xFE +\xBD\xAA\xCA\xE2+\xF6ӱ\xD2v<\x98\xA3e\xADD\x9E=\xA4\xE6\xF6\xF7f˿\xAEY+\xB9.R\xD5\\xAB\x8Fy\x96\x8F\x82\xD7\xFC\x9F\xF4\xB7֣\x84ġ\xCEd\x86z<\xC9\xC2\xEC\x86$\x81m\x91\xD6nx\x86[\x99\x81\x83\xFC\x83\xA5a,$+\x99d\xD7bڳ̷8\xA0\xF2\xEF\xD8|\xEB\xBC\xCC|\x83\xFE\x88\xD3\x98o_\xE1\xF3\xEDr0=U/I\xA1\xBDh\xA4\xD0q\xA8\xE2\\xAAȄ\xF7~i\xC6B\x9B\xBA)\xE6.\xD0\xD8Y\xF7ܖ\xB2\xEDN\xBAⳲ\xE5\x9BŮYt\xF3\x9Anw\xCDGpL\xFF6\xD6Q`:܂\xE3 >ڧ\xB1\x{13C7E1}\xAFЍQ\xF4\xAC\xC3\xC0\xE3ǽ\xED\xFE$MF\x89H\xEF\xEC\xFE\xE9h<ITpg=-\x98qC\xA0\xB9\xF9\x82^\xFE\xAFE\xB0\x84\x95u\xEC\xE0\xF9\xE7\xF8\xEBuFO\xDD\xFC\x98\ex\xC0>]\xCE\x8F\x8D[6k#P\x84\x81\x9CB\xF3\xBCb?\x8E:\xD1\xCB-_\xDB\xD9\xA2\x91#\x83\xFF'\xB1\x87\xB7圛\xFF%\xADs}\xB1l\xAAO\xC9_K\xCE*\x8B(P\xE3\xE3\xF0\xA5\x92\xEE\xF1 +\x8B\xA3\xDB6\xFCt^\xA1\xC9\xE0\x966\x80\xBCy@C\xF9\xB9 Ă\x9E\xF1k|\xA8\x82\xE9\xBE;\xDC\xBB\xFBoIP\x8C\xC1\x8FD E\x94\xE6\xA9d\xE1o9\x8A\xCC \xFD6\xB6ͺ\xEC0j`\xA2@yP\xD6\xD6C7\xAB\x85\xDD\xD1t+e o\x84\x9E\xC22a\xC5=\xB2u\xAE@d3\xAEg\xC5\xD8l\xAE">\xA98\xF7\xE0\xC351\xF8Qrÿ\xA2H\xD6$\x8D\xE0e\x81\x9B\xF3\xF5\x8CЁA}\xA1\xDC\xEB\xDDO\xFAݱY\xC8r\xE8+\xBA\xA5-QW\x83L\xA0\x81\xE1\xC1\xC43\xE6Ae$\x90U\x82\x87\xCB\xA2 \xCC\xC8\xDCszPٜ +\xB4\xF0 \xF25\xB7A\x81\xBF#\xABn\x8A\xF9\x9C/\x8C\x86\xE1\xA4'l P\xC9a\xA2\xD4+\xDF0D$ˈo\xA1o\x9Eb\xC3\xEDgyٖ\xE7\x9CF\x9E\x99\xFD\xD8\xF0FL\xCF\xC5ԖP\xBF\x87\xECG\xA3oL\xA4\xAC\xC8\xF1U]7Hg\xBC\\xB74\xD2 zr +\xBB:\x81d\xA8\xD6'\xE3D{\xB3\xD6J\x8Cɕx\xDED +0\x80G3\xE5k\x92\xCB\xF3M\xB1G$\xABȀ\xA1\xD9+\xE6M:\xC4\xD3uMIoC@\xFD9\xEA\xC1l\xE7ۖf,PTC\x98\x9D\xA9\x89\xC48Y\xEC\xEBz\xE0\x84\xB1Uj/#\xA3[\xCA\xD0\xC6\x84\xF6\xE8Mʅ\xF1+\xFEm\x9C\xB2\xF6t\x91\x94\xB4ӫrv\xDFp\x98\xC7\xE9p\x8D\xA0s\xB3^\xA2l\xEE\xF9+\x89\x8D\xB5\xF2\x90\xE5\xA6Vְ\xA6\x8E\xD0۩h\xDD\xCC9\xF8\xAA\xC4e#/\xFBl +K0b\x91@,\xC6\xF3\xCB|\xCEù<\xCBЪ\xFA%\xFBkCa\x84\xAE/<\xD0\xE2\x8B'<\xCD\xE0\xFB\xB6\\xEC +\x90\xA9\xA0U\xE3) +\xA5@\xAB\xE4\xF9I\xEF0u\xE1\x824\xB8\xB7֎\xE7щH\x98Kv`\xA1t\x98I5\xBD\xC4\xF5|&\xF1C\x86!\xFB\xF1u\xBA+c6\x8B7L\xA98E\xF4\x88\xF0\xB4\xC6K\x94\x84d\xE7+.\x8B\xF5p\xC5\xF2\xFC\xB2\xB9\xE6\x94H\xC0\xC1Ɇ\x83}@\xBF\x97\x92\xE5 8\xE6rm +SxV\x96\xB4\xB8[\xB9\xC4\xE4\xB3\xF5$\xD8\xF3\xE6\xA1\xB4\xA3?\xA1e\xEA'\xA5\xA2\xD0w\xD6;\xE3[[ \x83\xD5 +G\x939D ]H\xB1\xE83\x97\xB5\xCB 2 +)L\xD9\xB5uv\xB8~\xDA\xD8O\x83PU$\x99\x9F{~Ę\xA08\xF6\xE3\xE6\xFAc\xEEw.B\xA5\x87\xC5u\xCE\xC3\xCF\xD6\xD9ni0t0h\xE8O`\xAB\x91\xFC\xE3I\x9C\x8F\xB2(\x8C\xB4\xF9\x8BW\xAE}\xAA\xF0\xDF\xDF\xD0q&0$\xE5\xB6\xCC\xC4\xF9\xB8\xD3\xD7hP endstream endobj -731 0 obj << -/Length 4608 +730 0 obj << +/Length 4468 /Filter /FlateDecode >> stream -x\xDA\xED<]s\xDB8\x92\xEF\xF9z[\xAA*\xA6 \x80-7Z\xC0\x9F$\xE1>\xBD\xE8s\xFE6\xCD-M6;\xD3\xD0S0\xBA\x80\x9E\xD0\xE6\xA1\xFD\xC83\xF3c\x89\xFD \xE4\xFFsBUE\xE7oe\xCF\xD2И$&=#B\x9D\xE8ٙ\xCC\xC24U\xACgX\xB9\x91\x9E{_-oWE\x8D\xE0IAe\xA10\xDA\xE0\xC0(\xCCR9\x8B\xE0\x9F\x98%"Lc9K\xA2(\x8CM:\xBBX[ s \x99\x8B\xDB\xDDn.\xB2\xA0\xD8@[\xB3\xBA\xE7\xD6-\xDC\xEC\xE6&\xA8\xE6J_J\x98K\xB0\x84\x97\xC1\xB34\xA8˯|\x91/\x97e\xE9q\x85\xE3\xF3_\xC3uE\x83\xE0\xE2/U!Ud\xAA\x837\xF9\xE2\x86a콨}\xC9U\x917n\xECG\xB6\xAA_4y ->\x9Fa\x8F\xC1\x8B\xF2\xCF(\x92\xF8v\xB7\xADj\xEF\xADq\xF0z.dPnrz\xE5\xCC\xD9N\xF6\xCB\Ů. c\x9CQu&¨%\xA3\x9C\x994\x85MA1 \xAB+\xA9\x93\xA0\xB9\xC1\xF7\xE2u\xACiA~\xB8@\x82l\xF8\xFA\xD2v\xBAB\xC2ܺ\xF7,\xB9j.\x81&Qp\xE7:\xAF\xBD\xBCV\xF1mg\x87\x91\xB7\xB8\xD0\xFA\xD1r\xDFӛL\x92\xA7\xAA\x80ߴ\xFD\xF9J9\x98\x8D}\xB2)\x95\x85\xB0\xDC}X\x9F\xFE -\xD87\xF3cz<P\xF0\x8A\xAF\xDB\xEC\xF2|s㈀\x9D\xEE\x91Qn\xF9z\xE1H[]"\xDA\xFD%\xA9^JojmE\x811\xC0\x85*6\xB8Rw̰\xA9\xB9\x81(+\xE3\xB04{k -\x9D\x96N\x98WV\x90-8\xF1\xF7\x9A;"\xAE7_\xD7U\xC7\xDE۶\xA8\x96\xF6\x8Aq\xA6e\xAE\xB8\xE7\x99@*d1\xB3t\xFC\xE9\xE8?\x90BUS\xFC\xC4Mys\x88/I\xE9\xDA\xDE\xF4&Tz\x93\xB8\xF8iP6hK\x89\xE0\xA5\xEDM\xBC\x87\xBD\xEE\xED.\xF1\x91ـ\xFE\xB1\xAD\x94\x80*2F\xA5\xA4\x8A@\x8B\x890Ӛ\xD5WS.\xEFG\xE8ÞV\x93О\xC5-\xEE\xC8N\xE5\x9B\xE3\x8F -\xEA[\xEAIr{\x89r\x84\x8D\xAC\xDFHiZ\xD3\xBF\xE3\x9BE\xB5\xBD\xA1Ev\xC7H]\xDEt\x8D(\x8DD\xC2Rt\xCB\xF7w|\xB3Z\xDA\xD7J\x9F\xD3Tܺu̟/\xAC4Ac+Yp\xEDvd\xB8\xEC+-\x910}<\x95\xBC\xDDo\x91\xF5\xAE\xED>\x8C?\x89{mi\xB4\xAF\x8B%w\xF8SJ5\x8C3\x9D\xA2\x89\x8D\xBD\x87ú39\x8EaSzR\xE06a\xFA\xF0\xB3 -Vn\xBB[\xB8i\xD4`\x9C]s\xEFQ\xE5\x9Dὥ@\xC3$\xE8t^Fܛ\xAFm^\x97/\xBC\xC9lfm\x8A\x8E5\xACm\xE1V.U\xCBDd}\xF0\x92F\xACSh-\xE22\xA2\xC1\xE7Z\x91\xFC(]l\xA8\xB0\xFA\xA6\xCBVI\xF4\xB6$p(\x85\xB1\x82t唽[L\xFD\xD8\xF2\x81Y\xC7" -\xA0=\x9EUYk\x88\x8F@.ė\xF2\xBC\xEB\xCDŋ\xBE\xE8\xC8\x82\x8D\x990\x95j\xB6X\xFA\xB1\xC1\xA8\x98\xA1\xA6\xDE\xB3\xAB\xFF9h\x87\xEF;8\xA0X=\x99e>\x82?E\xB3%<C1W\xB0Dw\xD4s -\xFF\xDD\xD5\xEC`\xBB?A\x96\x9A\x8F\x8D\xE7\xD1\xD1\xE1x -{L2BlXahe\xC8n; - -&`\x89\xF1\x948nW\xB2GQ\x94 -\x9D%\xA1H2\xC74\x92\xB4\xC8l\xEB\x8EeƂť\xF6\xC0~{\x82\xFC;\xC1\xA7\xD9g4\xCCG\xF1d\x86؛\xBE[\xFC\xE0\xB8dj\xC2:֙\x94\xB2\xC7M\xC4k\xFEO\xBA[\xFB\x92ġN%\xE9b\x93\x82\xEEx\xE7Qb]|1f{M0^\x90q\xBC c![#\xF0\xF3\xB2\x84\xDDC\x83\xEE\xED\xED\xDA`_̤͒I\xCB<\xB9\xCCt`\xA7\x93\x99\xB10\x87\xC8L\xFAS\xCA\xCCĄm\xD9{J\xCA\xF4\xF9dFg`\xE9Ȍ\xB9]N"3\x8B\xE5\xA1\xC0\xB1Bt\x87"N\xBF_+\xC4C\xF0(+ǫ\xC7\xC7?a\x85\x80\xF0\xB4r\x8F\xA4\xC4T\xA7b\xC4\xC7R\xA4\x97\x8CS\xE2>\x9D\xC4abl\x84\xE4\xE7\xB8x\xDD\xF9\xFF\Q\x80\xC7\xFA\x{DF7D}i(\x9A\x94\xA4-\xDB @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-05 10:12:28
|
Revision: 2501 http://sourceforge.net/p/jsbml/code/2501 Author: niko-rodrigue Date: 2016-05-05 10:12:26 +0000 (Thu, 05 May 2016) Log Message: ----------- I have create the constant JSBML.READING_IN_PROGRESS for the moment that I store as a user object in every TreeNode while reading a document from file or String. Basic mechanism to add it and removing it when the reading is done is in place. Only missing are the history objects created by the SBMLRDFAnnotationParser that I will do later. Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/JSBML.java trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLCoreParser.java trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java Modified: trunk/core/src/org/sbml/jsbml/JSBML.java =================================================================== --- trunk/core/src/org/sbml/jsbml/JSBML.java 2016-05-04 15:29:50 UTC (rev 2500) +++ trunk/core/src/org/sbml/jsbml/JSBML.java 2016-05-05 10:12:26 UTC (rev 2501) @@ -131,8 +131,12 @@ */ public static final transient String URI_XHTML_DEFINITION = "http://www.w3.org/1999/xhtml"; - /** + * + */ + public static final transient String READING_IN_PROGRESS = "jsbml.reading.in.progress"; + + /** * Adds the given {@link UnitDefinition} to the given model or returns the * identifier of an equivalent {@link UnitDefinition} that is already part * of the model. In case that the given model is null, the return value of Modified: trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLCoreParser.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLCoreParser.java 2016-05-04 15:29:50 UTC (rev 2500) +++ trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLCoreParser.java 2016-05-05 10:12:26 UTC (rev 2501) @@ -67,6 +67,8 @@ import org.sbml.jsbml.UnitDefinition; import org.sbml.jsbml.util.ResourceManager; import org.sbml.jsbml.util.SBMLtools; +import org.sbml.jsbml.util.TreeNodeWithChangeSupport; +import org.sbml.jsbml.util.filters.Filter; import org.sbml.jsbml.xml.XMLAttributes; import org.sbml.jsbml.xml.XMLNode; import org.sbml.jsbml.xml.XMLTriple; @@ -584,6 +586,23 @@ logger.error("The Model element has not been created."); } + // Go through the whole document (using a fake filter!) to remove the variable that says that we were in the process of reading an xml stream. + sbmlDocument.filter(new Filter() { + + @Override + public boolean accepts(Object o) { + if (o instanceof TreeNodeWithChangeSupport) { + if (((TreeNodeWithChangeSupport) o).isSetUserObjects()) { + ((TreeNodeWithChangeSupport) o).userObjectKeySet().remove(JSBML.READING_IN_PROGRESS); + } else { + // System.out.println("######### user objects not set !!!!!!!! " + o); + // TODO - set the user object property on the RDF objects ? (CVTerms) + } + } + return false; + } + }); + logger.debug("Starting to check the package version and namespace for all package elements"); // checks silently package version and namespace and try to fix any problems encountered. PackageUtil.checkPackages(sbmlDocument, true, true); Modified: trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java 2016-05-04 15:29:50 UTC (rev 2500) +++ trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java 2016-05-05 10:12:26 UTC (rev 2501) @@ -60,6 +60,7 @@ import org.sbml.jsbml.util.SimpleTreeNodeChangeListener; import org.sbml.jsbml.util.StringTools; import org.sbml.jsbml.util.TreeNodeChangeListener; +import org.sbml.jsbml.util.TreeNodeWithChangeSupport; import org.sbml.jsbml.xml.XMLNode; import org.sbml.jsbml.xml.parsers.AnnotationReader; import org.sbml.jsbml.xml.parsers.MathMLStaxParser; @@ -595,6 +596,7 @@ if (currentNode.getLocalPart().equals("sbml")) { SBMLDocument sbmlDocument = new SBMLDocument(); + sbmlDocument.putUserObject(JSBML.READING_IN_PROGRESS, Boolean.TRUE); // the output of the change listener is activated or not via log4j.properties sbmlDocument.addTreeNodeChangeListener(listener == null @@ -920,7 +922,7 @@ boolean hasAttributes = att.hasNext(); boolean hasNamespace = nam.hasNext(); - if (isInsideAnnotation) + if (isInsideAnnotation) // TODO - add a test to see if the object on the top of the stack is an XMLNode { parser = initializedParsers.get("anyXML"); } @@ -1002,6 +1004,9 @@ } sbmlElements.push(processedElement); + if (processedElement instanceof TreeNodeWithChangeSupport) { + ((TreeNodeWithChangeSupport) processedElement).putUserObject(JSBML.READING_IN_PROGRESS, Boolean.TRUE); + } } else { // It is normal to have sometimes null returned as some of the // XML elements are ignored or do not produce a new java object (like 'apply' in mathML). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-04 15:29:52
|
Revision: 2500 http://sourceforge.net/p/jsbml/code/2500 Author: niko-rodrigue Date: 2016-05-04 15:29:50 +0000 (Wed, 04 May 2016) Log Message: ----------- modified the build file so that it works even if we are not working with a svn checkout. Might not work if the svn command is not in the path Modified Paths: -------------- trunk/build.xml Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-05-04 12:44:42 UTC (rev 2499) +++ trunk/build.xml 2016-05-04 15:29:50 UTC (rev 2500) @@ -25,27 +25,38 @@ default="usage" basedir="." > + + <echo message="Determining the revision number of JSBML" /> + <exec executable="svn" outputproperty="svninfo.xml"> + <arg line="info --xml" /> + </exec> + <!-- We consider it is a subversion checkout if the svninfo file contain the closing info tag --> + <condition property="svn.checkout"> + <contains string="${svninfo.xml}" substring="/info>"/> + </condition> + + <tstamp> + <format property="YEAR" pattern="yyyy" /> + </tstamp> + + <taskdef resource="net/sf/antcontrib/antcontrib.properties"> + <classpath> + <pathelement location="${basedir}/lib/ant-contrib-1.0b3.jar" /> + </classpath> + </taskdef> + + <property file="${basedir}/jsbml-build.properties"/> + + <!-- =================================================================== --> <!-- Initialization target --> <!-- =================================================================== --> - <target description="Initialization target" name="init" unless="target.init.done"> + <target description="Initialization target" name="init" unless="target.init.done" depends="svn.build.number, default.build.number"> <property name="target.init.done" value="true"/> - <tstamp> - <format property="YEAR" pattern="yyyy" /> - </tstamp> - - <taskdef resource="net/sf/antcontrib/antcontrib.properties"> - <classpath> - <pathelement location="${basedir}/lib/ant-contrib-1.0b3.jar" /> - </classpath> - </taskdef> - - <property file="${basedir}/jsbml-build.properties"/> - <property name="Name" value="${jsbml.Name}" /> <property name="name" value="jsbml" /> <property name="version" value="1.2-SNAPSHOT" /> @@ -53,21 +64,11 @@ <property name="year" value="${YEAR}" /> - <echo message="Determining the revision number of JSBML" /> - <exec executable="svn" outputproperty="svninfo.xml"> - <arg line="info --xml" /> - </exec> - <xmlproperty collapseAttributes="true"> - <propertyresource name="svninfo.xml" /> - </xmlproperty> - <property name="jsbml.revision" value="${info.entry.revision}" /> - <property name="jsbml.url" value="${info.entry.url}" /> - <echo message="----------- ${Name} ${version} [${year}] ------------" /> <echo message="----------- ${TODAY} ------------" /> <echo message="----------- ${DSTAMP} ${TSTAMP} ------------" /> - <echo message="----------- svn revision ${jsbml.revision} ------------" /> - <echo message="----------- svn url ${jsbml.url} ------------" /> + <echo message="----------- git revision ${jsbml.revision} ------------" /> + <echo message="----------- git url ${jsbml.url} ------------" /> <property environment="env" /> <property name="build.compiler" value="modern" /> @@ -166,6 +167,40 @@ </target> + <target + name="svn.build.number" + description="Finds out the subversion build number" + if="svn.checkout" + > + <!-- <echo message="It seems to be an SVN checkout"/> --> + + <xmlproperty collapseAttributes="true"> + <propertyresource name="svninfo.xml" /> + </xmlproperty> + <property name="jsbml.revision" value="${info.entry.revision}" /> + <property name="jsbml.url" value="${info.entry.url}" /> + </target> + + <target + name="git.build.number" + description="Finds out the subversion build number" + if="git.pull" + unless="svn.checkout" + > + + </target> + + <target + name="default.build.number" + description="Finds out the subversion build number" + unless="svn.checkout" + > + <echo message="Could not retrieve automatically the revision number from svn or git !"/> + <property name="jsbml.revision" value="build run on ${DSTAMP}" /> + <property name="jsbml.url" value="no url provided" /> + + </target> + <!-- =================================================================== --> <!-- Prepares the build directory --> <!-- =================================================================== --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-05-04 12:44:44
|
Revision: 2499 http://sourceforge.net/p/jsbml/code/2499 Author: niko-rodrigue Date: 2016-05-04 12:44:42 +0000 (Wed, 04 May 2016) Log Message: ----------- changes to be able to support biojava-ontology >= 4 and log4j2. Upgraded the source and target jdk version to 1.7 for now and made it easy to update by having to change only one properties file and that will change it on all ant build files. Modified Paths: -------------- trunk/build.xml trunk/core/build.xml trunk/core/pom.xml trunk/core/src/org/sbml/jsbml/SBO.java trunk/core/src/org/sbml/jsbml/ontology/Term.java trunk/core/src/org/sbml/jsbml/ontology/Triple.java trunk/extensions/arrays/build.xml trunk/extensions/comp/build.xml trunk/extensions/distrib/build.xml trunk/extensions/dyn/build.xml trunk/extensions/dyn/src/org/sbml/jsbml/ext/dyn/CBO.java trunk/extensions/fbc/build.xml trunk/extensions/groups/build.xml trunk/extensions/layout/build.xml trunk/extensions/multi/build.xml trunk/extensions/qual/build.xml trunk/extensions/render/build.xml trunk/extensions/req/build.xml trunk/extensions/spatial/build.xml trunk/jsbml-build.properties trunk/modules/tidy/build.xml Added Paths: ----------- trunk/core/lib/biojava-ontology-4.0.0.jar trunk/core/lib/log4j-1.2-api-2.3.jar trunk/core/lib/log4j-api-2.3.jar trunk/core/lib/log4j-core-2.3.jar trunk/core/lib/log4j-slf4j-impl-2.3.jar trunk/core/lib/slf4j-api-1.7.21.jar trunk/core/resources/log4j2.xml Removed Paths: ------------- trunk/core/lib/biojava3-ontology-3.1.0.jar trunk/core/lib/log4j-1.2.17.jar Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -44,7 +44,9 @@ </classpath> </taskdef> - <property name="Name" value="JSBML" /> + <property file="${basedir}/jsbml-build.properties"/> + + <property name="Name" value="${jsbml.Name}" /> <property name="name" value="jsbml" /> <property name="version" value="1.2-SNAPSHOT" /> <property name="api.version" value="1.2" /> @@ -218,8 +220,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> </target> Modified: trunk/core/build.xml =================================================================== --- trunk/core/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -41,6 +41,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../jsbml-build.properties"/> + <property name="Name" value="JSBML"/> <property name="name" value="jsbml"/> <property name="version" value="1.2-SNAPSHOT"/> @@ -253,8 +255,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> <!-- <compilerarg value="-Xlint:deprecation"/> <compilerarg value="-Xlint:unchecked"/> --> Added: trunk/core/lib/biojava-ontology-4.0.0.jar =================================================================== (Binary files differ) Index: trunk/core/lib/biojava-ontology-4.0.0.jar =================================================================== --- trunk/core/lib/biojava-ontology-4.0.0.jar 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/lib/biojava-ontology-4.0.0.jar 2016-05-04 12:44:42 UTC (rev 2499) Property changes on: trunk/core/lib/biojava-ontology-4.0.0.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Deleted: trunk/core/lib/biojava3-ontology-3.1.0.jar =================================================================== (Binary files differ) Added: trunk/core/lib/log4j-1.2-api-2.3.jar =================================================================== (Binary files differ) Index: trunk/core/lib/log4j-1.2-api-2.3.jar =================================================================== --- trunk/core/lib/log4j-1.2-api-2.3.jar 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/lib/log4j-1.2-api-2.3.jar 2016-05-04 12:44:42 UTC (rev 2499) Property changes on: trunk/core/lib/log4j-1.2-api-2.3.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Deleted: trunk/core/lib/log4j-1.2.17.jar =================================================================== (Binary files differ) Added: trunk/core/lib/log4j-api-2.3.jar =================================================================== (Binary files differ) Index: trunk/core/lib/log4j-api-2.3.jar =================================================================== --- trunk/core/lib/log4j-api-2.3.jar 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/lib/log4j-api-2.3.jar 2016-05-04 12:44:42 UTC (rev 2499) Property changes on: trunk/core/lib/log4j-api-2.3.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: trunk/core/lib/log4j-core-2.3.jar =================================================================== (Binary files differ) Index: trunk/core/lib/log4j-core-2.3.jar =================================================================== --- trunk/core/lib/log4j-core-2.3.jar 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/lib/log4j-core-2.3.jar 2016-05-04 12:44:42 UTC (rev 2499) Property changes on: trunk/core/lib/log4j-core-2.3.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: trunk/core/lib/log4j-slf4j-impl-2.3.jar =================================================================== (Binary files differ) Index: trunk/core/lib/log4j-slf4j-impl-2.3.jar =================================================================== --- trunk/core/lib/log4j-slf4j-impl-2.3.jar 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/lib/log4j-slf4j-impl-2.3.jar 2016-05-04 12:44:42 UTC (rev 2499) Property changes on: trunk/core/lib/log4j-slf4j-impl-2.3.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: trunk/core/lib/slf4j-api-1.7.21.jar =================================================================== (Binary files differ) Index: trunk/core/lib/slf4j-api-1.7.21.jar =================================================================== --- trunk/core/lib/slf4j-api-1.7.21.jar 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/lib/slf4j-api-1.7.21.jar 2016-05-04 12:44:42 UTC (rev 2499) Property changes on: trunk/core/lib/slf4j-api-1.7.21.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Modified: trunk/core/pom.xml =================================================================== --- trunk/core/pom.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/pom.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -107,11 +107,16 @@ <dependencies> <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.8</version> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-core</artifactId> + <version>2.3</version> </dependency> <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-1.2-api</artifactId> + <version>2.3</version> + </dependency> + <dependency> <groupId>com.fasterxml.woodstox</groupId> <artifactId>woodstox-core</artifactId> <version>5.0.1</version> @@ -123,17 +128,10 @@ </dependency> <dependency> <groupId>org.biojava</groupId> - <artifactId>biojava3-ontology</artifactId> - <version>3.1.0</version> + <artifactId>biojava-ontology</artifactId> + <version>4.0.0</version> </dependency> - <!-- <dependency> - <groupId>org.biojava</groupId> - <artifactId>biojava3-core</artifactId> - <version>3.0.1</version> - </dependency> - --> - <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.3.1</version> @@ -153,19 +151,7 @@ <scope>test</scope> </dependency> -<!-- Should be included by staxmate and woodstox <dependency> - <groupId>javax.xml.stream</groupId> - <artifactId>stax-api</artifactId> - <version>1.0.2</version> - </dependency> - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>stax2-api</artifactId> - <version>3.1.4</version> - </dependency> - --> - <dependency> <groupId>org.mangosdk.spi</groupId> <artifactId>spi</artifactId> <version>0.2.4</version> Added: trunk/core/resources/log4j2.xml =================================================================== --- trunk/core/resources/log4j2.xml (rev 0) +++ trunk/core/resources/log4j2.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration status="WARN" name="XMLConfigTest" packages="org.sbml.*"> + <Properties> + <Property name="filename">jsbml.log</Property> + </Properties> + <ThresholdFilter level="trace"/> + + <Appenders> + <Console name="console"> + <PatternLayout pattern="%5p (%F:%L) - %m%n"/> + </Console> + <File name="file" fileName="${filename}"> + <PatternLayout> + <pattern>%d %p %C{1.} [%t] %m%n</pattern> + </PatternLayout> + </File> + </Appenders> + + <Loggers> + <Logger name="org.sbml" level="info" additivity="false"> + <AppenderRef ref="console"/> + <AppenderRef ref="file"/> + </Logger> +<!-- + <Logger name="org.sbml.jsbml.xml.stax.SBMLWriter" level="info" additivity="false"> + <AppenderRef ref="console"/> + <AppenderRef ref="file"/> + </Logger> +--> +<!-- +# org.sbml.jsbml.test.SimpleSBaseChangeListener - DEBUG : it will display all add, remove or change event (lot of output when reading an SBML file) +# org.sbml.jsbml.xml.parsers.SBMLCoreParser - ERROR to DEBUG : anything related to problems when parsing the SBML core elements. +# org.sbml.jsbml.xml.parsers.StringParser - ERROR to DEBUG : (lot of output) display all the event when reading XHTML +# org.sbml.jsbml.xml.parsers.AnnotationParser - DEBUG : output when reading non RDF annotations. +# org.sbml.jsbml.xml.parsers.XMLNodeWriter - DEBUG : output events when writing XMLNode, so HTML block +# org.sbml.jsbml.xml.stax.SBMLReader - ERROR to DEBUG : (lot of output) display all the event when reading an SBML file +# org.sbml.jsbml.xml.stax.SBMLWriter - ERROR to DEBUG : (lot of output) display all the event when writing an SBML file +# org.sbml.jsbml.util.StringTools - WARN : warning when there is a problem with the conversion of a String into a number or boolean. +# org.sbml.jsbml.util.compilers.MathMLXMLStreamCompiler - WARN to DEBUG : (lot of output) display all the event when writing mathML +# org.sbml.jsbml.xml.parsers.MathMLStaxParser - ERROR to DEBUG : (lot of output) display all the event when reading a MathML block +# org.sbml.jsbml.SBMLDocument - ERROR to DEBUG : will display problems related to the checkConsistency call +# org.sbml.jsbml.validator.SBMLValidator - DEBUG : will print the xml result file from http://sbml.org/validator/ with few others checks when the parsing is done +# org.sbml.jsbml.util.SubModel - DEBUG : will print the details of the submodel building +# org.sbml.jsbml.ASTNode - ERROR to DEBUG +# org.sbml.jsbml.xml.parsers.AbstractReaderWriter - DEBUG : events when reading or writing L3 packages block (if the parser extends this abstract class) +# org.sbml.jsbml.xml.parsers.QualParser - DEBUG : events when reading/writing the qual package/extension. +# org.sbml.jsbml.ext.comp.CompModelPlugin - DEBUG: register and unregister debug output for the comp package id namespace +# org.sbml.jsbml.ext.comp.ArraysSBasePlugin - DEBUG: register and unregister debug output for the arrays package id namespace +# org.sbml.jsbml.Model - DEBUG: register and unregister debug output for the core package id namespace +# org.sbml.jsbml.xml.parsers.SBMLRDFAnnotationParser - DEBUG: debug output when reading and writing RDF annotations + + +--> + <Root level="info"> + <AppenderRef ref="file"/> + </Root> + </Loggers> + +</Configuration> Modified: trunk/core/src/org/sbml/jsbml/SBO.java =================================================================== --- trunk/core/src/org/sbml/jsbml/SBO.java 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/src/org/sbml/jsbml/SBO.java 2016-05-04 12:44:42 UTC (rev 2499) @@ -30,8 +30,8 @@ import java.util.Set; import org.apache.log4j.Logger; -import org.biojava3.ontology.Ontology; -import org.biojava3.ontology.io.OboParser; +import org.biojava.nbio.ontology.Ontology; +import org.biojava.nbio.ontology.io.OboParser; import org.sbml.jsbml.ontology.Term; import org.sbml.jsbml.ontology.Triple; import org.sbml.jsbml.resources.Resource; @@ -1000,19 +1000,19 @@ * Return the set of terms of the SBO Ontology. * * <p> This methods return only Term object and no Triple object that represent the - * relationship between terms. If you want to access the full set of {@link org.biojava3.ontology.Term} - * containing also the {@link org.biojava3.ontology.Triple}, use {@link SBO#getOntology()} + * relationship between terms. If you want to access the full set of {@link org.biojava.nbio.ontology.Term} + * containing also the {@link org.biojava.nbio.ontology.Triple}, use {@link SBO#getOntology()} * to get the underlying biojava object. * * @return the set of terms of the SBO Ontology. */ public static Set<Term> getTerms() { if (terms.size() < sbo.getTerms().size()) { - for (org.biojava3.ontology.Term term : sbo.getTerms()) { + for (org.biojava.nbio.ontology.Term term : sbo.getTerms()) { - if (term instanceof org.biojava3.ontology.Triple) { + if (term instanceof org.biojava.nbio.ontology.Triple) { // does nothing - } else if (term instanceof org.biojava3.ontology.Term) { + } else if (term instanceof org.biojava.nbio.ontology.Term) { terms.add(new Term(term)); } } @@ -1124,12 +1124,12 @@ * @param object the object to search for, or {@code null}. * @return a set of Triple which match the supplied subject, predicate and object. * - * @see org.biojava3.ontology.Ontology#getTriples(org.biojava3.ontology.Term, - * org.biojava3.ontology.Term, org.biojava3.ontology.Term) + * @see org.biojava.nbio.ontology.Ontology#getTriples(org.biojava.nbio.ontology.Term, + * org.biojava.nbio.ontology.Term, org.biojava.nbio.ontology.Term) */ public static Set<Triple> getTriples(Term subject, Term predicate, Term object) { Set<Triple> triples = new HashSet<Triple>(); - for (org.biojava3.ontology.Triple triple : sbo.getTriples( + for (org.biojava.nbio.ontology.Triple triple : sbo.getTriples( subject != null ? subject.getTerm() : null, object != null ? object.getTerm() : null, predicate != null ? predicate.getTerm() : null)) { @@ -1264,9 +1264,9 @@ if (subject.equals(object)) { return true; } - Set<org.biojava3.ontology.Triple> relations = sbo.getTriples( + Set<org.biojava.nbio.ontology.Triple> relations = sbo.getTriples( subject != null ? subject.getTerm() : null, null, null); - for (org.biojava3.ontology.Triple triple : relations) { + for (org.biojava.nbio.ontology.Triple triple : relations) { if (triple.getObject().equals(object.getTerm())) { return true; } @@ -1989,7 +1989,7 @@ } } System.out.println("\nThere is " + i + " terms in the SBO ontology."); - - + + System.out.println("\nGet term by id = " + Term.printTerm(getTerm("SBO:0000620"))); } } Modified: trunk/core/src/org/sbml/jsbml/ontology/Term.java =================================================================== --- trunk/core/src/org/sbml/jsbml/ontology/Term.java 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/src/org/sbml/jsbml/ontology/Term.java 2016-05-04 12:44:42 UTC (rev 2499) @@ -26,18 +26,18 @@ import java.util.HashSet; import java.util.Set; -import org.biojava3.ontology.Synonym; -import org.biojava3.ontology.utils.Annotation; +import org.biojava.nbio.ontology.Synonym; +import org.biojava.nbio.ontology.utils.Annotation; import org.sbml.jsbml.SBO; import org.sbml.jsbml.util.StringTools; /** * This is a convenient wrapper class for the corresponding implementation - * of {@link org.biojava3.ontology.Term} in BioJava as it provides + * of {@link org.biojava.nbio.ontology.Term} in BioJava as it provides * specialized methods to obtain the information from the SBO OBO file * directly and under the same name as the keys are given in that file. * - * @see org.biojava3.ontology.Term + * @see org.biojava.nbio.ontology.Term */ public class Term implements Cloneable, Comparable<Term>, Serializable { @@ -54,8 +54,8 @@ */ public static String printTerm(Term term) { StringBuilder sb = new StringBuilder(); - StringTools.append(sb, "[Term]\nid: ", term.getId(), "\nname: ", - term.getName(), "\ndef: ", term.getDefinition()); + StringTools.append(sb, "[Term]\nid: ", term.getId(), "\nname: '", + term.getName(), "'\ndef: ", term.getDefinition()); if (term.isObsolete()) { sb.append("\nis_obsolete: true"); } @@ -93,16 +93,16 @@ private String def; /** - * The underlying BioJava {@link org.biojava3.ontology.Term}. + * The underlying BioJava {@link Term}. */ - private org.biojava3.ontology.Term term; + private org.biojava.nbio.ontology.Term term; /** * Creates a new Term instance. * - * @param term a {@link org.biojava3.ontology.Term} object + * @param term a {@link org.biojava.nbio.ontology.Term} object */ - public Term(org.biojava3.ontology.Term term) { + public Term(org.biojava.nbio.ontology.Term term) { if (term == null) { throw new NullPointerException("Term must not be null."); } @@ -217,7 +217,7 @@ Set<Term> parents = new HashSet<Term>(); - for (org.biojava3.ontology.Triple triple : term.getOntology().getTriples(term, null, term.getOntology().getTerm("is_a"))) + for (org.biojava.nbio.ontology.Triple triple : term.getOntology().getTriples(term, null, term.getOntology().getTerm("is_a"))) { parents.add(new Term(triple.getObject())); } @@ -251,7 +251,7 @@ * @return the underlying BioJava * {@link org.biojava3.ontology.Term}. */ - public org.biojava3.ontology.Term getTerm() { + public org.biojava.nbio.ontology.Term getTerm() { return term; } Modified: trunk/core/src/org/sbml/jsbml/ontology/Triple.java =================================================================== --- trunk/core/src/org/sbml/jsbml/ontology/Triple.java 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/core/src/org/sbml/jsbml/ontology/Triple.java 2016-05-04 12:44:42 UTC (rev 2499) @@ -27,10 +27,10 @@ /** * This is a wrapper class for the corresponding BioJava class - * {@link org.biojava3.ontology.Triple}, to allow for simplified access to + * {@link org.biojava.nbio.ontology.Triple}, to allow for simplified access to * the properties of a subject-predicate-object triple in this ontology. * - * @see org.biojava3.ontology.Triple + * @see org.biojava.nbio.ontology.Triple */ public class Triple implements Cloneable, Comparable<Triple>, Serializable { @@ -40,9 +40,9 @@ private static final long serialVersionUID = 7289048361260650338L; /** - * The BioJava {@link org.biojava3.ontology.Triple}. + * The BioJava {@link org.biojava.nbio.ontology.Triple}. */ - private org.biojava3.ontology.Triple triple; + private org.biojava.nbio.ontology.Triple triple; /** * Creates a new {@link Triple} from a given corresponding object from @@ -50,7 +50,7 @@ * * @param triple */ - public Triple(org.biojava3.ontology.Triple triple) { + public Triple(org.biojava.nbio.ontology.Triple triple) { if (triple == null) { throw new NullPointerException("Triple must not be null."); } @@ -132,12 +132,12 @@ /** * Grants access to the original BioJava - * {@link org.biojava3.ontology.Triple}. + * {@link org.biojava.nbio.ontology.Triple}. * * @return the original BioJava - * {@link org.biojava3.ontology.Triple}. + * {@link org.biojava.nbio.ontology.Triple}. */ - public org.biojava3.ontology.Triple getTriple() { + public org.biojava.nbio.ontology.Triple getTriple() { return triple; } Modified: trunk/extensions/arrays/build.xml =================================================================== --- trunk/extensions/arrays/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/arrays/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -33,6 +33,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Arrays L3 package"/> <property name="name" value="jsbml-arrays"/> <property name="version" value="0.9-b1"/> @@ -196,8 +198,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/comp/build.xml =================================================================== --- trunk/extensions/comp/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/comp/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -33,6 +33,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Hierarchical Model Composition L3 package"/> <property name="name" value="jsbml-comp"/> <property name="version" value="1.0-b1"/> @@ -195,8 +197,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/distrib/build.xml =================================================================== --- trunk/extensions/distrib/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/distrib/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -32,6 +32,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Distributions L3 package"/> <property name="name" value="jsbml-distrib"/> <property name="version" value="0.5"/> @@ -194,8 +196,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/dyn/build.xml =================================================================== --- trunk/extensions/dyn/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/dyn/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -31,6 +31,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Dynamic L3 package"/> <property name="name" value="jsbml-dyn"/> @@ -198,8 +200,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/dyn/src/org/sbml/jsbml/ext/dyn/CBO.java =================================================================== --- trunk/extensions/dyn/src/org/sbml/jsbml/ext/dyn/CBO.java 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/dyn/src/org/sbml/jsbml/ext/dyn/CBO.java 2016-05-04 12:44:42 UTC (rev 2499) @@ -29,8 +29,8 @@ import java.util.NoSuchElementException; import java.util.Set; -import org.biojava3.ontology.Ontology; -import org.biojava3.ontology.io.OboParser; +import org.biojava.nbio.ontology.Ontology; +import org.biojava.nbio.ontology.io.OboParser; import org.sbml.jsbml.ontology.Term; import org.sbml.jsbml.ontology.Triple; import org.sbml.jsbml.resources.Resource; @@ -145,16 +145,16 @@ * <p> * This methods return only Term object and no Triple object that represent * the relationship between terms. If you want to access the full set of - * {@link org.biojava3.ontology.Term} containing also the - * {@link org.biojava3.ontology.Triple}, use {@link CBO#getOntology()} to get + * {@link org.biojava.nbio.ontology.Term} containing also the + * {@link org.biojava.nbio.ontology.Triple}, use {@link CBO#getOntology()} to get * the underlying biojava object. * * @return the set of terms of the CBO. */ public static Set<Term> getTerms() { if (terms.size() < cbo.getTerms().size()) { - for (org.biojava3.ontology.Term term : cbo.getTerms()) { - if (term instanceof org.biojava3.ontology.Term) { + for (org.biojava.nbio.ontology.Term term : cbo.getTerms()) { + if (term instanceof org.biojava.nbio.ontology.Term) { terms.add(new Term(term)); } } @@ -179,13 +179,13 @@ * @return a set of Triple which match the supplied subject, predicate and * object. * - * @see org.biojava3.ontology.Ontology#getTriples(org.biojava3.ontology.Term, - * org.biojava3.ontology.Term, org.biojava3.ontology.Term) + * @see org.biojava.nbio.ontology.Ontology#getTriples(org.biojava.nbio.ontology.Term, + * org.biojava.nbio.ontology.Term, org.biojava.nbio.ontology.Term) */ public static Set<Triple> getTriples(Term subject, Term predicate, Term object) { Set<Triple> triples = new HashSet<Triple>(); - for (org.biojava3.ontology.Triple triple : cbo.getTriples( + for (org.biojava.nbio.ontology.Triple triple : cbo.getTriples( subject != null ? subject.getTerm() : null, object != null ? object.getTerm() : null, predicate != null ? predicate.getTerm() : null)) { Modified: trunk/extensions/fbc/build.xml =================================================================== --- trunk/extensions/fbc/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/fbc/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -32,6 +32,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Flux Balance Constraints L3 package"/> <property name="name" value="jsbml-fbc"/> <property name="version" value="1.0-b1"/> @@ -194,8 +196,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/groups/build.xml =================================================================== --- trunk/extensions/groups/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/groups/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -31,6 +31,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Groups L3 package"/> <property name="name" value="jsbml-groups"/> <property name="version" value="0.4-b1"/> <!-- follow the specs 0.4 from 31/05/2013 --> @@ -193,8 +195,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/layout/build.xml =================================================================== --- trunk/extensions/layout/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/layout/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -32,6 +32,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Layout L3 package"/> <property name="name" value="jsbml-layout"/> <property name="version" value="1.0-b1"/> @@ -194,8 +196,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/multi/build.xml =================================================================== --- trunk/extensions/multi/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/multi/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -31,6 +31,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Multistate multicomponent species L3 package"/> <property name="name" value="jsbml-multi"/> <property name="version" value="0.1-a1"/> @@ -193,8 +195,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/qual/build.xml =================================================================== --- trunk/extensions/qual/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/qual/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -31,6 +31,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Qualitative L3 package"/> <property name="name" value="jsbml-qual"/> @@ -198,8 +200,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/render/build.xml =================================================================== --- trunk/extensions/render/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/render/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -32,6 +32,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Render L3 package"/> <property name="name" value="jsbml-render"/> <property name="version" value="0.8-a1"/> @@ -195,8 +197,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/req/build.xml =================================================================== --- trunk/extensions/req/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/req/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -31,6 +31,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Required Elements L3 package"/> <property name="name" value="jsbml-req"/> <property name="version" value="0.2-b1"/> @@ -193,8 +195,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/extensions/spatial/build.xml =================================================================== --- trunk/extensions/spatial/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/extensions/spatial/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -31,6 +31,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property name="Name" value="JSBML Spatial Processes L3 package"/> <property name="name" value="jsbml-spatial"/> <property name="version" value="0.8-b1"/> @@ -193,8 +195,8 @@ debug="${debug}" optimize="${optimize}" verbose="${verbose}" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> <manifest file="${build.dest}/META-INF/MANIFEST.MF"> Modified: trunk/jsbml-build.properties =================================================================== --- trunk/jsbml-build.properties 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/jsbml-build.properties 2016-05-04 12:44:42 UTC (rev 2499) @@ -5,3 +5,5 @@ jsbml.api.version=1.2 jsbml.groupId=org.sbml.jsbml jsbml.artifactId=jsbml-parent +jsbml.build.javac.source=1.7 +jsbml.build.javac.target=1.7 Modified: trunk/modules/tidy/build.xml =================================================================== --- trunk/modules/tidy/build.xml 2016-04-21 13:41:07 UTC (rev 2498) +++ trunk/modules/tidy/build.xml 2016-05-04 12:44:42 UTC (rev 2499) @@ -37,6 +37,8 @@ <format property="YEAR" pattern="yyyy"/> </tstamp> + <property file="${basedir}/../../jsbml-build.properties"/> + <property file="${basedir}/tidy-build.properties"/> <property name="Name" value="${tidy.Name}"/> @@ -194,8 +196,8 @@ memoryMaximumSize="512M" compiler="modern" nowarn="no" - source="1.6" - target="1.6" + source="${jsbml.build.javac.source}" + target="${jsbml.build.javac.target}" classpathref="classpath"> </javac> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-04-21 13:41:09
|
Revision: 2498 http://sourceforge.net/p/jsbml/code/2498 Author: niko-rodrigue Date: 2016-04-21 13:41:07 +0000 (Thu, 21 Apr 2016) Log Message: ----------- updated biojava repository url Modified Paths: -------------- tags/jsbml-1.1/core/pom.xml Modified: tags/jsbml-1.1/core/pom.xml =================================================================== --- tags/jsbml-1.1/core/pom.xml 2016-04-21 13:40:19 UTC (rev 2497) +++ tags/jsbml-1.1/core/pom.xml 2016-04-21 13:41:07 UTC (rev 2498) @@ -88,7 +88,7 @@ <repository> <id>maven-central</id> <name>Maven central repository</name> - <url>http://repo.maven.apache.org/maven2/</url> + <url>https://github.com/biojava/maven-repo/raw/master/</url> </repository> <repository> <id>biojava-maven-repo</id> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-04-21 13:40:22
|
Revision: 2497 http://sourceforge.net/p/jsbml/code/2497 Author: niko-rodrigue Date: 2016-04-21 13:40:19 +0000 (Thu, 21 Apr 2016) Log Message: ----------- updated biojava repository url Modified Paths: -------------- trunk/core/pom.xml Modified: trunk/core/pom.xml =================================================================== --- trunk/core/pom.xml 2016-04-21 13:35:14 UTC (rev 2496) +++ trunk/core/pom.xml 2016-04-21 13:40:19 UTC (rev 2497) @@ -93,7 +93,7 @@ <repository> <id>biojava-maven-repo</id> <name>BioJava repository</name> - <url>http://www.biojava.org/download/maven/</url> + <url>https://github.com/biojava/maven-repo/raw/master/</url> </repository> <repository> <id>ebi-repo</id> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-04-21 13:35:16
|
Revision: 2496 http://sourceforge.net/p/jsbml/code/2496 Author: niko-rodrigue Date: 2016-04-21 13:35:14 +0000 (Thu, 21 Apr 2016) Log Message: ----------- updated biojava repository url Modified Paths: -------------- tags/jsbml-1.0/core/pom.xml Modified: tags/jsbml-1.0/core/pom.xml =================================================================== --- tags/jsbml-1.0/core/pom.xml 2016-04-15 16:02:36 UTC (rev 2495) +++ tags/jsbml-1.0/core/pom.xml 2016-04-21 13:35:14 UTC (rev 2496) @@ -23,16 +23,16 @@ --> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>org.sbml.jsbml.core</groupId> - <artifactId>jsbml</artifactId> - <version>1.0-SNAPSHOT</version> + <groupId>org.sbml.jsbml</groupId> + <artifactId>core</artifactId> + <version>1.0</version> <description>JSBML</description> <packaging>jar</packaging> <parent> <groupId>org.sbml.jsbml</groupId> <artifactId>jsbml-parent</artifactId> - <version>1.0-SNAPSHOT</version> + <version>1.0</version> <relativePath>../</relativePath> </parent> <!-- @@ -44,11 +44,11 @@ </scm> --> - <build> + <build> <directory>dist</directory> <outputDirectory>dist/classes</outputDirectory> - <finalName>${artifactId}-${version}</finalName> + <finalName>${project.artifactId}-${project.version}</finalName> <testOutputDirectory>dist/test-classes</testOutputDirectory> <sourceDirectory>src</sourceDirectory> <scriptSourceDirectory>scripts</scriptSourceDirectory> @@ -60,7 +60,7 @@ </resources> <testResources> <testResource> - <directory>test/org/sbml/jsbml/xml/test</directory> + <directory>test</directory> </testResource> </testResources> @@ -73,88 +73,7 @@ </extensions> <plugins> - <!-- - <plugin> - - - <groupId>org.codehaus.mojo</groupId> - <artifactId>buildnumber-maven-plugin</artifactId> - <version>1.2</version> - <executions> - <execution> - <phase>validate</phase> - <goals> - <goal>create</goal> - </goals> - </execution> - </executions> - <configuration> - <doCheck>false</doCheck> - <doUpdate>false</doUpdate> - <revisionOnScmFailure>unknownbuild</revisionOnScmFailure> - </configuration> - - </plugin> - --> - <!-- - <plugin> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>1.6</source> - <target>1.6</target> - </configuration> - </plugin> - --> - <plugin> - <artifactId>maven-antrun-plugin</artifactId> - <executions> - <execution> - <phase>process-resources</phase> - <configuration> - <tasks> - <property name="version" value="${version}"/> - <property name="name" value="${artifactId}"/> - <ant antfile="build.xml" target="bigjar"/> - </tasks> - </configuration> - <goals> - <goal>run</goal> - </goals> - </execution> - </executions> - <dependencies> - <dependency> - <groupId>com.sun</groupId> - <artifactId>tools</artifactId> - <version>1.7.0</version> - <scope>system</scope> - <systemPath>${java.home}/../lib/tools.jar</systemPath> - </dependency> - </dependencies> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>1.3</version> - <executions> - <execution> - <id>add-jar</id> - <phase>package</phase> - <goals> - <goal>attach-artifact</goal> - </goals> - <configuration> - <artifacts> - <artifact> - <file>build/${artifactId}-${version}-with-dependencies.jar</file> - <type>jar</type> - </artifact> - </artifacts> - </configuration> - </execution> - </executions> - </plugin> - <plugin> + <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> @@ -164,40 +83,15 @@ <argLine>-Dfile.encoding=UTF-8 -DDATA_FOLDER=${project.basedir}/test/org/sbml/jsbml/xml/test/data/ -ea</argLine> </configuration> </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-eclipse-plugin</artifactId> - <version>2.9</version> - <configuration> - <workspace>${basedir}</workspace> - <workspaceCodeStylesURL>http://http://jsbmlmavenrepotest.sourceforge.net/codetemplates.xml</workspaceCodeStylesURL> - </configuration> - </plugin> - <!-- - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-site-plugin</artifactId> - <version>3.3</version> - <dependencies> - <dependency> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-ssh</artifactId> - <version>2.4</version> - </dependency> - </dependencies> - </plugin> - --> </plugins> - </build> <repositories> <repository> <id>biojava-maven-repo</id> <name>BioJava repository</name> - <url>http://www.biojava.org/download/maven/</url> + <url>https://github.com/biojava/maven-repo/raw/master/</url> </repository> - <!-- <repository> <id>ebi-repo</id> <name>The EBI internal repository</name> @@ -206,7 +100,6 @@ <enabled>false</enabled> </snapshots> </repository> - --> </repositories> <dependencies> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-04-15 16:02:39
|
Revision: 2495 http://sourceforge.net/p/jsbml/code/2495 Author: niko-rodrigue Date: 2016-04-15 16:02:36 +0000 (Fri, 15 Apr 2016) Log Message: ----------- several fixes to allow the proper writting of CSG objects: corrected the element names returned by the getElementName() method, properly registered child on the SBMLDocument for CSGObject and CSGTransformation, CSGeometry was missing the TreeNode methods that allow to return the list of children, some readAttributes methods were trying to parse double values as integer and many fixes to the SpatialParser to read and write properly the CSG elements in all cases Modified Paths: -------------- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGObject.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGPrimitive.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGPseudoPrimitive.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGRotation.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGScale.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGSetOperator.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGTransformation.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGTranslation.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGeometry.java trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/SpatialConstants.java trunk/extensions/spatial/src/org/sbml/jsbml/xml/parsers/SpatialParser.java Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGObject.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGObject.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGObject.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -276,6 +276,7 @@ public void setCSGNode(CSGNode csgNode) { CSGNode oldCSGNode = this.csgNode; this.csgNode = csgNode; + registerChild(csgNode); firePropertyChange(SpatialConstants.csgNode, oldCSGNode, this.csgNode); } @@ -418,4 +419,12 @@ } + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#getElementName() + */ + @Override + public String getElementName() { + return SpatialConstants.csgObject; + } + } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGPrimitive.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGPrimitive.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGPrimitive.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -185,7 +185,6 @@ public Map<String, String> writeXMLAttributes() { Map<String, String> attributes = super.writeXMLAttributes(); if (isSetPrimitiveType()) { - attributes.remove("primitiveType"); attributes.put(SpatialConstants.shortLabel + ":primitiveType", getPrimitiveType().toString()); } return attributes; @@ -226,6 +225,13 @@ return builder.toString(); } + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#getElementName() + */ + @Override + public String getElementName() { + return SpatialConstants.csgPrimitive; + } } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGPseudoPrimitive.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGPseudoPrimitive.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGPseudoPrimitive.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -218,6 +218,13 @@ return builder.toString(); } + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#getElementName() + */ + @Override + public String getElementName() { + return SpatialConstants.csgPseudoPrimitive; + } } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGRotation.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGRotation.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGRotation.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -456,6 +456,14 @@ return builder.toString(); } + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#getElementName() + */ + @Override + public String getElementName() { + return SpatialConstants.csgRotation; + } + } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGScale.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGScale.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGScale.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -335,7 +335,7 @@ isAttributeRead = true; if (attributeName.equals(SpatialConstants.scaleX)) { try { - setScaleX(StringTools.parseSBMLInt(value)); + setScaleX(StringTools.parseSBMLDouble(value)); } catch (Exception e) { logger.warn(MessageFormat.format( SpatialConstants.bundle.getString("COULD_NOT_READ_ATTRIBUTE"), value, SpatialConstants.scaleX, getElementName())); @@ -343,7 +343,7 @@ } else if (attributeName.equals(SpatialConstants.scaleY)) { try { - setScaleY(StringTools.parseSBMLInt(value)); + setScaleY(StringTools.parseSBMLDouble(value)); } catch (Exception e) { logger.warn(MessageFormat.format( SpatialConstants.bundle.getString("COULD_NOT_READ_ATTRIBUTE"), value, SpatialConstants.scaleY, getElementName())); @@ -351,7 +351,7 @@ } else if (attributeName.equals(SpatialConstants.scaleZ)) { try { - setScaleZ(StringTools.parseSBMLInt(value)); + setScaleZ(StringTools.parseSBMLDouble(value)); } catch (Exception e) { logger.warn(MessageFormat.format( SpatialConstants.bundle.getString("COULD_NOT_READ_ATTRIBUTE"), value, SpatialConstants.scaleZ, getElementName())); @@ -381,6 +381,14 @@ return builder.toString(); } + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#getElementName() + */ + @Override + public String getElementName() { + return SpatialConstants.csgScale; + } + } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGSetOperator.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGSetOperator.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGSetOperator.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -714,5 +714,13 @@ builder.append("]"); return builder.toString(); } + + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#getElementName() + */ + @Override + public String getElementName() { + return SpatialConstants.csgSetOperator; + } } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGTransformation.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGTransformation.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGTransformation.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -132,6 +132,7 @@ public void setCSGNode(CSGNode csgNode) { CSGNode oldCSGNode = this.csgNode; this.csgNode = csgNode; + registerChild(csgNode); firePropertyChange(SpatialConstants.csgNode, oldCSGNode, this.csgNode); } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGTranslation.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGTranslation.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGTranslation.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -333,7 +333,7 @@ isAttributeRead = true; if (attributeName.equals(SpatialConstants.translateX)) { try { - setTranslateX(StringTools.parseSBMLInt(value)); + setTranslateX(StringTools.parseSBMLDouble(value)); } catch (Exception e) { logger.warn(MessageFormat.format( SpatialConstants.bundle.getString("COULD_NOT_READ_ATTRIBUTE"), value, SpatialConstants.translateX, getElementName())); @@ -341,7 +341,7 @@ } else if (attributeName.equals(SpatialConstants.translateY)) { try { - setTranslateY(StringTools.parseSBMLInt(value)); + setTranslateY(StringTools.parseSBMLDouble(value)); } catch (Exception e) { logger.warn(MessageFormat.format( SpatialConstants.bundle.getString("COULD_NOT_READ_ATTRIBUTE"), value, SpatialConstants.translateY, getElementName())); @@ -349,7 +349,7 @@ } else if (attributeName.equals(SpatialConstants.translateZ)) { try { - setTranslateZ(StringTools.parseSBMLInt(value)); + setTranslateZ(StringTools.parseSBMLDouble(value)); } catch (Exception e) { logger.warn(MessageFormat.format( SpatialConstants.bundle.getString("COULD_NOT_READ_ATTRIBUTE"), value, SpatialConstants.translateZ, getElementName())); @@ -379,5 +379,12 @@ return builder.toString(); } + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#getElementName() + */ + @Override + public String getElementName() { + return SpatialConstants.csgTranslation; + } } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGeometry.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGeometry.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/CSGeometry.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -21,9 +21,12 @@ */ package org.sbml.jsbml.ext.spatial; +import java.text.MessageFormat; import java.util.Collection; import java.util.List; +import javax.swing.tree.TreeNode; + import org.sbml.jsbml.ListOf; import org.sbml.jsbml.SBMLException; @@ -285,4 +288,79 @@ return builder.toString(); } + + @Override + public boolean getAllowsChildren() { + return true; + } + + + @Override + public int getChildCount() { + int count = super.getChildCount(); + + if (isSetListOfCSGObjects()) { + count++; + } + + return count; + } + + + @Override + public TreeNode getChildAt(int index) { + if (index < 0) { + throw new IndexOutOfBoundsException(index + " < 0"); + } + int count = super.getChildCount(), pos = 0; + if (index < count) { + return super.getChildAt(index); + } else { + index -= count; + } + + if (isSetListOfCSGObjects()) { + if (pos == index) { + return getListOfCSGObjects(); + } + pos++; + } + throw new IndexOutOfBoundsException( + MessageFormat.format("Index {0,number,integer} >= {1,number,integer}", + index, Math.min(pos, 0))); + } + + + /** + * Returns the number of {@link CSGObject}s in this + * {@link CSGeometry}. + * + * @return the number of {@link CSGObject}s in this + * {@link CSGeometry}. + */ + public int getCSGObjectCount() { + return isSetListOfCSGObjects() ? getListOfCSGObjects().size() : 0; + } + + + /** + * Returns the number of {@link CSGObject}s in this + * {@link CSGeometry}. + * + * @return the number of {@link CSGObject}s in this + * {@link CSGeometry}. + * @libsbml.deprecated same as {@link #getCSGObjectCount()} + */ + public int getNumCSGObjects() { + return getCSGObjectCount(); + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#getElementName() + */ + @Override + public String getElementName() { + return SpatialConstants.csGeometry; + } + } Modified: trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/SpatialConstants.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/SpatialConstants.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/ext/spatial/SpatialConstants.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -227,7 +227,7 @@ /** * */ - public static final String primitiveType = "csgObjectRef"; + public static final String primitiveType = "primitiveType"; /** * */ @@ -414,6 +414,11 @@ /** * */ + public static final String csgObject = "csgObject"; + + /** + * + */ public static final String csgTransformation = "csgTransformation"; /** * Modified: trunk/extensions/spatial/src/org/sbml/jsbml/xml/parsers/SpatialParser.java =================================================================== --- trunk/extensions/spatial/src/org/sbml/jsbml/xml/parsers/SpatialParser.java 2016-04-13 12:10:35 UTC (rev 2494) +++ trunk/extensions/spatial/src/org/sbml/jsbml/xml/parsers/SpatialParser.java 2016-04-15 16:02:36 UTC (rev 2495) @@ -36,6 +36,7 @@ import org.sbml.jsbml.Species; import org.sbml.jsbml.ext.ASTNodePlugin; import org.sbml.jsbml.ext.SBasePlugin; +import org.sbml.jsbml.ext.spatial.AbstractSpatialNamedSBase; import org.sbml.jsbml.ext.spatial.AdjacentDomains; import org.sbml.jsbml.ext.spatial.AdvectionCoefficient; import org.sbml.jsbml.ext.spatial.AnalyticGeometry; @@ -50,6 +51,7 @@ import org.sbml.jsbml.ext.spatial.CSGRotation; import org.sbml.jsbml.ext.spatial.CSGScale; import org.sbml.jsbml.ext.spatial.CSGSetOperator; +import org.sbml.jsbml.ext.spatial.CSGTransformation; import org.sbml.jsbml.ext.spatial.CSGTranslation; import org.sbml.jsbml.ext.spatial.CSGeometry; import org.sbml.jsbml.ext.spatial.CompartmentMapping; @@ -79,6 +81,7 @@ /** * @author Andreas Dräger * @author Piero Dalle Pezze + * @author rodrigue * @since 1.0 * @version $Rev$ */ @@ -167,16 +170,6 @@ List<Object> listOfElementsToWrite = new ArrayList<Object>(); - // test if this treeNode is an extended SBase. - // if (treeNode instanceof Model) { - // SpatialModelPlugin modelGE = (SpatialModelPlugin) ((Model) treeNode).getExtension(SpatialConstants.namespaceURI); - // - // Enumeration<TreeNode> children = modelGE.children(); - // - // while (children.hasMoreElements()) { - // listOfElementsToWrite.add(children.nextElement()); - // } - // } if (treeNode instanceof SBase && (! (treeNode instanceof Model)) && ((SBase) treeNode).getExtension(getNamespaceURI()) != null) { SBasePlugin sbasePlugin = ((SBase) treeNode).getExtension(getNamespaceURI()); @@ -200,6 +193,16 @@ { super.writeElement(xmlObject, sbmlElementToWrite); + // Put the correct name for the ListOfGeometryDefinitions + // The GeometryDefinition element can be one of AnalyticGeometry, SampledFieldGeometry, CSGeometry, ParametricGeometry. + if (xmlObject.getName().equals("listOfCSGeometrys") || xmlObject.getName().equals("listOfAnalyticGeometrys") + || xmlObject.getName().equals("listOfSampledFieldGeometrys") || xmlObject.getName().equals("listOfParametricGeometrys") + || xmlObject.getName().equals("listOfMixedGeometrys")) + { + xmlObject.setName(SpatialConstants.listOfGeometryDefinitions); + } + + if (logger.isDebugEnabled()) { logger.debug("writeElement: " + sbmlElementToWrite.getClass().getSimpleName()); } @@ -394,6 +397,15 @@ cso.setCSGNode(csgNode); return csgNode; } + } else if (contextObject instanceof CSGScale) { + CSGScale csgParent = (CSGScale) contextObject; + return setCSGNode(csgParent, elementName); + } else if (contextObject instanceof CSGRotation) { + CSGRotation csgParent = (CSGRotation) contextObject; + return setCSGNode(csgParent, elementName); + } else if (contextObject instanceof CSGTranslation) { + CSGTranslation csgParent = (CSGTranslation) contextObject; + return setCSGNode(csgParent, elementName); } else if (contextObject instanceof CSGSetOperator) { CSGSetOperator csgso = (CSGSetOperator) contextObject; if (elementName.equals(SpatialConstants.listOfCSGNodes)) { @@ -489,40 +501,38 @@ SampledField elem = new SampledField(); g.addSampledField(elem); return elem; + } else if (elementName.equals(SpatialConstants.csgObject)) { + CSGObject elem = new CSGObject(); + CSGeometry g = (CSGeometry) listOf.getParentSBMLObject(); + g.addCSGObject(elem); + return elem; } else if (elementName.equals(SpatialConstants.csgPrimitive)) { - CSGSetOperator csgso = (CSGSetOperator) listOf.getParentSBMLObject(); CSGPrimitive elem = new CSGPrimitive(); - csgso.addCSGNode(elem); + addCSGNode((AbstractSpatialNamedSBase) listOf.getParentSBMLObject(), elem); return elem; } else if (elementName.equals(SpatialConstants.csgPseudoPrimitive)) { - CSGSetOperator csgso = (CSGSetOperator) listOf.getParentSBMLObject(); CSGPseudoPrimitive elem = new CSGPseudoPrimitive(); - csgso.addCSGNode(elem); + addCSGNode((AbstractSpatialNamedSBase) listOf.getParentSBMLObject(), elem); return elem; } else if (elementName.equals(SpatialConstants.csgSetOperator)) { - CSGSetOperator csgso = (CSGSetOperator) listOf.getParentSBMLObject(); CSGSetOperator elem = new CSGSetOperator(); - csgso.addCSGNode(elem); + addCSGNode((AbstractSpatialNamedSBase) listOf.getParentSBMLObject(), elem); return elem; } else if (elementName.equals(SpatialConstants.csgTranslation)) { - CSGSetOperator csgso = (CSGSetOperator) listOf.getParentSBMLObject(); CSGTranslation elem = new CSGTranslation(); - csgso.addCSGNode(elem); + addCSGNode((AbstractSpatialNamedSBase) listOf.getParentSBMLObject(), elem); return elem; } else if (elementName.equals(SpatialConstants.csgRotation)) { - CSGSetOperator csgso = (CSGSetOperator) listOf.getParentSBMLObject(); CSGRotation elem = new CSGRotation(); - csgso.addCSGNode(elem); + addCSGNode((AbstractSpatialNamedSBase) listOf.getParentSBMLObject(), elem); return elem; } else if (elementName.equals(SpatialConstants.csgScale)) { - CSGSetOperator csgso = (CSGSetOperator) listOf.getParentSBMLObject(); CSGScale elem = new CSGScale(); - csgso.addCSGNode(elem); + addCSGNode((AbstractSpatialNamedSBase) listOf.getParentSBMLObject(), elem); return elem; } else if (elementName.equals(SpatialConstants.csgHomogeneousTransformation)) { - CSGSetOperator csgso = (CSGSetOperator) listOf.getParentSBMLObject(); CSGHomogeneousTransformation elem = new CSGHomogeneousTransformation(); - csgso.addCSGNode(elem); + addCSGNode((AbstractSpatialNamedSBase) listOf.getParentSBMLObject(), elem); return elem; } else if (elementName.equals(SpatialConstants.spatialPoints)) { ParametricGeometry pg = (ParametricGeometry) listOf.getParentSBMLObject(); @@ -540,6 +550,66 @@ return contextObject; } + private CSGNode setCSGNode(CSGTransformation csgT, String elementName) { + + if (elementName.equals(SpatialConstants.csgPrimitive)){ + CSGPrimitive csgNode = new CSGPrimitive(); + csgT.setCSGNode(csgNode); + return csgNode; + } else if (elementName.equals(SpatialConstants.csgPseudoPrimitive)){ + CSGPseudoPrimitive csgNode = new CSGPseudoPrimitive(); + csgT.setCSGNode(csgNode); + return csgNode; + } else if (elementName.equals(SpatialConstants.csgSetOperator)){ + CSGSetOperator csgNode = new CSGSetOperator(); + csgT.setCSGNode(csgNode); + return csgNode; + } else if (elementName.equals(SpatialConstants.csgTranslation)){ + CSGTranslation csgNode = new CSGTranslation(); + csgT.setCSGNode(csgNode); + return csgNode; + } else if (elementName.equals(SpatialConstants.csgRotation)){ + CSGRotation csgNode = new CSGRotation(); + csgT.setCSGNode(csgNode); + return csgNode; + } else if (elementName.equals(SpatialConstants.csgScale)){ + CSGScale csgNode = new CSGScale(); + csgT.setCSGNode(csgNode); + return csgNode; + } else if (elementName.equals(SpatialConstants.csgHomogeneousTransformation)){ + CSGHomogeneousTransformation csgNode = new CSGHomogeneousTransformation(); + csgT.setCSGNode(csgNode); + return csgNode; + } + + // TODO - throw exception and/or print error messages + + return null; + } + + /** + * @param parent + * @param csgNode + */ + private void addCSGNode(AbstractSpatialNamedSBase parent, CSGNode csgNode) { + + if (parent.getParentSBMLObject() instanceof CSGTransformation) + { + CSGTransformation csgso = (CSGTransformation) parent.getParentSBMLObject(); + csgso.setCSGNode(csgNode); + } + else if (parent.getParentSBMLObject() instanceof CSGSetOperator) + { + CSGSetOperator csgso = (CSGSetOperator) parent.getParentSBMLObject(); + csgso.addCSGNode(csgNode); + } + else if (parent.getParentSBMLObject() instanceof CSGObject) + { + CSGObject csgso = (CSGObject) parent.getParentSBMLObject(); + csgso.setCSGNode(csgNode); + } + } + /* (non-Javadoc) * @see org.sbml.jsbml.xml.parsers.PackageParser#getNamespaceFor(int, int, int) */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-04-13 12:10:38
|
Revision: 2494 http://sourceforge.net/p/jsbml/code/2494 Author: niko-rodrigue Date: 2016-04-13 12:10:35 +0000 (Wed, 13 Apr 2016) Log Message: ----------- update to the groups package to take into account changes in the ListOfMembers. The API of the group class has been modified to manipulate directly ListOfMembers instead of ListOf<Member> so that you have access to the id and name without having to cast the ListOf. Modified Paths: -------------- trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/Group.java Added Paths: ----------- trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/ListOfMembers.java trunk/extensions/groups/test/org/sbml/jsbml/test/data/groups/groups2.xml Modified: trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/Group.java =================================================================== --- trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/Group.java 2016-03-22 15:02:49 UTC (rev 2493) +++ trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/Group.java 2016-04-13 12:10:35 UTC (rev 2494) @@ -82,7 +82,7 @@ /** * */ - protected ListOf<Member> listOfMembers = null; + protected ListOfMembers listOfMembers = null; /** * @@ -306,9 +306,9 @@ * * @return the {@link #listOfMembers}. */ - public ListOf<Member> getListOfMembers() { + public ListOfMembers getListOfMembers() { if (!isSetListOfMembers()) { - listOfMembers = new ListOf<Member>(); + listOfMembers = new ListOfMembers(); listOfMembers.setPackageVersion(-1); // changing the ListOf package name from 'core' to 'groups' listOfMembers.setPackageName(null); @@ -339,7 +339,7 @@ * * @param listOfMembers */ - public void setListOfMembers(ListOf<Member> listOfMembers) { + public void setListOfMembers(ListOfMembers listOfMembers) { unsetListOfMembers(); this.listOfMembers = listOfMembers; @@ -364,7 +364,7 @@ */ public boolean unsetListOfMembers() { if (isSetListOfMembers()) { - ListOf<Member> oldMembers = listOfMembers; + ListOfMembers oldMembers = listOfMembers; listOfMembers = null; oldMembers.fireNodeRemovedEvent(); return true; Added: trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/ListOfMembers.java =================================================================== --- trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/ListOfMembers.java (rev 0) +++ trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/ListOfMembers.java 2016-04-13 12:10:35 UTC (rev 2494) @@ -0,0 +1,315 @@ +/* + * $Id$ + * $URL$ + * ---------------------------------------------------------------------------- + * This file is part of JSBML. Please visit <http://sbml.org/Software/JSBML> + * for the latest version of JSBML and more information about SBML. + * + * Copyright (C) 2009-2016 jointly by the following organizations: + * 1. The University of Tuebingen, Germany + * 2. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK + * 3. The California Institute of Technology, Pasadena, CA, USA + * 4. The University of California, San Diego, La Jolla, CA, USA + * 5. The Babraham Institute, Cambridge, UK + * + * This library is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation. A copy of the license agreement is provided + * in the file named "LICENSE.txt" included with this software distribution + * and also available online as <http://sbml.org/Software/JSBML/License>. + * ---------------------------------------------------------------------------- + */ +package org.sbml.jsbml.ext.groups; + +import java.text.MessageFormat; +import java.util.Map; + +import org.sbml.jsbml.IdentifierException; +import org.sbml.jsbml.ListOf; +import org.sbml.jsbml.NamedSBase; +import org.sbml.jsbml.UniqueNamedSBase; +import org.sbml.jsbml.util.IdManager; +import org.sbml.jsbml.util.TreeNodeChangeEvent; +import org.sbml.jsbml.validator.SyntaxChecker; + +// TODO - get rid of id and name and all associated methods as soon as we use java 8 and we can put default method on interfaces + +/** + * + * @author Nicolas Rodriguez + * @version $Rev$ + * @since 1.2 + */ +public class ListOfMembers extends ListOf<Member> implements NamedSBase, UniqueNamedSBase { + + /** + * Generated serial version identifier. + */ + private static final long serialVersionUID = -6306206652658549671L; + + /** + * id of the SBML component (can be optional depending on the level and + * version). Matches the id attribute of an element in a SBML file. + */ + private String id; + + /** + * name of the SBML component (can be optional depending on the level and + * version). Matches the name attribute of an element in a SBML file. + */ + private String name; + + /** + * + */ + public ListOfMembers() { + super(); + setPackageVersion(-1); + packageName = GroupsConstants.shortLabel; + } + + /** + * @param level + * @param version + */ + public ListOfMembers(int level, int version) { + super(level, version); + setPackageVersion(-1); + packageName = GroupsConstants.shortLabel; + } + + /** + * @param listOf + */ + public ListOfMembers(ListOfMembers listOf) { + super(listOf); + + if (listOf.isSetName()) { + setName(listOf.getName()); + } + if (listOf.isSetId()) { + setId(listOf.getId()); + } + } + + + + /* (non-Javadoc) + * @see org.sbml.jsbml.ListOf#clone() + */ + @Override + public ListOfMembers clone() { + return new ListOfMembers(this); + } + + /* (non-Javadoc) + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!super.equals(obj)) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + ListOfMembers other = (ListOfMembers) obj; + if (id == null) { + if (other.id != null) { + return false; + } + } else if (!id.equals(other.id)) { + return false; + } + if (name == null) { + if (other.name != null) { + return false; + } + } else if (!name.equals(other.name)) { + return false; + } + return true; + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.NamedSBase#getId() + */ + @Override + public String getId() { + return isSetId() ? id : ""; + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.NamedSBase#getName() + */ + @Override + public String getName() { + return isSetName() ? name : ""; + } + + /* (non-Javadoc) + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + final int prime = 829; + int hashCode = super.hashCode(); + if (isSetId()) { + hashCode *= prime * getId().hashCode(); + } + if (isSetName()) { + hashCode *= prime * getName().hashCode(); + } + + return hashCode; + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.NamedSBase#isSetId() + */ + @Override + public boolean isSetId() { + return id != null; + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.NamedSBase#isSetName() + */ + @Override + public boolean isSetName() { + return name != null; + } + + /** + * Checks if the sID is a valid identifier. + * + * @param sID + * the identifier to be checked. If null or an invalid + * identifier, an exception will be thrown. + * @return {@code true} only if the sID is a valid identifier. + * Otherwise this method throws an {@link IllegalArgumentException}. + * This is an intended behavior. + * @throws IllegalArgumentException + * if the given id is not valid in this model. + */ + boolean checkIdentifier(String sID) { + if ((sID == null) || !SyntaxChecker.isValidId(sID, getLevel(), getVersion())) { + throw new IllegalArgumentException(MessageFormat.format( + "\"{0}\" is not a valid identifier for this {1}.", sID, getElementName())); + } + return true; + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.NamedSBase#setId(java.lang.String) + */ + @Override + public void setId(String id) { + String property = TreeNodeChangeEvent.id; + String oldId = this.id; + + // unregister id + IdManager idManager = getIdManager(this); + if (idManager != null) { // (oldId != null) // As the register and unregister are recursive, we need to call the unregister all the time until we have a non recursive method + // Delete previous identifier only if defined. + idManager.unregister(this); // TODO - do we need non recursive method on the IdManager interface ?? + } + + if ((id == null) || (id.trim().length() == 0)) { + this.id = null; + } else if (checkIdentifier(id)) { + this.id = id; + } + + // register the new id + // TODO - could it be done by a protected method in AbstractSBase + if ((idManager != null) && !idManager.register(this)) { + IdentifierException exc = new IdentifierException(this, this.id); + this.id = oldId; // restore the previous setting! + throw new IllegalArgumentException(exc); + } + + firePropertyChange(property, oldId, this.id); + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.NamedSBase#setName(java.lang.String) + */ + @Override + public void setName(String name) { + // removed the call to the trim() function as a name with only space + // should be considered valid. + String oldName = this.name; + if ((name == null) || (name.length() == 0)) { + this.name = null; + } else { + this.name = name; + } + + firePropertyChange(TreeNodeChangeEvent.name, oldName, this.name); + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.NamedSBase#unsetId() + */ + @Override + public void unsetId() { + setId(null); + } + + /* (non-Javadoc) + * @see org.sbml.jsbml.NamedSBase#unsetName() + */ + @Override + public void unsetName() { + setName(null); + } + + + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#readAttribute(java.lang.String, java.lang.String, java.lang.String) + */ + @Override + public boolean readAttribute(String attributeName, String prefix, String value) { + boolean isAttributeRead = super.readAttribute(attributeName, prefix, value); + + if (!isAttributeRead) { + if (attributeName.equals("id")) { + setId(value); + return true; + } else if (attributeName.equals("name")) { + setName(value); + + return true; + } + } + + return isAttributeRead; + } + + + /* (non-Javadoc) + * @see org.sbml.jsbml.AbstractSBase#writeXMLAttributes() + */ + @Override + public Map<String, String> writeXMLAttributes() { + Map<String, String> attributes = super.writeXMLAttributes(); + + if (isSetId()) { + attributes.put(GroupsConstants.shortLabel + ":id", getId()); + } + if (isSetName()) { + attributes.put(GroupsConstants.shortLabel + ":name", getName()); + } + + return attributes; + } + + @Override + public boolean isIdMandatory() { + return false; + } +} Property changes on: trunk/extensions/groups/src/org/sbml/jsbml/ext/groups/ListOfMembers.java ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Author Date Id Rev URL \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: trunk/extensions/groups/test/org/sbml/jsbml/test/data/groups/groups2.xml =================================================================== --- trunk/extensions/groups/test/org/sbml/jsbml/test/data/groups/groups2.xml (rev 0) +++ trunk/extensions/groups/test/org/sbml/jsbml/test/data/groups/groups2.xml 2016-04-13 12:10:35 UTC (rev 2494) @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1" + xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" groups:required="false"> + <model> + <listOfSpecies> + <species id="ATPc" compartment="cytosol" substanceUnits="mole" constant="false" + hasOnlySubstanceUnits="false" boundaryCondition="true"/> + <species id="ATPm" compartment="mitochon" substanceUnits="mole" constant="false" + hasOnlySubstanceUnits="false" boundaryCondition="true"/> + <species id="ATPr" compartment="reticulum" substanceUnits="mole" constant="false" + hasOnlySubstanceUnits="false" boundaryCondition="true"/> + <species id="ATPn" compartment="nucleus" substanceUnits="mole" constant="false" + hasOnlySubstanceUnits="false" boundaryCondition="true"/> + <species id="ATPe" compartment="extracellular" substanceUnits="mole" constant="false" + hasOnlySubstanceUnits="false" boundaryCondition="true"/> + </listOfSpecies> + <listOfCompartments> + <compartment id="cytosol" spatialDimensions="3" size="1" constant="true"/> + <compartment id="mitochon" spatialDimensions="3" size="1" constant="true"/> + <compartment id="reticulum" spatialDimensions="3" size="1" constant="true"/> + <compartment id="nucleus" spatialDimensions="3" size="1" constant="true"/> + <compartment id="extracellular" spatialDimensions="3" size="1" constant="true"/> + </listOfCompartments> + <groups:listOfGroups xmlns="http://www.sbml.org/sbml/level3/version1/groups/version1"> + <groups:group groups:id="ATP_organelle" groups:kind="classification"> + <groups:listOfMembers groups:id="ATP_organelle_list" groups:name="ATP organelle list"> + <groups:member groups:idRef="ATPm"/> + <groups:member groups:idRef="ATPr"/> + <groups:member groups:idRef="ATPn"/> + </groups:listOfMembers> + </groups:group> + <groups:group groups:id="ATP_all" groups:kind="classification"> + <groups:listOfMembers groups:id="ATP_all_list" sboTerm="SBO:0000248"> + <groups:member groups:idRef="ATP_organelle_list"/> + <groups:member groups:idRef="ATPc"/> + <groups:member groups:idRef="ATPe"/> + </groups:listOfMembers> + </groups:group> + </groups:listOfGroups> + </model> +</sbml> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2016-03-22 15:02:52
|
Revision: 2493 http://sourceforge.net/p/jsbml/code/2493 Author: andreas-draeger Date: 2016-03-22 15:02:49 +0000 (Tue, 22 Mar 2016) Log Message: ----------- SBML attributes and namespace declarations are now alphabetically ordered (as desired by Matthias K?\195?\182nig). Some typos in log messages were corrected and smaller refactoring (calling isPackageEnabled reuses now a previously duplicate method). Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/AbstractSBase.java trunk/core/src/org/sbml/jsbml/SBMLDocument.java trunk/core/src/org/sbml/jsbml/xml/parsers/AbstractReaderWriter.java trunk/core/src/org/sbml/jsbml/xml/parsers/PackageUtil.java trunk/core/src/org/sbml/jsbml/xml/stax/SBMLObjectForXML.java trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java trunk/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java trunk/core/test/org/sbml/jsbml/test/PerformanceTest.java trunk/extensions/arrays/src/org/sbml/jsbml/ext/arrays/validator/constraints/IndexAttributesCheck.java trunk/extensions/arrays/test/org/sbml/jsbml/ext/arrays/test/FlatteningTest.java trunk/extensions/multi/src/org/sbml/jsbml/ext/multi/MultiASTNodePlugin.java Modified: trunk/core/src/org/sbml/jsbml/AbstractSBase.java =================================================================== --- trunk/core/src/org/sbml/jsbml/AbstractSBase.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/core/src/org/sbml/jsbml/AbstractSBase.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -24,7 +24,6 @@ import java.text.MessageFormat; import java.util.ArrayList; import java.util.Enumeration; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedMap; @@ -215,7 +214,7 @@ annotation = null; extensions = new TreeMap<String, SBasePlugin>(); elementNamespace = null; - declaredNamespaces = new HashMap<String, String>(); + declaredNamespaces = new TreeMap<String, String>(); } /** @@ -257,7 +256,7 @@ elementNamespace = null; packageName = sb.getPackageName(); packageVersion = sb.getPackageVersion(); - declaredNamespaces = new HashMap<String, String>(); + declaredNamespaces = new TreeMap<String, String>(); if (sb.isSetLevel()) { setLevel(sb.getLevel()); @@ -795,12 +794,12 @@ protected boolean checkAndSetPackageNamespaceAndVersion(SBase sbase) { String expectedPackageNamespace = null; int expectedPackageVersion = -1; - String packageLabel = sbase.getPackageName(); - + String packageLabel = sbase.getPackageName(); + if (packageLabel.equals("core")) { return true; } - + if (getPackageName().equals(sbase.getPackageName())) { expectedPackageNamespace = getNamespace(); expectedPackageVersion = getPackageVersion(); @@ -809,7 +808,7 @@ expectedPackageNamespace = parentSBasePlugin.getElementNamespace(); expectedPackageVersion = parentSBasePlugin.getPackageVersion(); } - + if (expectedPackageVersion == sbase.getPackageVersion() && expectedPackageNamespace != null && expectedPackageNamespace.equals(sbase.getNamespace())) { return true; @@ -836,44 +835,44 @@ * <i>real</i> check, rather than to indicate potential errors. */ protected boolean checkAndSetPackageNamespaceAndVersion(SBasePlugin sbasePlugin, SBMLDocument doc) { - + if (doc != null) { String packageNamespace = doc.getEnabledPackageNamespace(sbasePlugin.getPackageName()); - + if (packageNamespace == null) { return false; } - + int packageVersion = PackageUtil.extractPackageVersion(packageNamespace); - + if (packageVersion == sbasePlugin.getPackageVersion() && - packageNamespace != null && packageNamespace.equals(sbasePlugin.getElementNamespace())) + packageNamespace != null && packageNamespace.equals(sbasePlugin.getElementNamespace())) { return true; } else { sbasePlugin.setPackageVersion(packageVersion); ((AbstractSBasePlugin) sbasePlugin).setNamespace(packageNamespace); - + boolean success = true; - Enumeration<TreeNode> children = children(); + Enumeration<TreeNode> children = children(); while (children.hasMoreElements()) { TreeNode child = children.nextElement(); - - if (child instanceof AbstractSBase && ((AbstractSBase) child).getPackageName().equals(sbasePlugin.getPackageName())) + + if (child instanceof AbstractSBase && ((AbstractSBase) child).getPackageName().equals(sbasePlugin.getPackageName())) { success &= ((AbstractSBase) child).setPackageNamespaceAndVersion(sbasePlugin.getPackageName(), packageNamespace, packageVersion); } } - + return success; } } - + return true; } - + /* (non-Javadoc) * @see java.lang.Object#clone() */ @@ -954,7 +953,7 @@ @Override public boolean equals(Object object) { boolean equals = super.equals(object); - + if (equals) { /* * Casting will be no problem because the super class has just @@ -966,7 +965,7 @@ if (equals && sbase.isSetMetaId()) { equals &= sbase.getMetaId().equals(getMetaId()); } - + /* * All child nodes are already checked by the recursive method in * AbstractTreeNode. We here have to check the following own items @@ -980,7 +979,7 @@ if (equals && sbase.isSetLevelAndVersion()) { equals &= sbase.getLevelAndVersion().equals(getLevelAndVersion()); } - + equals &= getNamespace() != null ? getNamespace().equals(sbase.getNamespace()) : sbase.getNamespace() == null ; if (declaredNamespaces == null) { @@ -1090,7 +1089,7 @@ // set the proper package namespace and version SBMLDocument doc = getSBMLDocument(); SBasePlugin sbasePlugin = (SBasePlugin) newValue; - + if (doc != null) { checkAndSetPackageNamespaceAndVersion(sbasePlugin, doc); } @@ -1705,7 +1704,7 @@ public boolean isSetNotes() { return notesXMLNode != null; } - + /* (non-Javadoc) * @see org.sbml.jsbml.SBase#isSetPackageVErsion() */ @@ -2031,17 +2030,17 @@ * @return */ boolean setPackageNamespaceAndVersion(String packageLabel, String namespace, int packageVersion) { - + if (packageLabel.equals(getPackageName())) { setNamespace(namespace); setPackageVersion(packageVersion); - + boolean success = true; - Enumeration<TreeNode> children = children(); + Enumeration<TreeNode> children = children(); while (children.hasMoreElements()) { TreeNode child = children.nextElement(); - + if (child instanceof AbstractSBase && ((AbstractSBase) child).getPackageName().equals(packageLabel)) { success &= ((AbstractSBase) child).setPackageNamespaceAndVersion(packageLabel, namespace, packageVersion); } @@ -2049,10 +2048,10 @@ return success; } - + return false; } - + /* (non-Javadoc) * @see org.sbml.jsbml.SBase#setMetaId(java.lang.String) */ @@ -2154,17 +2153,17 @@ SBase parent = getParent(); SBasePlugin parentPlugin = null; - + if ((parent != null) && (parent != this)) { int parentPackageVersion = -1; - + if (parent.getPackageName().equals(packageName)) { parentPackageVersion = parent.getPackageVersion(); } else if (parent.isSetPlugin(packageName)) { parentPlugin = parent.getPlugin(packageName); parentPackageVersion = parentPlugin.getPackageVersion(); } - + if (packageVersion != -1 && parentPackageVersion != -1 && packageVersion != parentPackageVersion) { if (parentPlugin != null) { throw new LevelVersionError(parentPlugin, this); @@ -2463,7 +2462,7 @@ if (doc != null) { setMetaId(doc.nextMetaId()); logger.debug(MessageFormat.format( - "Some annotations would get lost because there was no metaid defined on {0}. To avoid this, an automatic metaid ''{0}'' as been generated.", + "Some annotations would get lost because there was no metaid defined on {0}. To avoid this, an automatic metaid ''{0}'' has been generated.", getElementName(), getMetaId())); // Setting the new metaid in the RDF about attribute. getAnnotation().setAbout('#' + getMetaId()); @@ -2476,7 +2475,7 @@ if (isSetMetaId()) { attributes.put("metaid", getMetaId()); } - if (((level == 2) && (getVersion() >= 2)) || (level == 3)) { + if (((level == 2) && (getVersion() >= 2)) || (level > 2)) { // forward looking for levels beyond 3... if (isSetSBOTerm()) { attributes.put("sboTerm", getSBOTermID()); } Modified: trunk/core/src/org/sbml/jsbml/SBMLDocument.java =================================================================== --- trunk/core/src/org/sbml/jsbml/SBMLDocument.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/core/src/org/sbml/jsbml/SBMLDocument.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -34,6 +34,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import java.util.UUID; import javax.swing.tree.TreeNode; @@ -344,7 +345,7 @@ // System.out.println("SBMLDocument.checkConsistency: tmp file = " + tmpFile.getAbsolutePath()); - HashMap<String, String> consistencyParameters = new HashMap<String, String>(); + Map<String, String> consistencyParameters = new HashMap<String, String>(); String offcheck = null; for (String checkCategory : checkConsistencyParameters.keySet()) { @@ -862,7 +863,7 @@ */ public Map<String, String> getSBMLDocumentAttributes() { if (SBMLDocumentAttributes == null) { - SBMLDocumentAttributes = new HashMap<String, String>(); + SBMLDocumentAttributes = new TreeMap<String, String>(); } return SBMLDocumentAttributes; } @@ -966,34 +967,8 @@ */ @Override public boolean isPackageEnabled(String packageURIOrName) { - - // Get the package URI is needed - PackageParser packageParser = ParserManager.getManager().getPackageParser(packageURIOrName); - - if (packageParser != null) { - List<String> packageURIs = null; - - if (packageURIOrName.equals(packageParser.getPackageName())) { - packageURIs = packageParser.getPackageNamespaces(); - } else { - packageURIs = new ArrayList<String>(); - packageURIs.add(packageURIOrName); - } - - // This can happen when cloning a SBMLDocument, the AbstractSBase constructor - // would add any existing SBasePlugin before we initialize enabledPackageMap - if (enabledPackageMap == null) { - enabledPackageMap = new HashMap<String, Boolean>(); - } - - for (String packageURI : packageURIs) { - if (enabledPackageMap.containsKey(packageURI)) { - return enabledPackageMap.get(packageURI); - } - } - } - - return false; + Boolean enabled = isPackageEnabledOrDisabled(packageURIOrName); + return (enabled != null) && enabled.booleanValue(); } /** @@ -1168,7 +1143,7 @@ * */ boolean registerMetaId(SBase sbase, boolean add) { - + if (mappingFromMetaId2SBase == null) { mappingFromMetaId2SBase = new HashMap<String, SBase>(); } Modified: trunk/core/src/org/sbml/jsbml/xml/parsers/AbstractReaderWriter.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/parsers/AbstractReaderWriter.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/core/src/org/sbml/jsbml/xml/parsers/AbstractReaderWriter.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -263,7 +263,6 @@ xmlObject.addAttributes(sbase.writeXMLAttributes()); } - } /* (non-Javadoc) @@ -389,26 +388,36 @@ } catch (SecurityException e) { if (logger.isDebugEnabled()) { - logger.debug("Method '" + createMethodName + "' is not accessible on " + parentSBase.getClass().getSimpleName()); + logger.debug(MessageFormat.format( + "Method ''{0}'' is not accessible on {1}", + createMethodName, parentSBase.getClass().getSimpleName())); e.printStackTrace(); } } catch (NoSuchMethodException e) { if (logger.isDebugEnabled()) { - logger.debug("Method '" + createMethodName + "' does not exist on " + parentSBase.getClass().getSimpleName()); + logger.debug(MessageFormat.format( + "Method ''{0}'' does not exist on {1}", + createMethodName, parentSBase.getClass().getSimpleName())); } } catch (IllegalArgumentException e) { if (logger.isDebugEnabled()) { - logger.debug("Problem invoking the method '" + createMethodName + "' on " + parentSBase.getClass().getSimpleName()); + logger.debug(MessageFormat.format( + "Problem invoking the method ''{0}'' on {1}", + createMethodName, parentSBase.getClass().getSimpleName())); logger.debug(e.getMessage()); } } catch (IllegalAccessException e) { if (logger.isDebugEnabled()) { - logger.debug("Problem invoking the method '" + createMethodName + "' on " + parentSBase.getClass().getSimpleName()); + logger.debug(MessageFormat.format( + "Problem invoking the method ''{0}'' on {1}", + createMethodName, parentSBase.getClass().getSimpleName())); logger.debug(e.getMessage()); } } catch (InvocationTargetException e) { if (logger.isDebugEnabled()) { - logger.debug("Problem invoking the method '" + createMethodName + "' on " + parentSBase.getClass().getSimpleName()); + logger.debug(MessageFormat.format( + "Problem invoking the method ''{0}'' on {1}", + createMethodName, parentSBase.getClass().getSimpleName())); logger.debug(e.getMessage()); } } Modified: trunk/core/src/org/sbml/jsbml/xml/parsers/PackageUtil.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/parsers/PackageUtil.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/core/src/org/sbml/jsbml/xml/parsers/PackageUtil.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -22,6 +22,7 @@ package org.sbml.jsbml.xml.parsers; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -145,7 +146,6 @@ // recursive test for all children if prefix is not "core" checkPackages(sbase, prefixMap, namespaceMap, silent, fix); - } /** @@ -164,8 +164,8 @@ * @param fix boolean to indicate if encountered problems should be fixed. */ private static void checkPackages(SBase sbase, Map<String, PackageInfo> prefixMap, - Map<String, PackageInfo> namespaceMap, boolean silent, boolean fix) - { + Map<String, PackageInfo> namespaceMap, boolean silent, boolean fix) { + if (sbase == null) { return; } @@ -276,8 +276,9 @@ // checking package namespace if ((elementNamespace == null) || (!elementNamespace.equals(pi.namespace))) { if (!silent) { - logger.warn("The element '" + sbasePlugin.getClass().getSimpleName() + "' does not seems to have" - + " the expected package namespace. Found '" + elementNamespace + "', expected '" + pi.namespace + "'"); + logger.warn(MessageFormat.format( + "The element ''{0}'' does not seem to have the expected package namespace. Found ''{1}'', expected ''{2}''", + sbasePlugin.getClass().getSimpleName(), elementNamespace, pi.namespace)); } if (sbasePlugin instanceof AbstractSBasePlugin) { Modified: trunk/core/src/org/sbml/jsbml/xml/stax/SBMLObjectForXML.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/stax/SBMLObjectForXML.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/core/src/org/sbml/jsbml/xml/stax/SBMLObjectForXML.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -21,8 +21,8 @@ */ package org.sbml.jsbml.xml.stax; -import java.util.HashMap; import java.util.Map; +import java.util.TreeMap; /** * An SBMLObjectForXML is an object to store the localName, prefix, namespace @@ -49,7 +49,7 @@ /** * Contains the XML attributes of a SBML component to write. */ - private Map<String, String> attributes = new HashMap<String, String>(); + private Map<String, String> attributes; /** * Represents the text of a SBML component to write. */ @@ -62,10 +62,7 @@ * the attributes to set */ public void addAttributes(Map<String, String> attributes) { - if (this.attributes == null) { - this.attributes = new HashMap<String, String>(); - } - this.attributes.putAll(attributes); + getAttributes().putAll(attributes); } /** @@ -83,6 +80,9 @@ * @return the attributes */ public Map<String, String> getAttributes() { + if (attributes == null) { + attributes = new TreeMap<String, String>(); + } return attributes; } Modified: trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/core/src/org/sbml/jsbml/xml/stax/SBMLReader.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -87,13 +87,13 @@ // effect, for example in OSGi where the properties are global // The fact to use directly WstxOutputFactory and WstxInputFactory when creating the parser // should prevent the problem that setting those properties was fixing. -// static { -// // Making sure that we use the good XML library -// System.setProperty("javax.xml.stream.XMLOutputFactory", "com.ctc.wstx.stax.WstxOutputFactory"); -// System.setProperty("javax.xml.stream.XMLInputFactory", "com.ctc.wstx.stax.WstxInputFactory"); -// System.setProperty("javax.xml.stream.XMLEventFactory", "com.ctc.wstx.stax.WstxEventFactory"); -// } - + // static { + // // Making sure that we use the good XML library + // System.setProperty("javax.xml.stream.XMLOutputFactory", "com.ctc.wstx.stax.WstxOutputFactory"); + // System.setProperty("javax.xml.stream.XMLInputFactory", "com.ctc.wstx.stax.WstxInputFactory"); + // System.setProperty("javax.xml.stream.XMLEventFactory", "com.ctc.wstx.stax.WstxEventFactory"); + // } + /** * Contains all the initialized parsers. */ @@ -176,7 +176,9 @@ Map<String, Class<? extends AnnotationReader>> annotationParserClasses = new HashMap<String, Class<? extends AnnotationReader>>(); - JSBML.loadClasses("org/sbml/jsbml/resources/cfg/annotationParsers.xml", annotationParserClasses); + JSBML.loadClasses( + "org/sbml/jsbml/resources/cfg/annotationParsers.xml", + annotationParserClasses); for (Class<? extends AnnotationReader> annotationReaderClass : annotationParserClasses.values()) { try { @@ -444,7 +446,7 @@ public XMLNode readNotes(String notesXHTML, TreeNodeChangeListener listener) throws XMLStreamException { Object object = readXMLFromString(notesXHTML, listener); - + if ((object != null) && (object instanceof Constraint)) { Constraint constraint = ((Constraint) object); @@ -467,15 +469,15 @@ return (XMLNode) constraint.getUserObject(org.sbml.jsbml.SBMLReader.UNKNOWN_XML_NODE); } } - else if ((object != null) && (object instanceof XMLNode)) + else if ((object != null) && (object instanceof XMLNode)) { // Should not happen at the moment but could if readXMLFromString returned directly // the XMLNode instead of a Constraint object. return (XMLNode) object; } - + logger.warn("Tried to read @" + notesXHTML + "@ as XMLNode without success ! "); - + return null; } @@ -888,13 +890,13 @@ // TODO - change the way we deal with notes, message and annotation and just use the context object ! If XMLNode, we use the 'anyXML' parser // it will allow us to deal easily with unknowns XML elements. - + parser = initializedParsers.get(elementNamespace); // if the current node is a notes or message element // and the matching ReadingParser is a XMLNodeReader, // we need to set the typeOfNotes variable of the // XMLNodeReader instance. - if (currentNode.getLocalPart().equals("notes") + if (currentNode.getLocalPart().equals("notes") || currentNode.getLocalPart().equals("message") || currentNode.getLocalPart().equals("annotation")) { @@ -932,38 +934,38 @@ hasNamespace, sbmlElements.peek()); if (processedElement != null) { - // TODO - we won't need this code any more if the list of child is stored directly in the ASTNode facade + // TODO - we won't need this code any more if the list of child is stored directly in the ASTNode facade // TODO - try to remove this code and check if the ASTNode2 can still pass the sbml-test-suite if (processedElement instanceof ASTNode) { ASTNode astNode = (ASTNode) processedElement; if (currentNode.getLocalPart().equals("cn") && hasAttributes) { - Object object = sbmlElements.peek(); - - while (att.hasNext()) { + Object object = sbmlElements.peek(); - Attribute attribute = att.next(); - String attributeName = attribute.getName().getLocalPart(); + while (att.hasNext()) { - if (attributeName.equals("type")) { - String type = attribute.getValue(); + Attribute attribute = att.next(); + String attributeName = attribute.getName().getLocalPart(); - if (type.equalsIgnoreCase("integer")) { - astNode.setType(Type.INTEGER); - } else if(type.equalsIgnoreCase("e-notation")) { - astNode.setType(Type.REAL_E); - } else if(type.equalsIgnoreCase("rational")) { - astNode.setType(Type.RATIONAL); - } + if (attributeName.equals("type")) { + String type = attribute.getValue(); - if (object != null && object instanceof ASTNode) { - ASTNode parent = (ASTNode) object; + if (type.equalsIgnoreCase("integer")) { + astNode.setType(Type.INTEGER); + } else if(type.equalsIgnoreCase("e-notation")) { + astNode.setType(Type.REAL_E); + } else if(type.equalsIgnoreCase("rational")) { + astNode.setType(Type.RATIONAL); + } - // we need to remove the last child as the hierarchy of children are stored in the ASTNode2 and not directly in the ASTNode - parent.removeChild(parent.getChildCount() - 1); - parent.addChild(astNode); - } // else the parent can be directly a MathContainer - nothing to do in this case. - } - } + if (object != null && object instanceof ASTNode) { + ASTNode parent = (ASTNode) object; + + // we need to remove the last child as the hierarchy of children are stored in the ASTNode2 and not directly in the ASTNode + parent.removeChild(parent.getChildCount() - 1); + parent.addChild(astNode); + } // else the parent can be directly a MathContainer - nothing to do in this case. + } + } } if (currentNode.getLocalPart().equals("csymbol") && hasAttributes) { Object object = sbmlElements.peek(); @@ -976,7 +978,7 @@ if (attributeName.equals("definitionURL")) { String type = attribute.getValue(); - if (type.equalsIgnoreCase(ASTNode.URI_TIME_DEFINITION)) { + if (type.equalsIgnoreCase(ASTNode.URI_TIME_DEFINITION)) { astNode.setType(Type.NAME_TIME); } else if(type.equalsIgnoreCase(ASTNode.URI_DELAY_DEFINITION)) { astNode.setType(Type.FUNCTION_DELAY); @@ -994,7 +996,7 @@ } } } - + // reset the Iterator of attributes so that they can be processed correctly in #processAttributes(...) att = startElement.getAttributes(); } Modified: trunk/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/core/src/org/sbml/jsbml/xml/stax/SBMLWriter.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -91,10 +91,10 @@ // The fact to use directly WstxOutputFactory and WstxInputFactory when creating the parser // should prevent the problem that setting those properties was fixing. //static { - // Making sure that we use the good XML library - // System.setProperty("javax.xml.stream.XMLOutputFactory", "com.ctc.wstx.stax.WstxOutputFactory"); - // System.setProperty("javax.xml.stream.XMLInputFactory", "com.ctc.wstx.stax.WstxInputFactory"); - // System.setProperty("javax.xml.stream.XMLEventFactory", "com.ctc.wstx.stax.WstxEventFactory"); + // Making sure that we use the good XML library + // System.setProperty("javax.xml.stream.XMLOutputFactory", "com.ctc.wstx.stax.WstxOutputFactory"); + // System.setProperty("javax.xml.stream.XMLInputFactory", "com.ctc.wstx.stax.WstxInputFactory"); + // System.setProperty("javax.xml.stream.XMLEventFactory", "com.ctc.wstx.stax.WstxEventFactory"); //} /** @@ -190,12 +190,12 @@ // testDocument.checkConsistency(); -// System.out.println("Model Notes = " + XMLNode.convertXMLNodeToString(testDocument.getModel().getNotes())); -// System.out.println("MathML = " + testDocument.getModel().getReaction(0).getKineticLaw().getMath().toMathML()); - + // System.out.println("Model Notes = " + XMLNode.convertXMLNodeToString(testDocument.getModel().getNotes())); + // System.out.println("MathML = " + testDocument.getModel().getReaction(0).getKineticLaw().getMath().toMathML()); + System.out.println("Going to check package version and namespace for all elements."); PackageUtil.checkPackages(testDocument); - + System.out.printf("Starting writing\n"); new SBMLWriter().write(testDocument, jsbmlWriteFileName); @@ -542,7 +542,7 @@ public void write(SBMLDocument sbmlDocument, OutputStream stream, String programName, String programVersion) throws XMLStreamException, SBMLException { - if (sbmlDocument == null || !sbmlDocument.isSetLevel() || !sbmlDocument.isSetVersion()) { + if ((sbmlDocument == null) || !sbmlDocument.isSetLevel() || !sbmlDocument.isSetVersion()) { throw new IllegalArgumentException( "Unable to write SBML output for documents with undefined SBML Level and Version flag."); } @@ -551,10 +551,10 @@ // check package version and namespace in general and register packages if needed. PackageUtil.checkPackages(sbmlDocument, true, true); - + initializePackageParsers(); - // Explicitly creating WstxOutputFactory as it is needed by staxmate and it is then easier for + // Explicitly creating WstxOutputFactory as it is needed by staxmate and it is then easier for // OSGi to find the needed dependencies WstxOutputFactory factory = new WstxOutputFactory(); SMOutputFactory smFactory = new SMOutputFactory(factory); @@ -697,7 +697,7 @@ WstxOutputFactory outputFactory = new WstxOutputFactory(); SMOutputFactory smFactory = new SMOutputFactory(outputFactory); XMLStreamWriter2 writer = smFactory.createStax2Writer(stream); - + // Create an xml fragment to avoid having the xml declaration SMRootFragment outputDocument = SMOutputFactory.createOutputFragment(writer); @@ -786,7 +786,7 @@ // Creating an SMOutputElement to be sure that the previous nested element tag is closed properly. SMNamespace mathMLNamespace = element.getNamespace(ASTNode.URI_MATHML_DEFINITION, ASTNode.URI_MATHML_PREFIX); SMOutputElement mathElement = element.addElement(mathMLNamespace, "math"); - + MathMLXMLStreamCompiler compiler = new MathMLXMLStreamCompiler( writer, createIndentationString(indent + indentCount)); boolean isSBMLNamespaceNeeded = compiler.isSBMLNamespaceNeeded(m.getMath()); @@ -819,21 +819,21 @@ writer.writeCharacters("\n"); ASTNode astNode = m.getMath(); - + // if an ASTNode.isSemantics we need to write the enclosing 'semantics' element !! if (astNode.isSemantics()) { writer.writeCharacters(whitespaces); writer.writeStartElement("semantics"); writer.writeCharacters("\n"); } - + compiler.compile(m.getMath()); // writing the semantics annotation elements here to write them only for the top level element. if (astNode.isSemantics()) { - + compiler.compileSemanticAnnotations(astNode); - + writer.writeCharacters(whitespaces); writer.writeEndElement(); writer.writeCharacters("\n"); @@ -1087,11 +1087,11 @@ indent + indentCount, false); elementIsNested = isClosedAnnotation = true; } - + if (childXmlObject.getCharacters() != null && childXmlObject.getCharacters().trim().length() != 0) { newOutPutElement.addCharacters(childXmlObject.getCharacters()); } - + if (s.getChildCount() > 0) { // make sure that we'll have line breaks if an element has any sub elements. elementIsNested = true; @@ -1198,7 +1198,7 @@ try { return stream.toString("UTF-8"); } catch (UnsupportedEncodingException e) { - return stream.toString(); + return stream.toString(); } } Modified: trunk/core/test/org/sbml/jsbml/test/PerformanceTest.java =================================================================== --- trunk/core/test/org/sbml/jsbml/test/PerformanceTest.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/core/test/org/sbml/jsbml/test/PerformanceTest.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -96,7 +96,7 @@ double globalInit = Calendar.getInstance().getTimeInMillis(); double globalEnd = 0; double globalReadingMs = 0; - + for (File file : files) { @@ -107,7 +107,7 @@ String jsbmlWriteFileName = fileName.replaceFirst(".xml", "-jsbml.xml"); System.out.printf("Reading %s and writing %s (size=%dKb)\n", - fileName, jsbmlWriteFileName, file.length()/1024); + fileName, jsbmlWriteFileName, file.length()/1024); SBMLDocument testDocument; long afterRead = 0; @@ -119,7 +119,7 @@ System.out.printf("Starting writing\n"); - new SBMLWriter().write(testDocument.clone(), jsbmlWriteFileName); + SBMLWriter.write(testDocument.clone(), jsbmlWriteFileName, ' ', (short) 2); } catch (XMLStreamException e) { @@ -142,7 +142,7 @@ double nbSecondsRead = (afterRead - init)/1000; double nbSecondsWrite = (end - afterRead)/1000; globalReadingMs += (afterRead - init); - + if (nbSeconds > 120) { System.out.println("It took " + nbSeconds/60 + " minutes."); } else { @@ -154,7 +154,7 @@ if (nbSeconds > THRESHOLD) { modelLongerThanThresholdList.add(fileName); } - + if (files.length == 1) { System.out.println((int)nbMilliseconds); @@ -164,19 +164,19 @@ if (modelLongerThanThresholdList.size() > 0) { System.out.println("Models longer than '" + THRESHOLD + "' secondes: " + modelLongerThanThresholdList); } - + if (files.length > 1) { double globalNbMilliseconds = globalEnd - globalInit; double globalSeconds = globalNbMilliseconds / 1000; - System.out.println("Reading and writing " + files.length + " models took : " + globalSeconds + + System.out.println("Reading and writing " + files.length + " models took : " + globalSeconds + " seconds (" + globalReadingMs + " to read, " + (globalNbMilliseconds - globalReadingMs) + " to write)."); System.out.println("Mean per model = " + globalSeconds / files.length + " seconds (" + globalNbMilliseconds / files.length + " ms)."); System.out.println((int)globalNbMilliseconds); } - + } } Modified: trunk/extensions/arrays/src/org/sbml/jsbml/ext/arrays/validator/constraints/IndexAttributesCheck.java =================================================================== --- trunk/extensions/arrays/src/org/sbml/jsbml/ext/arrays/validator/constraints/IndexAttributesCheck.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/extensions/arrays/src/org/sbml/jsbml/ext/arrays/validator/constraints/IndexAttributesCheck.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -96,7 +96,9 @@ SBase parent = index.getParentSBMLObject().getParentSBMLObject(); if (refAttribute == null) { - String msg = MessageFormat.format("Index objects should have a value for attribute arrays:referencedAttribute. However, the referenced attribute of Index {0} for object {1} doesn't have a value.", index.toString(), parent.toString()); + String msg = MessageFormat.format( + "Index objects should have a value for attribute arrays:referencedAttribute. However, the referenced attribute of Index {0} for object {1} doesn't have a value.", + index.toString(), parent.toString()); logIndexMissingAttribute(msg); return; } Modified: trunk/extensions/arrays/test/org/sbml/jsbml/ext/arrays/test/FlatteningTest.java =================================================================== --- trunk/extensions/arrays/test/org/sbml/jsbml/ext/arrays/test/FlatteningTest.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/extensions/arrays/test/org/sbml/jsbml/ext/arrays/test/FlatteningTest.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -62,7 +62,7 @@ public class FlatteningTest { private static final transient Logger logger = Logger.getLogger(FlatteningTest.class); - + @Test public void sizeZeroTest() { try { @@ -97,7 +97,7 @@ e.printStackTrace(); } } - + /** * */ @@ -220,23 +220,23 @@ ASTNode ruleMath = ASTNode.parseFormula("selector(X, i)"); rule.setMath(ruleMath); - + String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testFlatteningRule, document before convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testFlatteningRule, document after convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + assertTrue(flattened.getModel().getParameterCount() == 21); assertTrue(flattened.getModel().getRuleCount() == 10); } catch (SBMLException e) { @@ -298,18 +298,18 @@ Dimension dim = reactPlugin.createDimension("i"); dim.setSize(n.getId()); dim.setArrayDimension(0); - + String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testReaction, document before convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testReaction, document after convert:\n" + docStr); System.out.println("\n-------------------------------------------"); @@ -375,16 +375,16 @@ dim.setArrayDimension(0); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testEvent, document before convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testEvent, document after convert:\n" + docStr); System.out.println("\n-------------------------------------------"); @@ -450,21 +450,21 @@ String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testEventAssignmentWithParentDimension, document before convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testEventAssignmentWithParentDimension, document after convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + assertTrue(flattened.getModel().getEventCount() == 3); assertTrue(flattened.getModel().getEvent(0).getEventAssignmentCount() == 1); } catch (SBMLException e) { @@ -487,7 +487,7 @@ SBMLDocument flattened = ArraysFlattening.convert(doc); String docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testBioModelFlattening, document after convert:\n" + docStr); } @@ -558,16 +558,16 @@ dim.setArrayDimension(0); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testSpeciesReference, document before convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testSpeciesReference, document after convert:\n" + docStr); System.out.println("\n-------------------------------------------"); @@ -660,16 +660,16 @@ impb.setMath(ASTNode.parseFormula("j")); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testSpeciesReferenceImplicitDim, document before convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testSpeciesReferenceImplicitDim, document after convert:\n" + docStr); System.out.println("\n-------------------------------------------"); @@ -769,16 +769,16 @@ rule.setMath(ruleMath); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testUniqueID, document before convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testUniqueID, document after convert:\n" + docStr); System.out.println("\n-------------------------------------------"); @@ -808,32 +808,32 @@ try { doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/SubModel.xml")); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("SubModel, document before convert:\n" + docStr); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("SubModel, document after convert:\n" + docStr); System.out.println("\n-------------------------------------------"); } - + doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/SubSubModel.xml")); docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("SubSubModel, document before convert:\n" + docStr); } - + flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("SubSubModel, document after convert:\n" + docStr); } @@ -854,15 +854,15 @@ doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/VoteModel.xml")); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testFBC, document before convert:\n" + docStr); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testFBC, document after convert:\n" + docStr); } @@ -881,21 +881,21 @@ SBMLDocument doc; try { doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/NEWFBC.xml")); - + String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testFBC, document before convert:\n" + docStr); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); - + docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testFBC, document after convert:\n" + docStr); } - + } catch (XMLStreamException e) { assertTrue(false); } @@ -909,15 +909,15 @@ doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/layoutTest.xml")); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testLayout, document before convert:\n" + docStr); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testLayout, document after convert:\n" + docStr); } @@ -928,21 +928,21 @@ } -// @Test -// public void testMetaIdRef() { -// SBMLDocument doc; -// try { -// doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/xyz.xml")); -// SBMLWriter.write(doc, System.out, ' ', (short) 2); -// SBMLDocument flattened = ArraysFlattening.convert(doc); -// -// SBMLWriter.write(flattened, System.out, ' ', (short) 2); -// -// } catch (XMLStreamException e) { -// assertTrue(false); -// } -// -// } + // @Test + // public void testMetaIdRef() { + // SBMLDocument doc; + // try { + // doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/xyz.xml")); + // SBMLWriter.write(doc, System.out, ' ', (short) 2); + // SBMLDocument flattened = ArraysFlattening.convert(doc); + // + // SBMLWriter.write(flattened, System.out, ' ', (short) 2); + // + // } catch (XMLStreamException e) { + // assertTrue(false); + // } + // + // } @Test public void getmodel() { @@ -951,15 +951,15 @@ doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/example04.xml")); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("getmodel, document before convert:\n" + docStr); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("getmodel, document after convert:\n" + docStr); } @@ -970,25 +970,25 @@ } -// @Test -// public void testASTNodeType() -// { -// SBMLDocument doc = new SBMLDocument(3,1); -// Model model = doc.createModel("foo"); -// FunctionDefinition function = model.createFunctionDefinition("uniform"); -// Constraint c = model.createConstraint(); -// try { -// function.setMath(ASTNode.parseFormula("lambda(a,b,(a+b)/2)")); -// c.setMath(ASTNode.parseFormula("uniform(0,1) > 0.5")); -// } -// catch (ParseException e1) { -// assertTrue(false); -// } -// System.out.println(c.getMath().toString()); -// doc = ArraysFlattening.convert(model.getSBMLDocument()); -// assertTrue(c.getMath().getType() == doc.getModel().getConstraint(0).getMath().getType()); -// } - + // @Test + // public void testASTNodeType() + // { + // SBMLDocument doc = new SBMLDocument(3,1); + // Model model = doc.createModel("foo"); + // FunctionDefinition function = model.createFunctionDefinition("uniform"); + // Constraint c = model.createConstraint(); + // try { + // function.setMath(ASTNode.parseFormula("lambda(a,b,(a+b)/2)")); + // c.setMath(ASTNode.parseFormula("uniform(0,1) > 0.5")); + // } + // catch (ParseException e1) { + // assertTrue(false); + // } + // System.out.println(c.getMath().toString()); + // doc = ArraysFlattening.convert(model.getSBMLDocument()); + // assertTrue(c.getMath().getType() == doc.getModel().getConstraint(0).getMath().getType()); + // } + @Test public void testTime() { SBMLDocument doc; @@ -996,15 +996,15 @@ doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/and.xml")); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("testTime, document before convert:\n" + docStr); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("testTime, document after convert:\n" + docStr); } @@ -1014,7 +1014,7 @@ } } - + @Test public void toggleTime() { SBMLDocument doc; @@ -1022,15 +1022,15 @@ doc = SBMLReader.read(ArraysWriteTest.class.getResourceAsStream("/org/sbml/jsbml/xml/test/data/arrays/toggleSwitch.xml")); String docStr = new SBMLWriter().writeSBMLToString(doc); - + if (logger.isDebugEnabled()) { logger.debug("toggleTime, document before convert:\n" + docStr); } - + SBMLDocument flattened = ArraysFlattening.convert(doc); docStr = new SBMLWriter().writeSBMLToString(flattened); - + if (logger.isDebugEnabled()) { logger.debug("toggleTime, document after convert:\n" + docStr); } @@ -1040,5 +1040,6 @@ } } + } Modified: trunk/extensions/multi/src/org/sbml/jsbml/ext/multi/MultiASTNodePlugin.java =================================================================== --- trunk/extensions/multi/src/org/sbml/jsbml/ext/multi/MultiASTNodePlugin.java 2016-03-21 11:50:09 UTC (rev 2492) +++ trunk/extensions/multi/src/org/sbml/jsbml/ext/multi/MultiASTNodePlugin.java 2016-03-22 15:02:49 UTC (rev 2493) @@ -21,8 +21,8 @@ */ package org.sbml.jsbml.ext.multi; -import java.util.HashMap; import java.util.Map; +import java.util.TreeMap; import javax.swing.tree.TreeNode; @@ -57,7 +57,7 @@ public MultiASTNodePlugin(MultiASTNodePlugin multiASTNodePlugin) { super(multiASTNodePlugin); - + if (multiASTNodePlugin.isSetRepresentationType()) { setRepresentationType(multiASTNodePlugin.getRepresentationType()); } @@ -116,7 +116,7 @@ if (isSetSpeciesReference()) { String oldSpeciesReference = speciesReference; speciesReference = null; - firePropertyChange(MultiConstants.speciesReference, oldSpeciesReference, this.speciesReference); + firePropertyChange(MultiConstants.speciesReference, oldSpeciesReference, speciesReference); return true; } return false; @@ -169,15 +169,18 @@ if (isSetRepresentationType()) { RepresentationType oldRepresentationType = representationType; representationType = null; - firePropertyChange(MultiConstants.representationType, oldRepresentationType, this.representationType); + firePropertyChange(MultiConstants.representationType, oldRepresentationType, representationType); return true; } return false; } - + /* (non-Javadoc) + * @see org.sbml.jsbml.ext.AbstractASTNodePlugin#writeXMLAttributes() + */ + @Override public Map<String, String> writeXMLAttributes() { - Map<String, String> attributes = new HashMap<String, String>(); + Map<String, String> attributes = super.writeXMLAttributes(); if (isSetSpeciesReference()) { attributes.put(MultiConstants.shortLabel + ":" + MultiConstants.speciesReference, getSpeciesReference()); @@ -191,6 +194,7 @@ } + @Override public boolean readAttribute(String attributeName, String prefix, String value) { boolean isAttributeRead = false; @@ -242,7 +246,7 @@ if (this == obj) { return true; } - + if (! super.equals(obj)) { return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2016-03-21 11:50:12
|
Revision: 2492 http://sourceforge.net/p/jsbml/code/2492 Author: andreas-draeger Date: 2016-03-21 11:50:09 +0000 (Mon, 21 Mar 2016) Log Message: ----------- Fixed bug reported by Matthias K?\195?\182nig that when writing sbml:units attributes in cn-elements in MathML for real numbers with e-notation the tag was closed before the attribute was written. Also added generic types to avoid implicit casting in FormulaCompiler. Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/math/compiler/FormulaCompiler.java trunk/core/src/org/sbml/jsbml/util/compilers/MathMLXMLStreamCompiler.java Modified: trunk/core/src/org/sbml/jsbml/math/compiler/FormulaCompiler.java =================================================================== --- trunk/core/src/org/sbml/jsbml/math/compiler/FormulaCompiler.java 2016-03-17 13:00:05 UTC (rev 2491) +++ trunk/core/src/org/sbml/jsbml/math/compiler/FormulaCompiler.java 2016-03-21 11:50:09 UTC (rev 2492) @@ -84,10 +84,10 @@ * @param elements * @return */ - private static final StringBuffer arith(char operator, Object... elements) { - List<Object> vsb = new Vector<Object>(); - for (Object sb : elements) { - if (sb != null && sb.toString().length() > 0) { + private static final <T> StringBuffer arith(char operator, T... elements) { + List<T> vsb = new Vector<T>(); + for (T sb : elements) { + if ((sb != null) && (sb.toString().length() > 0)) { vsb.add(sb); } } @@ -278,7 +278,7 @@ * @param factors * @return */ - public static final StringBuffer times(Object... factors) { + public static final <T> StringBuffer times(T... factors) { return arith('*', factors); } @@ -288,10 +288,10 @@ * @param elements * @return */ - protected static final StringBuffer vector(Object... elements) { - List<Object> vsb = new Vector<Object>(); - for (Object sb : elements) { - if (sb != null && sb.toString().length() > 0) { + protected static final <T> StringBuffer vector(T... elements) { + List<T> vsb = new Vector<T>(); + for (T sb : elements) { + if ((sb != null) && (sb.toString().length() > 0)) { vsb.add(sb); } } Modified: trunk/core/src/org/sbml/jsbml/util/compilers/MathMLXMLStreamCompiler.java =================================================================== --- trunk/core/src/org/sbml/jsbml/util/compilers/MathMLXMLStreamCompiler.java 2016-03-17 13:00:05 UTC (rev 2491) +++ trunk/core/src/org/sbml/jsbml/util/compilers/MathMLXMLStreamCompiler.java 2016-03-21 11:50:09 UTC (rev 2492) @@ -107,7 +107,7 @@ * @throws XMLStreamException */ public MathMLXMLStreamCompiler(String indent) throws XMLStreamException { - // Explicitly creating WstxOutputFactory as it is needed by staxmate and it is then easier for + // Explicitly creating WstxOutputFactory as it is needed by staxmate and it is then easier for // OSGi to find the needed dependencies WstxOutputFactory outputFactory = new WstxOutputFactory(); SMOutputFactory smFactory = new SMOutputFactory(outputFactory); @@ -134,7 +134,7 @@ String mathML = ""; StringWriter stream = new StringWriter(); - // Explicitly creating WstxOutputFactory as it is needed by staxmate and it is then easier for + // Explicitly creating WstxOutputFactory as it is needed by staxmate and it is then easier for // OSGi to find the needed dependencies WstxOutputFactory outputFactory = new WstxOutputFactory(); SMOutputFactory smFactory = new SMOutputFactory(outputFactory); @@ -165,7 +165,7 @@ writer.writeCharacters("\n"); writer.setPrefix("math", ASTNode.URI_MATHML_DEFINITION); - + // if an ASTNode.isSemantics we need to write the enclosing 'semantics' element !! if (astNode.isSemantics()) { writer.writeCharacters(compiler.indent); @@ -173,19 +173,19 @@ writer.writeStartElement("semantics"); writer.writeCharacters("\n"); } - + compiler.compile(astNode); // writing the semantics annotation elements here to write them only for the top level element. if (astNode.isSemantics()) { - + compiler.compileSemanticAnnotations(astNode); - + writer.writeCharacters(" "); writer.writeEndElement(); writer.writeCharacters("\n"); } - + writer.writeEndElement(); writer.writeEndDocument(); writer.close(); @@ -379,9 +379,9 @@ case VECTOR: compileVector(astNode); break; -// case SEMANTICS: -// compileSemantics(astNode); -// break; + // case SEMANTICS: + // compileSemantics(astNode); + // break; default: // UNKNOWN: logger.warn("!!!!! I don't know what to do with the node of type " + astNode.getType()); break; @@ -471,7 +471,7 @@ writer.writeCharacters(indent); writer.writeEmptyElement(ASTNode.URI_MATHML_DEFINITION, "exponentiale"); writer.writeCharacters("\n"); - + } catch (XMLStreamException e) { e.printStackTrace(); } @@ -527,7 +527,6 @@ writer.writeCharacters(indent); writer.writeStartElement(ASTNode.URI_MATHML_DEFINITION, "cn"); writer.writeAttribute("type", "integer"); // writer.writeAttribute(ASTNode.URI_MATHML_DEFINITION, "type", "integer"); - if (astNode.isSetUnits()) { writer.writeAttribute("sbml:units", astNode.getUnits()); } @@ -569,7 +568,7 @@ writer.writeAttribute("type", "real"); } if (astNode.isSetUnits()) { - writer.writeAttribute(" sbml:units", astNode.getUnits()); + writer.writeAttribute("sbml:units", astNode.getUnits()); } writer.writeCharacters(" "); @@ -597,7 +596,6 @@ writer.writeCharacters(indent); writer.writeStartElement(ASTNode.URI_MATHML_DEFINITION, "cn"); writer.writeAttribute("type", "e-notation"); - writer.writeCharacters(" "); if (astNode.isSetUnits()) { writer.writeAttribute("sbml:units", astNode.getUnits()); } @@ -650,12 +648,12 @@ try { writer.writeCharacters(indent); writer.writeStartElement(ASTNode.URI_MATHML_DEFINITION, "ci"); - + // check if there are any plugins on the ASTNode if (astNode.getExtensionCount() > 0) { writePlugins(astNode); } - + writer.writeCharacters(" "); writer.writeCharacters(astNode.getName()); writer.writeCharacters(" "); @@ -675,17 +673,17 @@ * @param astNode */ private void writePlugins(ASTNode astNode) { - + // TODO - for now only writing the attributes, we will need to revisit if // one package add elements to mathML elements. - + ASTNodePlugin plugin = astNode.getPlugin("multi"); Map<String, String> attributes = plugin.writeXMLAttributes(); - + if (attributes.size() > 0) { for (String attributeKey : attributes.keySet()) { String attributeValue = attributes.get(attributeKey); - + try { writer.writeAttribute(attributeKey, attributeValue); } catch (XMLStreamException e) { @@ -1059,7 +1057,7 @@ } } - + /** * @param node */ @@ -1067,18 +1065,18 @@ try { - if (node.getNumSemanticsAnnotations() > 0) + if (node.getNumSemanticsAnnotations() > 0) { // TODO - use the current 'indent' value to initialize the XMLNodeWriter XMLNodeWriter xmlNodeWriter = new XMLNodeWriter(writer, 0, 2, ' '); - + for (int i = 0; i < node.getNumSemanticsAnnotations(); i++) { XMLNode xmlNode = node.getSemanticsAnnotation(i); writer.writeCharacters(indent); xmlNodeWriter.write(xmlNode); - writer.writeCharacters("\n"); + writer.writeCharacters("\n"); } } } catch (XMLStreamException e) { @@ -1089,9 +1087,9 @@ } -// private void compileSemantics(ASTNode astNode) { -// // would be needed for ASTNode2 may be ? -// } + // private void compileSemantics(ASTNode astNode) { + // // would be needed for ASTNode2 may be ? + // } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-03-17 13:00:07
|
Revision: 2491 http://sourceforge.net/p/jsbml/code/2491 Author: niko-rodrigue Date: 2016-03-17 13:00:05 +0000 (Thu, 17 Mar 2016) Log Message: ----------- better fix for de-serialization as the listOfListeners could be used without passing by the getListOfTreeNodeChangeListeners() method so the problem encountered by Mathias could have been found in other situations. Now whenever the de-serialization happen the field is properly initialized. Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/AbstractTreeNode.java Modified: trunk/core/src/org/sbml/jsbml/AbstractTreeNode.java =================================================================== --- trunk/core/src/org/sbml/jsbml/AbstractTreeNode.java 2016-03-17 11:42:27 UTC (rev 2490) +++ trunk/core/src/org/sbml/jsbml/AbstractTreeNode.java 2016-03-17 13:00:05 UTC (rev 2491) @@ -22,6 +22,7 @@ */ package org.sbml.jsbml; +import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.AbstractMap; @@ -498,11 +499,6 @@ */ @Override public List<TreeNodeChangeListener> getListOfTreeNodeChangeListeners() { - - // Might happen after deserialization ! - if (listOfListeners == null) { - listOfListeners = new ArrayList<TreeNodeChangeListener>(); - } return listOfListeners; } @@ -807,4 +803,10 @@ return userObjects.keySet(); } + private void readObject(java.io.ObjectInputStream in) + throws IOException, ClassNotFoundException + { + in.defaultReadObject(); + listOfListeners = new ArrayList<TreeNodeChangeListener>(); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-03-17 11:42:29
|
Revision: 2490 http://sourceforge.net/p/jsbml/code/2490 Author: niko-rodrigue Date: 2016-03-17 11:42:27 +0000 (Thu, 17 Mar 2016) Log Message: ----------- a bit of optimization in the SBMLRDFAnnotationParser to avoid to create an History object when not needed. Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLRDFAnnotationParser.java Modified: trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLRDFAnnotationParser.java =================================================================== --- trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLRDFAnnotationParser.java 2016-03-17 11:41:03 UTC (rev 2489) +++ trunk/core/src/org/sbml/jsbml/xml/parsers/SBMLRDFAnnotationParser.java 2016-03-17 11:42:27 UTC (rev 2490) @@ -1661,20 +1661,22 @@ String precedingElementName = null; String precedingElementNamespaceURI = JSBML.URI_PURL_TERMS; - if (contextObject.getHistory().isSetModifiedDate()) - { - precedingElementName = "modified"; + if (contextObject.isSetHistory()) { + if (contextObject.getHistory().isSetModifiedDate()) + { + precedingElementName = "modified"; + } + else if (contextObject.getHistory().isSetCreatedDate()) + { + precedingElementName = "created"; + } + else if (contextObject.getHistory().getCreatorCount() > 0) + { + precedingElementName = "creator"; + precedingElementNamespaceURI = JSBML.URI_PURL_ELEMENTS; + } } - else if (contextObject.getHistory().isSetCreatedDate()) - { - precedingElementName = "created"; - } - else if (contextObject.getHistory().getCreatorCount() > 0) - { - precedingElementName = "creator"; - precedingElementNamespaceURI = JSBML.URI_PURL_ELEMENTS; - } - + int i = contextObject.getAnnotation().getListOfCVTerms().size() - 1; for (; i >= 0; i--) { @@ -1717,7 +1719,11 @@ { XMLNode qualifierNode = null; - int trueIndex = getLastIndexOf(parentNode, precedingElementName, precedingElementNamespaceURI); + int trueIndex = -1; + + if (precedingElementName != null) { + trueIndex = getLastIndexOf(parentNode, precedingElementName, precedingElementNamespaceURI); + } String cvtermURI = CVTerm.URI_BIOMODELS_NET_BIOLOGY_QUALIFIERS; String cvtermPrefix = "bqbiol"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nik...@us...> - 2016-03-17 11:41:05
|
Revision: 2489 http://sourceforge.net/p/jsbml/code/2489 Author: niko-rodrigue Date: 2016-03-17 11:41:03 +0000 (Thu, 17 Mar 2016) Log Message: ----------- added a check in AbstractTreeNode.getListOfTreeNodeChangeListeners() to generate an empty list if the listOfListeners is null. Thanks to Matthias Koenig who reported this problem Modified Paths: -------------- trunk/core/src/org/sbml/jsbml/AbstractTreeNode.java Modified: trunk/core/src/org/sbml/jsbml/AbstractTreeNode.java =================================================================== --- trunk/core/src/org/sbml/jsbml/AbstractTreeNode.java 2016-03-15 11:55:55 UTC (rev 2488) +++ trunk/core/src/org/sbml/jsbml/AbstractTreeNode.java 2016-03-17 11:41:03 UTC (rev 2489) @@ -498,6 +498,11 @@ */ @Override public List<TreeNodeChangeListener> getListOfTreeNodeChangeListeners() { + + // Might happen after deserialization ! + if (listOfListeners == null) { + listOfListeners = new ArrayList<TreeNodeChangeListener>(); + } return listOfListeners; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |