Changelogs

Any comments, suggestions or questions are appreciated.

Changelog in Version 0.3.3

Features, Fixes and Stability Enhancements since InPlace Activator 0.3.2.

Restoring User Settings in the Bundle View

All user settings in the Bundle View are now restored between Eclipse sessions and after closing/opening  the view. Specifically this applies to column sort order, column widths, link with explorer state, the current selected project and the current selected page (bundle list page or details page).

Build Error Status was not always updated in the Bundle View in a Deactivated Workspace

For new builds in a deactivated workspace the build error status from earlier builds was not updated in the status column in the bundle view.

Changelog in Version 0.3.2

Features, Fixes and Stability Enhancements since InPlace Activator 0.3.1.

Project Build Status

There has still been some cases where build errors and the build pending status has not been cleared in the status column in the Bundle View after a successful build.

The errornous status was mainly due to not catching that the build system does not generate a resource delta to indicate a new build state when meta files (e.g. description and manifest files) where the only source changes in a project. Hopefully this should be correct now.

Displaying wrong Number of removed and added Default Output Folders in the Bundle Main Sub Menu

This occurred when there were multiple entries in the Bundle-ClassPath header and the default output folder entry was not the first entry.

This prevented the possibility to manually add and remove the default output folder in manifest files from the main menu. Beside this, no other side effects of this error has been identified.

Project Location Exception when Deleting a Project

This was a synchronization problem that occurred occasionally when trying to update the bundle status list in the Bundle View before the project was completely removed from the workspace. The exception had no side effects.

Tycho Build

Instead of the old style update site used so far, Tycho is now used to build and package a p2 update site. This should result in faster updates after upgrading from version 0.3.1 and for fresh installs.

See the README.md for instructions on how to clone and build the latest source with Tycho.

 

Changelog in Version 0.3.1

Features, Fixes and Stability Enhancements since InPlace Activator 0.3.0.

Closed Projects examined when checking duplicates and shutting down the IDE

Examining closed projects when checking for duplicate bundles or examining bundles at IDE shutdown would in some cases throw an exception.

Build Status of Projects at IDE Startup

Correct build status was not always reported correctly at IDE startup. Now a warning is sent to the Bundle Log and the build status flag is cleared.

 

Changelog in Version 0.3.0

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.9.

Activate Bundle Projects with Java Build Errors

A new option to activate and run bundle projects with Java build errors has been added.The option is off by default. This does not apply to build errors preventing bundles from being installed and resolved. Examples are meta data errors (manifest file, project description), cycles and duplicates.

Exiting the IDE after closing Projects

In some cases an exception was thrown when exiting the IDE after projects had been closed during a session.

Activate/Deactivate Button in the Bundle View

Repeatedly, with a short delay, clicking the Deactivate/Activate button caused Activate and Deactivate to interrupt each other.

Install error when using the new Eclipse Installer

An error, specifying architectural restrictions, in the InPlace Activator feature file raised a “filter is not applicable” error.

Lastly, some work has been done to make the tool more robust and some minor errors have been corrected. Also, the help system should now be up to date.

 

Changelog in Version 0.2.9

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.8.

Deactivate Workspace at Shut Down

Bundle projects are deactivated at shut down if the “Deactivate on Exit” option is switched on or if there are any build errors in activated projects. In some cases Eclipse reported the following warning: “The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes”.

Bundle Projects are now deactivated earlier in the shut down process and should not be the cause of this warning.

Pending Build Status

Pending Build is shown in the status column in the Bundle View for activated bundle projects when the resolved or running version of a bundle is not reflecting the last source changes in a project.

The Pending Build status is now reported for bundle projects in all states and retained between IDE session, including in situations when the IDE terminates abnormally.

Changelog in Version 0.2.8

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.7.

Dirty files at IDE shut down

If there were unsaved files in an activated bundle project and those files were saved as part of the IDE shut down process, the IDE reported unsaved data in the workspace at start up.

