Skip to content

Releases: joniles/mpxj

Version 13.1.0

26 Jul 23:42
Compare
Choose a tag to compare
  • Updated to POI 5.3.0
  • Add support for reading and writing timephased data for activities in P6 schedules which have a "manual" curve. (Note: MPXJ does not currently support translating timephased data between different applications, so timephased data read from an MPP file won't be written to a P6 schedule and vice versa).
  • Add an attribute to the ResourceAssignment class to represent timephased planned work. This is read from/written to P6 as Budgeted Work.
  • Update Phoenix schemas to ensure that cost types are represented as doubles.
  • Updated to avoid reading apparently invalid resources from Project Commander files.
  • Correct the Finish attribute for resource assignments when reading PMXML files.
  • Improve accuracy of the RemainingDuration attribute for resource assignments when writing PMXML files.
  • Improve recognition of non-working days when reading calendars certain PMXML files.
  • Add support for the Resource Assignment field Remaining Units. (Note: this field defaults to the same value as Units if it is not explicitly populated).
  • Ensure the Resource Assignment field Remaining Units is read from and written to P6 schedules.
  • Improve handling of invalid calendar exception data when reading P6 schedules from XER files or a P6 database.
  • Improve the implementation of the Unique ID sequence generator used by MPXJ to avoid issues when multiple classloaders are used.
  • Deprecated the original StructuredNotes constructor. A new version of the constructor takes an additional ProjectFile argument.
  • Deprecated the original UserDefinedField constructor. A new version of the constructor takes an additional ProjectFile argument.
  • Add support for reading and writing the Project Website URL attribute for P6 schedules.
  • Add support for the Notes attribute as part of the ProjectProperties class.
  • Ensure that project notes are read from and written to PMXML files.
  • Usability improvements to the Notes class hierarchy to make it easier to update notes.
  • Improvements to notes handling when writing PMXML files to make it easier to construct structured notes using plain text.

Version 13.0.2

08 Jul 15:31
Compare
Choose a tag to compare
  • When writing XER files, provide a default value for the Resource ID if it is not populated.

Version 13.0.1

04 Jul 20:02
Compare
Choose a tag to compare
  • For XER files, ignore the "null" resource when writing resource rates.
  • When reading MPP files, ensure that Enterprise Custom Field Unique IDs are unique across entities.

Version 13.0.0

20 Jun 13:07
Compare
Choose a tag to compare
  • NOTE: this is a major release containing breaking changes. When updating from a 12.x release it is recommended that you first update to the most recent 12.x release and deal with any deprecation warnings before moving to this release.
  • NOTE: the original net.sf.mpxj NuGet packages are now deprecated and will be replaced by the MPXJ.Net NuGet Package in the next major MPXJ release. The net.sf.mpxj packages will continue to be maintained until then, at which point they will no longer be distributed. Please migrate your code to use MPXJ.Net at the earliest opportunity, and open an issue in the GitHUb issue tracker if you encounter problems.
  • Updated to use JAXB3. Among other things this change ensures compatibility with Spring Boot 3. Note that this may be a breaking change for you if you own application uses JAXB2.
  • When reading P6 schedules, the custom properties (as retrieved using ProjectProperties.getCustomProperties) will no longer contain scheduling options. These are now all available as attributes of the ProjectProperties class.
  • Removed redundant setUniqueID methods from immutable objects. These previously threw UnsupportedOperationException when called.
  • The ProjectEntityWithUniqueID interface no longer contains the setUniqueID method. Entities with a mutable Unique ID attribute now implement the ProjectEntityWithMutableUniqueID interface, which inherits from the ProjectEntityWithUniqueID interface.
  • The MSPDIReader and PrimaveraXERFileReader classes no longer provide getter and setter methods for Encoding, use the Charset getter and setter methods instead.
  • Removed the XerFieldType class and replaced usages of it with the DataType class.
  • The deprecated ActivityCode() constructor and addValue method have been removed.
  • The deprecated ActivityCodeValue() constructor and setParent method have been removed.
  • The deprecated CostAccount() constructor and getDescription method have been removed.
  • The deprecated CustomFieldValueItem methods getParent and setParent have been removed.
  • The deprecated ExpenseCategory() constructor has been removed.
  • The deprecated ExpenseItem(Task) constructor and all setter methods have been removed.
  • The deprecated JsonWriter methods setEncoding and getEncoding have been removed.
  • The deprecated Location.Builder() constructor has been removed.
  • The deprecated NotesTopic() constructor has been removed.
  • The deprecated ObjectSequence method reset has been removed.
  • The deprecated PlannerWriter methods setEncoding and getEncoding have been removed.
  • The deprecated PrimaveraXERFileWriter method setEncoding has been removed.
  • The deprecated ProjectCalendar method getDate has been removed.
  • The deprecated ProjectCalendarHelper method getExpandedExceptionsWithWorkWeeks has been removed.
  • The deprecated ProjectEntityContainer methods getNextUniqueID, renumberUniqueIDs and updateUniqueIdCounter have been removed.
  • The deprecated ProjectFile methods expandSubprojects and updateUniqueIdCounters have been removed.
  • The deprecated ProjectReader method setProperties and setCharset have been removed.
  • The deprecated ProjectWriterUtility class has been removed.
  • The deprecated RateHelper methods accepting a ProjectFile argument have veen removed.
  • The deprecated Relation(Task,Task,RelationType,Duration) constructor has been removed.
  • The deprecated RelationContainer.addPredecessor(Task,Task,RelationType,Duration) method has been removed
  • The deprecated Resource methods setAvailableFrom, setAvailableTo, setMaterialLabel and setMaxUnits have been removed.
  • The deprecated ResourceAssignment method getCalendar has been removed.
  • The deprecated Step(Task) constructor and all setter methods have been removed.
  • The deprecated Task method addPredecessor(Task,RelationType,Duration) has been removed
  • The deprecated TimephasedUtility methods segmentBaselineWork(ProjectFile, ...) and segmentBaselineCost(ProjectFile, ...) methods have been removed.
  • The deprecated UnitOfMeasure.Builder() constructor has been removed.

Version 12.10.3

14 Jun 13:39
Compare
Choose a tag to compare
  • Add new project property IsProjectBaseline. When using the readAll method to retrieve a set of schedules, if the data source contans both schedules and baselines this property will be true for the ProjectFile instances which represent a baseline.

Version 12.10.2

03 Jun 13:27
Compare
Choose a tag to compare
  • Added a missing unique ID mapping when writing resource assignment resource unique IDs to MSPDI files (Contributed by Alex Matatov)
  • Handle null field type when reading outline code values from an MPP9 file.

Version 12.10.1

22 May 15:26
Compare
Choose a tag to compare
  • Ignore missing PropertySets when reading MPP files (Contributed by Fabian Schmidt).
  • Corrected handling of the "24 Hour Calendar" Relationship Lag Calendar setting when reading and writing XER files (Based on a contribution by Alex Matatov)

Version 12.10.0

13 May 13:22
Compare
Choose a tag to compare
  • When a baseline is added using one of the ProjectFile.setBaseline methods, ensure that the relevant baseline date is set in ProjectProperties.
  • Marked the JsonWriter methods setEncoding and getEncoding as deprecated, use setCharset and getCharset instead.
  • Marked the PlannerWriter methods setEncoding and getEncoding as deprecated, use setCharset and getCharset instead.
  • Marked the PrimaveraXERFileWriter method setEncoding as deprecated, use setCharset instead.
  • Marked the ProjectCalendarHelper method getExpandedExceptionsWithWorkWeeks as deprecated, use ProjectCalendar.getExpandedCalendarExceptionsWithWorkWeeks instead.
  • Marked the ProjectReader method setCharset as deprecated. Readers which support setting the Chraset now implement the HasCharset interface, which includes Charset getter and setter methods.
  • Implemented the UniversalProjectWriter class. This complements the UniversalProjectReader class by providing a simple way for MPXJ users to write project files without having to be concerned with details of the individual ProjectWriter classes. This is intended to replace the ProjectWriterUtility class. Note that the ProjectWriterUtility has a somewhat brittle mechanism to determine the output file format from the supplied output file name. This is not replicated by UniversalProjectWriter, users are expected to provide their own code to determine the appropriate file format.
  • Marked the ProjectWriterUtility class as deprecated.

Version 12.9.3

24 Apr 20:02
Compare
Choose a tag to compare
  • Improve handling of non-standard timestamp formats in XER files.

Version 12.9.2

19 Apr 17:56
Compare
Choose a tag to compare
  • Ensure calendars in Asta schedules have the correct name.
  • Improve assignment of calendars to summary tasks when reading Asta schedules.
  • Preserve calendar hierarchy when reading Asta schedules.