Releases: joniles/mpxj
Releases · joniles/mpxj
Version 13.1.0
- 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 additionalProjectFile
argument. - Deprecated the original
UserDefinedField
constructor. A new version of the constructor takes an additionalProjectFile
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
- When writing XER files, provide a default value for the Resource ID if it is not populated.
Version 13.0.1
- 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
- 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. Thenet.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 theProjectProperties
class. - Removed redundant
setUniqueID
methods from immutable objects. These previously threwUnsupportedOperationException
when called. - The
ProjectEntityWithUniqueID
interface no longer contains thesetUniqueID
method. Entities with a mutable Unique ID attribute now implement theProjectEntityWithMutableUniqueID
interface, which inherits from theProjectEntityWithUniqueID
interface. - The
MSPDIReader
andPrimaveraXERFileReader
classes no longer provide getter and setter methods forEncoding
, use theCharset
getter and setter methods instead. - Removed the
XerFieldType
class and replaced usages of it with theDataType
class. - The deprecated
ActivityCode()
constructor andaddValue
method have been removed. - The deprecated
ActivityCodeValue()
constructor andsetParent
method have been removed. - The deprecated
CostAccount()
constructor andgetDescription
method have been removed. - The deprecated
CustomFieldValueItem
methodsgetParent
andsetParent
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
methodssetEncoding
andgetEncoding
have been removed. - The deprecated
Location.Builder()
constructor has been removed. - The deprecated
NotesTopic()
constructor has been removed. - The deprecated
ObjectSequence
methodreset
has been removed. - The deprecated
PlannerWriter
methodssetEncoding
andgetEncoding
have been removed. - The deprecated
PrimaveraXERFileWriter
methodsetEncoding
has been removed. - The deprecated
ProjectCalendar
methodgetDate
has been removed. - The deprecated
ProjectCalendarHelper
methodgetExpandedExceptionsWithWorkWeeks
has been removed. - The deprecated
ProjectEntityContainer
methodsgetNextUniqueID
,renumberUniqueIDs
andupdateUniqueIdCounter
have been removed. - The deprecated
ProjectFile
methodsexpandSubprojects
andupdateUniqueIdCounters
have been removed. - The deprecated
ProjectReader
methodsetProperties
andsetCharset
have been removed. - The deprecated
ProjectWriterUtility
class has been removed. - The deprecated
RateHelper
methods accepting aProjectFile
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
methodssetAvailableFrom
,setAvailableTo
,setMaterialLabel
andsetMaxUnits
have been removed. - The deprecated
ResourceAssignment
methodgetCalendar
has been removed. - The deprecated
Step(Task)
constructor and all setter methods have been removed. - The deprecated
Task
methodaddPredecessor(Task,RelationType,Duration)
has been removed - The deprecated
TimephasedUtility
methodssegmentBaselineWork(ProjectFile, ...)
andsegmentBaselineCost(ProjectFile, ...)
methods have been removed. - The deprecated
UnitOfMeasure.Builder()
constructor has been removed.
Version 12.10.3
- Add new project property
IsProjectBaseline
. When using thereadAll
method to retrieve a set of schedules, if the data source contans both schedules and baselines this property will be true for theProjectFile
instances which represent a baseline.
Version 12.10.2
- 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
- Ignore missing
PropertySet
s 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
- When a baseline is added using one of the
ProjectFile.setBaseline
methods, ensure that the relevant baseline date is set inProjectProperties
. - Marked the
JsonWriter
methodssetEncoding
andgetEncoding
as deprecated, usesetCharset
andgetCharset
instead. - Marked the
PlannerWriter
methodssetEncoding
andgetEncoding
as deprecated, usesetCharset
andgetCharset
instead. - Marked the
PrimaveraXERFileWriter
methodsetEncoding
as deprecated, usesetCharset
instead. - Marked the
ProjectCalendarHelper
methodgetExpandedExceptionsWithWorkWeeks
as deprecated, useProjectCalendar.getExpandedCalendarExceptionsWithWorkWeeks
instead. - Marked the
ProjectReader
methodsetCharset
as deprecated. Readers which support setting the Chraset now implement theHasCharset
interface, which includes Charset getter and setter methods. - Implemented the
UniversalProjectWriter
class. This complements theUniversalProjectReader
class by providing a simple way for MPXJ users to write project files without having to be concerned with details of the individualProjectWriter
classes. This is intended to replace theProjectWriterUtility
class. Note that theProjectWriterUtility
has a somewhat brittle mechanism to determine the output file format from the supplied output file name. This is not replicated byUniversalProjectWriter
, users are expected to provide their own code to determine the appropriate file format. - Marked the
ProjectWriterUtility
class as deprecated.
Version 12.9.3
- Improve handling of non-standard timestamp formats in XER files.
Version 12.9.2
- 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.