Pending Build not recognized for the Reset Bundle Operation

When issuing a Reset operation for a bundle project with a pending build operation, the “Build Pending” status was not updated correctly.

Changelog in Version 0.2.7

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.6.

New Save Options Feature
Options for automatically saving files and a snapshot of the workspace before bundle operations are executed has been added to the preference page. The two save options are off by default. You can enable them from the preference menu.

The save snapshot option is experimental mainly because it is a costly operation. Feedback on this feature is appreciated. See the resource API for a description of the workspace snapshot operation.

Saving Project Meta Files
The “.project” and the “manifest.mf”  meta files are updated when a project is Activated/Deactivated.  In addition the “manifest.mf” file is updated when toggling the bundle activation policy and adding/removing the default output folder.

If a meta file (“.project” and/or “manifest.mf”) is changed but not saved (dirty file) when issuing one of the bundle operations modifying a meta file, a “save file before bundle operation” prompt is now shown with the option to cancel the bundle operation or saving the meta file(s) before running the bundle operation.

Before this, files were changed by the bundle operation and a prompt to restore the modified files was shown. If restored the the modifications done by the bundle operation was lost and if not restored changes done prior to the bundle operation was lost.

Pending build Operations for Bundle Projects
Activating bundle projects that have been modified but not built (“Build Automatically” option switched off) are now handled by updating the “Build Pending” status field of the activated project.

Also when enabling the “Build Automatically” option for activated and deactivated bundle projects, pending builds was not recognized when only project meta files (e.g. .project and manifest files) was saved prior to switching the  “Build Automatically” option on.

Pending builds should now be handled correct for bundle projects when they are deactivated/activated and when the “Build Automatically” option is switched off/on.

Changelog in Version 0.2.6

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.5.

Deactivate after TimeOut and Manual Stop of a running Bundle
Fixed problem when deactivating a bundle after stopping the Start or Stop operation (endless operation)  of a bundle.

Changelog in Version 0.2.5

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.4.

Update Workspace
Update Workspace is added to the Bundle main menu. When executed all activated bundle projects in the workspace are updated independent of their pending status. There is a separate main menu entry to update bundle projects that are pending for update (built but not updated).

Bundle Commands and Update on Build
When running bundle commands from on of the bundle menus that require that projects are free from build errors  and there exist dirty editors in the workspace and the Update on Build option is off, the bundle commands are sometimes executed before projects are built. If the projects to build had build errors before building, a build error message is logged and the command is not executed. To execute the command the projects must first be saved and built. Projects are now always saved and built (if the Build Automatically option is on) before the commands are executed.

Changelog in Version 0.2.4

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.3.

Shutdown Workspace
At shutdown of the IDE, the log output of uninstalling or deactivating bundles is sent to the standard console. If the console was not used during the session, the bundle console page was not activated, and a NPE was generated when redirecting the output to the standard console at shutdown. This exception was introduced after rewriting the Bundle Console as a service.

Changelog in Version 0.2.3

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.2.

Bundle Commands and not Saved Projects
When running the different bundle commands except Update from the bundle menu some synchronization has been performed when there are not saved modified projects in the workspace. Modified files are are updated (if the Build Automatically and the Update on Build options are on) when other bundle commands are explicit run from one of the bundle menus. The synchronization determines the order of the bundle commands and which projects to assign to which bundle job. This reduces the total number of OSGi commands performed when running update along with the other  bundle commands.

Changelog in Version 0.2.2

Features, Fixes and Stability Enhancements since InPlace Activator 0.2.1.

Activating the Workspace
When the workspace is activated (workspace is activated when the first project in the workspace is activated), deactivated bundle projects are installed and activated bundle projects are started. Activating a  project force a build of the activated project.

In some cases the bundle projects were built and updated after they were started. The correct sequence is to build the bundle projects before deactivated bundle projects are installed and activated bundle projects are started. This sequence make the update job superfluous.

