You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2012/10/02 11:00:15 UTC
svn commit: r1392797 - in /sling/trunk/installer:
console/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java
core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java
Author: cziegeler
Date: Tue Oct 2 09:00:15 2012
New Revision: 1392797
URL: http://svn.apache.org/viewvc?rev=1392797&view=rev
Log:
SLING-2612 : Add support for excluding artifacts for installation
Modified:
sling/trunk/installer/console/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java
Modified: sling/trunk/installer/console/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/console/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java?rev=1392797&r1=1392796&r2=1392797&view=diff
==============================================================================
--- sling/trunk/installer/console/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java (original)
+++ sling/trunk/installer/console/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java Tue Oct 2 09:00:15 2012
@@ -91,15 +91,17 @@ public class OsgiInstallerWebConsolePlug
}
private String getState(final Resource rsrc) {
+ String stateInfo = rsrc.getState().toString();
// INSTALLED state has some variants
if ( rsrc.getState() == ResourceState.INSTALLED) {
- if(rsrc.getAttribute(TaskResource.ATTR_INSTALL_EXCLUDED) != null ) {
- return "EXCLUDED";
- } else if(rsrc.getAttribute(TaskResource.ATTR_INSTALL_INFO) != null) {
- return "INSTALLED(*)";
+ if (rsrc.getAttribute(TaskResource.ATTR_INSTALL_EXCLUDED) != null ) {
+ stateInfo = "EXCLUDED";
+ }
+ if (rsrc.getAttribute(TaskResource.ATTR_INSTALL_INFO) != null) {
+ stateInfo = stateInfo + "(*)";
}
}
- return rsrc.getState().toString();
+ return stateInfo;
}
private String getInfo(final RegisteredResource rsrc) {
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java?rev=1392797&r1=1392796&r2=1392797&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java Tue Oct 2 09:00:15 2012
@@ -75,7 +75,7 @@ public class EntityResourceList implemen
* @throws IOException
*/
private void writeObject(final java.io.ObjectOutputStream out)
- throws IOException {
+ throws IOException {
out.writeInt(VERSION);
out.writeInt(resources.size());
for(final RegisteredResource rr : this.resources) {
@@ -91,7 +91,7 @@ public class EntityResourceList implemen
* - deserialize each entry in the resources list
*/
private void readObject(final java.io.ObjectInputStream in)
- throws IOException, ClassNotFoundException {
+ throws IOException, ClassNotFoundException {
final int version = in.readInt();
if ( version < 1 || version > VERSION ) {
throw new ClassNotFoundException(this.getClass().getName());
@@ -122,7 +122,7 @@ public class EntityResourceList implemen
if ( !resources.isEmpty() ) {
final TaskResource r = resources.first();
if ( r.getState() == ResourceState.INSTALL
- || r.getState() == ResourceState.UNINSTALL ) {
+ || r.getState() == ResourceState.UNINSTALL ) {
return r;
}
}
@@ -199,7 +199,7 @@ public class EntityResourceList implemen
final TaskResource toActivate = getActiveResource();
if ( toActivate != null ) {
if ( toActivate.getState() == ResourceState.UNINSTALL
- && this.resources.size() > 1 ) {
+ && this.resources.size() > 1 ) {
final TaskResource second = this.getNextActiveResource();
if ( state == ResourceState.UNINSTALLED ) {
@@ -232,6 +232,22 @@ public class EntityResourceList implemen
}
((RegisteredResourceImpl)toActivate).setState(state);
+
+ if ( state != ResourceState.INSTALLED ) {
+ // make sure to remove all install info attributes if the resource is not
+ // installed anymore
+ toActivate.setAttribute(TaskResource.ATTR_INSTALL_EXCLUDED, null);
+ toActivate.setAttribute(TaskResource.ATTR_INSTALL_INFO, null);
+ }
+ // remove install info attributes on all other resources in the group
+ final Iterator<TaskResource> tri = this.resources.iterator();
+ tri.next(); // skip first
+ while ( tri.hasNext() ) {
+ final TaskResource rsrc = tri.next();
+ rsrc.setAttribute(TaskResource.ATTR_INSTALL_EXCLUDED, null);
+ rsrc.setAttribute(TaskResource.ATTR_INSTALL_INFO, null);
+ }
+
this.listener.onEvent(new InstallationEvent() {
public TYPE getType() {