Skip to content

Releases: joniles/mpxj

Version 15.1.0

08 Dec 19:28

Choose a tag to compare

  • Improve selection of the default calendar when reading Asta Powerproject PP files.
  • Added support for the calculated task attribute Schedule Percent Complete. Note that at present this is not calculated for WBS/Summary Tasks.
  • Added support for the Task attributes Estimated Weight, Auto Compute Actuals, and Original Budget. (Based on a contribution by danielfromCL)
  • Ensure that the Estimated Weight attribute is read from and written to WBS entries and Activities for P6 schedules. (Based on a contribution by danielfromCL)
  • Ensure that the Original Budget attribute is read from and written to WBS entries for P6 schedules. (Based on a contribution by danielfromCL)
  • Ensure that the Auto Compute Actuals flag is read from and written to Activities in P6 scheudles. (Based on a contribution by danielfromCL)
  • Fix an issue where the Activity attribute Longest Path was not being written to XER files. (Based on a contribution by danielfromCL)
  • Updated to POI 5.5.1.
  • Updated to Jackson 2.20.1.
  • Updated to jsoup 1.21.2.
  • Updated to sqlite-jdbc 3.51.1.0

Version 15.0.0

24 Nov 19:59

Choose a tag to compare

  • NEW FEATURES
  • Updated PrimaveraXERFileWriter to allow a list of projects to be written to an XER file.
  • Updated PrimaveraPMFileWriter to allow a list of projects to be written to a PMXML file.
  • CHANGES
  • Include all available baselines when reading Asta Powerproject PP files (Contributed by gitgood88).
  • MPXJ will now store an arbitrary number of baselines rather than the hard limit of 11 previously in place. Only baselines numbered 0-10 will be interpreted by MPXJ, other baselines can just be stored and retrieved.
  • Added the Last Scheduled Date and Activity Percent Complete Based On Activity Steps attributes to ProjectProperties and ensured these are read from and written to P6 schedules (Based on a contribution by danielfromCL).
  • Header rows for empty tables are no longer written to XER files.
  • Add support for the Project attribute Activity Default Calendar Unique ID.
  • Added the ProjectCalendar#getDefault method. This returns true if the current calendar is the default calendar for the project file (e.g. MPP files) or project database (e.g. P6 database).
  • Added the ProjectCalendar#setDefault method. Calling this method sets the calendar as the default for the project file or project database.
  • Added the ProjectCalendar#isParent method.
  • Added the ProjectCalendar#getDerivedCalendarsForProject method.
  • Added the ProjectCalendar#getProjectUniqueID and ProjectCalendar#setProjectUniqueIDmethods. This attribute is used to indicate that a calendar belongs to a specific project.
  • When writing PMXML files, ensure that OriginalProjectObjectId is populated for baseline projects.
  • Added the ProjectContext class to represent common context data which can (depending on the source application) be shared across multiple projects.
  • Added the ProjectFile#getProjectContext method to retrieve the ProjectContext instance to which a project belongs.
  • Added the Resource#getProjectContext method to retrieve the ProjectContext instance to which a resource belongs.
  • Added the ProjectCalendar#getProjectContext method to retrieve the ProjectContext instance to which a calendar belongs.
  • Added the ProjectFile#getCalendarsForProject method. This retrieves global calendars, and any project-specific calendars relevant for this project.
  • Added the Rate#valueOf method.
  • Added the TimeUnitDefaults class to allow time unit related default values to be held as part of the ProjectContext class.
  • Updated to POI 5.5.0
  • Updated to Jackcess 4.0.10. Removed explicit Commons Lang 3 dependency.
  • Updated to JUnit 5.14.1
  • BREAKING CHANGES
  • The ProjectFile#getBaselines method now returns a Map instance keyed by baseline index.
  • When using the readAll method to read PMXML files, only projects will now be returned. Any baseline ProjectFile instances will now only be linked to their parent projects, and will not be present in the list returned by readAll.
  • For P6 projects the ProjectFile#getCalendars method will include all calendars from the file or database being read. To retrieve only calendars relevant to the project use the ProjectFile#getCalendarsForProject method.
  • For P6 projects the ProjectCalendar#getDerivedCalendars method will include all derived calendars from the file or database being read. To retrieve derived calendars relevant to a specific project use the ProjectCalendar#getDerivedCalendarsForProject method.
  • Removed the ProjectEntity class. The ProjectProperties, Resource, ResourceAssignment and Task classes no longer inherit from this class. The ProjectProperties, ResourceAssignment and Task classes provide a replacement for the ProjectEntity#getParentFile method. The Resource class no longer has a getParentFile method.
  • Removed the ProjectCalendar#getParentFile method. Calendars no longer belong directly to projects, but instead belong to a ProjectContext instance.
  • Removed the Resource#addResourceAssignment method. This method was originally only intended for internal use within MPXJ.
  • The ResourceAssignment class no longer provides a public constructor. The Task#addResourceAssignment method should be used instead.
  • Removed the Task#addResourceAssignment(ResourceAssignment) method. Use the Task#addResourceAssignment(Resource) method instead.
  • Removed the Task#setSplits method. This method was originally only intended for internal use.

Version 14.5.2

22 Oct 07:05

Choose a tag to compare

  • Fix an issue reading secondary constraint dates and finish constraint dates from Open Plan BK3 files.
  • Update the Jackcess dependency Commons Lang 3 to a version not affected by CVE-2025-48924.

Version 14.5.1

07 Oct 18:09

Choose a tag to compare

  • Ensure that project listeners work in MPXJ.Net when using the ProjectReaderProxy from UniversalProjectReader.
  • Minor PrimaveraScheduler improvements.

Version 14.5.0

01 Oct 07:44

Choose a tag to compare

  • Implemented support for reading and exporting projects using Primavera P6 Web Services (p6ws). Among other things this could be used to access projects managed by Primavera P6 EPPM.
  • Add Free Slack calculation to the Task class.
  • Ensure that the PrimaveraScheduler updates resource assignment dates.
  • Handle blank Activity ID values when writing XER and PMXML files.
  • Ensure that all Activity, Project, Resource Assignment, Resource and Role Code definitions in XER and PMXML files include a maximum length.

Version 14.4.0

17 Sep 10:46

Choose a tag to compare

  • Implemented support for reading projects from Microsoft Project Server (also known as Project Online, Project Web Access or PWA).
  • Improve handling of different date formats read from BK3 files.
  • Adjust handling of the Mandatory Start constraint on in progress tasks in the PrimaveraScheduler.

Version 14.3.5

26 Aug 18:56

Choose a tag to compare

  • When reading XER files and P6 databases, ensure that project-specific calendars are only attached to the project to which they relate.

Version 14.3.4

20 Aug 11:12

Choose a tag to compare

  • Add missing reader class proxy handling in MPXJ.Net.

Version 14.3.3

14 Aug 18:53

Choose a tag to compare

  • Do not supply a default value for the Task Constraint Type attribute. Previously if this value was not set, MPXJ returned ConstraintType.AS_SOON_AS_POSSIBLE.
  • Remove workaround for locating the SQLite native library when using .Net on a Mac. This is no longer necessary following the recent SQLite version update.

Version 14.3.2

05 Aug 16:45

Choose a tag to compare

  • Handle time ranges in Synchro SP file which finish at midnight.
  • Improve support for reading task data from certain Synchro 6.5 SP files.