Update and Refresh in the Bundle View
It is now possible to update and refresh individual bundles in the Bundle View even if update and/or refresh are not pending. If update and/or refresh are pending this is shown as “Update pending” and “Refresh pending” in the Status field in the Bundle View.

The Allow UI Contributions Option
The allow UI contributions handler did not toggle its option value when
there were no open bundles contributing to the UI in the workspace.

Error when installing bundle from external source.
The State field in the Bundle View was not updated when installing projects being imported  or opened.

Changelog in Version 0.2.1

This is an early upgrade from version 0.2.0 due to an inconsistency when selecting a bundle in the Bundle View for Reset. Deactivated independent bundles of the bundle to Reset was resolved (should be in state installed) as part of the Reset job. This was not a critical error. No warnings were generated and the resolved state was updated correctly the next time the independent bundle(s) were activated, updated or when the workspace was Reset from the Bundle Main Menu.

Changelog in Version 0.2.0

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.9.

We are still in alpha, preparing an initial API which require some restructuring of the code.

It is now possible to use the Update Manager to upgrade to a newer version (e.g. from version 0.1.9 to 0.2.0).

Remove and add multiple Bundle Projects from the Workspace

Selecting multiple projects in  Package Explorer for removal (close or delete project) and addition (create, open, import) caused problems in situations where there were certain kinds of dependencies between workspace projects and external projects.

Activating Bundle Projects in an already Activated Workspace

Activating  a significant number of bundle projects in an already activated workspace would in some cases not update all the bundle projects. The projects to update was detected but you would see an “Update Pending” status on the not updated bundle projects in the Bundle View. You than had to update them manually from the Bundle View by selecting the Update button or menu entry.

Setting the “osgi.dev” Parameter

Setting the “osgi.dev” configuration parameter – as an alternative to the Default Output Folder setting (the default) – is now always optional.

An Host OSGi Console Command Provider for Bundle Projects

It is now possible to issue bundle projects commands from the OSGi console. A command  is recognized as a bundle project command when prepended with “ws”. E.g. the command: ws a *  activates (a) all (*) deactivated bundle projects in the workspace. See ws ? for help on the syntax.

 

Changelog in Version 0.1.9

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.8.

Default for Never ending Start and Stop operations

The default value is changed from automatic to manual termination. of never ending tasks. Automatic termination caused termination on time limit when debugging.

 

The Message View has been replaced by the Bundle Log

A new message view, which is an adaption of the Eclipse Log View, has been implemented. To not pollute the Log View info. messages and build errors preventing bundle operations are now only displayed in the Bundle Log View along with bundle history and other info. messages

Error handling

A more formal scheme for build errors preventing bundle operations is implemented. This implementation is backed up by an internal FSM for life cycle bundle operations.

Activated and Deactivated Workspace

In an activated workspace (the workspace is activated if one ore more bundles are at least resolved) activated bundles will always be in state resolved or active (not counting the starting/stopping states) while deactivated bundles in an activated workspace will be in state installed. In a deactivated workspace all bundles will be in state uninstalled.

Changelog in Version 0.1.8

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.7.

Never ending Start and Stop operations

If control does not return from user defined code in the bundle activator (Start and Stop methods) it is possible to either terminate an operation manually from one of the Bundle menus or use a timeout function. When the operation times out or is terminated from the bundle menu the thread running the bundle operation is terminated and an error message is issued. It is also possible to determine if the terminated bundle and all requiring bundles should be deactivated automatically on termination.

The options are available from the preference page.Default is to use the timeout function with deactivation on termination. The timeout value is configurable, but the default timeout is always the same as the “equinox.statechange.timeout” runtime option value (5 seconds if not set) which is used at startup of Eclipse. Also note that it is possible to terminate a never ending operation from the OSGi console as long as you know the identity (name or id) of the thread (See Bug 348993).

Preference Page

All available options are now collected in a standard preference page. The most frequently used options are also available from the bundle main menu.

Deactivate Bundles on Exit

An option to deactivate all activated bundles when Eclipse exits is now available.
The default is to not deactivate on exit.

Starting additional Bundles when Exceptions are thrown

If a bundle throws an uncaught exception in the start method (caught and rethrown by the Framework), requiring bundles – if any – are not started.

Support for Developer Build – Eclipse Luna 4.4 M6

There is a bug in Luna where multi status error messages sent to the log view are duplicated (See Bug 429372)

 

Changelog in Version 0.1.7

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.6

Canceling Bundle Jobs and Interrupts in Running Bundles

It is now possible to cancel bundle jobs (one or more bundle operations) from the bundle main menu and local menus. The menu entry to cancel a bundle job is visible and available while a bundle job is running. There is no guarantee that the job will be cancelled. (e.g. if control never returns from a Start or Stop thread)

If fatal errors occurs (exceptions of type VirtualMachineError) elsewhere in the workbench the interrupt flag is set if a bundle job and/or bundle thread is running giving both the bundle job and the user code (e.g. in the Start method) the possibility to return
(e.g if (Thread.currentThread().isInterrupted()) {return;}). Fatal errors in Start and Stop methods are catched by the Framework and forwarded to bundle jobs which reports them in the log view.

System Exit

The OSGi Framework invokes the Start and Stop methods (and others) in a separate thread. It is not possible to stop or kill a thread without shutting down the JVM (or in this case the Eclipse IDE). The only recommended approach is the use of interrupts on the thread. The need to shut down the JVM can happen when an infinite loop is constructed in the user code. In such cases, a System.Exit button is made available in the Bundle Console. When the IDE is restarted bundles are resolved but not started, offering the possibility to deactivate or correct the code in the affected bundle before starting it.

Refresh and the Bundle View

Until now it has been possible to refresh a bundle even if there was no need to. It is only useful to refresh a bundle if the bundle has more than one revision. When bundles are updated new wirings between the updated bundles and all directly and indirectly requiring bundles (requiring dependency closure) are created and the old ones are released or garbage collected by the refresh operation. It is now only possible to refresh bundles with more than one revision from the Bundle View. Number of revisions is displayed in parentheses after the Refresh Pending text in the status field in the Bundle View. Note that refreshing a bundle affects the requiring bundles with old wires to the bundle to refresh. Instead of refreshing one bundle at the time you can collectively refresh the set of bundles with more than one revision in one operation from the main menu.

It is still possible to refresh the workspace (all activated bundles) despite the number of revisions of the individual bundles. It the  Refresh on Update option is switched on, there should be no need to refresh manually from the bundle menus.

Add and remove Default Output Folder in Bundle-Classpath

Until now it has only been possible to manually add the default output folder to the Bundle-ClassPath in activated bundle projects. It is now possible to add and remove the default output folder manually in all bundle projects. If the Update Bundle-Classpath on Activate/Deactivate option is switched on there should be no need to add or remove the default output folder manually from the bundle menus.

Error when Closing Multiple Projects

When closing multiple dependent projects, an error (project not accessible) occurred when trying to read a dependent closed project(s). It is now possible to close multiple projects with dependencies.

Disablement of Menu Entries and Columns in Bundle View

In some special cases, bundle state dependent menu entries were not disabled or shown correctly.

The bundle Mode (Activated or Deactivated) and Transition (last transition performed on a bundle) are now displayed as hidden columns in the Bundle List Page View. To make the columns visible, drag the right border on the Status and the State column to the right when the cursor is shown as a divided cross.

Support for Developer Build – Eclipse Luna 4.4 M5

Have performed some testing on Luna. There is a known problem where error messages sent to the log view are duplicated. There are some promises that plug-ins that makes contributions to the workbench using extensions will update the UI dynamically in 4.4. M6.

Changelog in Version 0.1.6

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.5

Support for Developer Build – Eclipse Luna 4.4 M2

Relocation of an internal Eclipse interface in ver. 4.4 caused a break in the code. This is highly acceptable but an update was needed to be compatible with Eclipse 4.4.

Activating Bundles when other independent Bundles has an Update Pending status

Activating a bundle implies that bundles that provides capabilities to the bundle to activate are;

  • Implicit activated if in a deactivated state; and
  • Updated if already activated and has an Update Pending status.

In v0.1.5 all activated bundles with an Update Pending status were updated when a bundle was activated. Now only activated bundles with an Update Pending status that provide capabilities to the bundle to activate are updated.

The Reset command and dependent Bundles

Resetting an individual bundle first calculates the partial graph of the bundle to reset before uninstalling in contrast to earlier only calculating dependent bundles (providing and requiring) before uninstalling.

Manually update Bundle-ClassPath on Deactivated Projects

In earlier versions, it was only possible to add the default output location to the Bundle-ClassPath on activated projects. Note that if you have the “Update Bundle-ClassPath on activate/deactivate” switched on the default output folder is automatically added to the Bundle-ClassPath on activate and removed on deactivate.

Changelog in Version 0.1.5

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.4

Importing or Opening an activated Project that makes Contributions to the Workbench

Importing or opening an activated project that makes contributions to the workbench when the “Allow UI Contributions using Extensions” option is switched off, caused the bundle project to not be deactivated.

Pending Bundle Project Operations after Build

Which bundle operations to perform on a bundle depending on the current state of the bundle project combined with the resource delta information received from the build system after a build has been streamlined and optimized. Built projects with an empty resource delta (no change) was in some cases updated.

The Partial Dependencies Dialog

The dialog does not display the full length of leading text for all controls on Linux. The fix is further delayed until the next release.

Changelog in Version 0.1.4

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.3

Toggling the Build Automatically Option

Bundles built when the Build Automatically option was switched off were not updated in all cases when turned on again.  The pending bundles are now updated right after the build operation when switched on.

Duplicates involving Jar Bundles

When a workspace bundle with the same symbolic name (version may be different) as an external jar bundle is refreshed the framework suspend workspace bundles including the InPlace Activator during refresh. The bug is critical in the sense that suspended bundles are stopped during refresh. Workspace bundles with the same symbolic name as a jar bundle are now detected before any install and update operation and a duplicate error is issued.

The default in Eclipse is to refresh workspace bundles with the same symbolic name as jar bundles. This can be changed by setting the following property in the config.ini file
of the Eclipse installation: equinox.refresh.duplicate.bsn=false
If set to false no check against jar bundles will be performed. This will increase the performance when bundles are installed and updated. The default will be false in the upcoming Luna release.

Build pending

Build Pending and the Update Pending status was not reported correctly in all cases.

Circular References

Only one occurrence of cycles between bundles was reported when more than one cycle occurred in the workspace bundle graph.

Missing symbolic name caused a null pointer exception when sorting columns in the BundleView

If no symbolic name could be obtained (e.g. due to syntax error in the Bundle-SymbolicName manifest header) a null pointer was raised by the column sorter in the Bundle View.

The Bundle View

The Bundle View now displays the cached version of the bundle symbolic name in the Bundle View instead of the symbolic name obtained from the manifest file. In practice, when changing the symbolic name and version in the manifest it will be different from the cached name and version until the activated bundle is reinstalled or updated.

Bundles Contributing to the Workbench

When the Allow UI Contributions using Extensions option were toggled in the Kepler release the Bundle View failed to dynamically add and remove bundles with UI contributions from the bundle list.

The Partial Dependencies Dialog

The dialog does not display the full length of leading text for all controls on Linux. This will not be corrected before in the next release.

 

Changelog in Version 0.1.3

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.2

Bundle Runtime and Build State

To get an instant overview of the status of a bundle the status field has been extended in the Bundle View and now shows error indicators, life cycle state information and pending bundle operations. Examples are build problems, build is pending (a project has been modified and saved but not built yet), update is pending (the bundle has been built but not updated yet), refresh is pending (an updated bundle has more than one revision) and if there are any bundle runtime errors (Bundle Problems).

 Error and Console View

Bundle errors and warnings are now displayed in the Error View (and the Message View) instead of in the Bundle Console View.

The osgi.dev System Property

It is now possible to set the osgi.dev system property in the configuration.ini file to the default output folder (e.g. osgi.dev=bin) instead of using the Update Bundle-Classpath on Activate/Deactivate.  This was overridden by the Update Bundle-Classpath on Activate/Deactivate option in version 0.1.2.

It is also possible to reference a properties file as a parameter to the osgi.dev system property. The output folder of each activated bundle is then updated with the bundle symbolic name as the key and the output folder as the attribute in the specified property file (e.g. osgi.dev=file:c\:prj\dev.properties). This is more dynamic and useful when bundles have different output folders or the output folder of a bundle is changed during an Eclipse session.

 Source Bundles Included

The distribution contains three bundles. The bundles are divided into a central model bundle (no.javatime.inplace), an UI bundle (no.javatime.inplace.ui) and a utility bundle (no.javatime.util). The model bundle is documented in the source while the utility and UI bundles are only partly documented in this version.

 Bundle View

An exception occurred when resetting a perspective while the Bundle View was open.

Changelog in Version 0.1.2

Features, Fixes and Stability Enhancements since InPlace Activator 0.1.1

Toggle between Automatic and Manual Update of Bundles.

Bundles are by default updated automatic after they are built. There is now a new option called Update on Build which when switched off allows for manual update of bundles. Only bundles that have been built since last update are available for manual updates.

Update the Bundle-ClassPath on both Activate and Deactivate.

The defined output folder (not only the bin folder) is by default added to the Bundle-ClassPath when a bundle is activated and is in this version also removed when the bundle is deactivated.  This leaves the bundle project untouched when deactivated. The option may be turned off.

The documentation stated that fragment bundles were activated and resolved when the host was activated.

Fragment bundles are attached to and use the same class loader as their host bundle. The fragment bundle is part of the host bundle and has requirements on the host bundle. The host bundle is therefore activated implicit when the fragment is resolved.

Toggling between Lazy and Eager activation policy

When toggling a deactivated bundle (state INSTALLED) between lazy and eager in an activated workspace the new activation policy was not applied when the bundle project was activated.

Move operation

When moving a project the corresponding bundle was not always updated in an appropriate manner,

Workspace bundles were not uninstalled when an activated and duplicate bundle was deleted or closed after it was imported or opened in a deactivated workspace.

There was a problem when importing or opening a duplicate project that was activated before it was closed or exported and later deleted in a deactivated workspace. The bundle was always moved to  state UNINSTALLED while the rest of the bundles were moved to state INSTALLED instead of UNINSTALLED.

The bundle trace increased the time of bundle jobs more than proportional to the number of bundles in a job.

Due to frequent updates of the trace  messages in the message view for larger bundles jobs (25-30 bundles) the overall bundle job was taken unnecessary long time. The time is reduced by buffering and flushing trace messages. A workaround in version 0.1.1 was to turn off the trace switches in the Message View when running larger bundles jobs.

Changelog in Version 0.1.1

Fixes and Stability Enhancements since InPlace Activator 0.1.0

The plug-in hangs at start up of Eclipse for certains build errors in the manifest file of bundles to activate.

When starting Eclipse and there are bundles with errors in their manifest file the InPlace Activator can freeze. This was a critical error. If this happens (in v0.1.0) a workaround is to edit and correct the errors in the manifest file with the build errors before starting Eclipse.

When resetting a bundle or a subset of bundles other deactivated bundles may be resolved.

Deactivated bundles now stays in either state UNININSTALLED or INSTALLED when resetting bundles.

Added number of revisions to the Bundle List View

When updating bundles with the Refresh on Update switch off one get a clearer view of bundles with multiple revisions.

Improved build error messages when activating, updating, resetting an refreshing bundles.

 

Leave a Reply

Your email address will not be published. Required fields are marked *