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 2011/01/12 16:39:02 UTC
svn commit: r1058196 - in /sling/trunk/installer/core/src:
main/java/org/apache/sling/installer/api/tasks/
main/java/org/apache/sling/installer/core/impl/
main/java/org/apache/sling/installer/core/impl/config/
main/java/org/apache/sling/installer/core/...
Author: cziegeler
Date: Wed Jan 12 15:39:01 2011
New Revision: 1058196
URL: http://svn.apache.org/viewvc?rev=1058196&view=rev
Log:
SLING-1922 : Allow resource transformer for processing installable resources
Added:
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/ResourceState.java (with props)
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TaskResource.java (with props)
Modified:
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/InstallTask.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResource.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResourceGroup.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TransformationResult.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/DefaultTransformer.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/EntityResourceList.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/RegisteredResourceImpl.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigInstallTask.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigRemoveTask.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigTaskCreator.java
sling/trunk/installer/core/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/tasks/BundleRemoveTask.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleStartTask.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreator.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleUpdateTask.java
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/ChangeStateTask.java
sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/MockBundleResource.java
sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceComparatorTest.java
sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceTest.java
sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/TaskOrderingTest.java
sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreatorTest.java
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/InstallTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/InstallTask.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/InstallTask.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/InstallTask.java Wed Jan 12 15:39:01 2011
@@ -39,7 +39,7 @@ public abstract class InstallTask implem
/**
* Return the corresponding resource - depending on the task this might be null.
*/
- public RegisteredResource getResource() {
+ public TaskResource getResource() {
if ( this.resourceGroup != null ) {
return this.resourceGroup.getActiveResource();
}
@@ -67,7 +67,7 @@ public abstract class InstallTask implem
return getSortKey().compareTo(o.getSortKey());
}
- public void setFinishedState(final RegisteredResource.State state) {
+ public void setFinishedState(final ResourceState state) {
this.resourceGroup.setFinishState(state);
}
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResource.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResource.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResource.java Wed Jan 12 15:39:01 2011
@@ -20,9 +20,7 @@ package org.apache.sling.installer.api.t
import java.io.IOException;
import java.io.InputStream;
-import java.io.Serializable;
import java.util.Dictionary;
-import java.util.Map;
import org.apache.sling.installer.api.OsgiInstaller;
@@ -31,15 +29,7 @@ import org.apache.sling.installer.api.Os
* it locally to avoid holding up to classes or data from our
* clients, in case those disappear while we're installing stuff.
*/
-public interface RegisteredResource extends Serializable, Comparable<RegisteredResource> {
-
- enum State {
- INSTALL,
- UNINSTALL,
- INSTALLED,
- UNINSTALLED,
- IGNORED
- }
+public interface RegisteredResource {
/** Return the scheme from where the artifact is orginated. */
String getScheme();
@@ -89,38 +79,9 @@ public interface RegisteredResource exte
*/
int getPriority();
- /**
- * Attributes include the bundle symbolic name, bundle version, etc.
- */
- Map<String, Object> getAttributes();
-
/** Return the identifier of the OSGi "entity" that this resource
* represents, for example "bundle:SID" where SID is the bundle's
* symbolic ID, or "config:PID" where PID is config's PID.
*/
String getEntityId();
-
- /**
- * Get the current state of the resource.
- */
- State getState();
-
- /**
- * Set the new state of teh resource.
- */
- void setState(final State s);
-
- /**
- * Get the value of a temporary attribute.
- * @param key The name of the attribute
- * @return The value of the attribute or <code>null</code>
- */
- Object getTemporaryAttribute(String key);
-
- /**
- * Set the value of a temporary attribute.
- * @param key The name of the attribute
- * @param value The attribute value or <code>null</code> to remove it.
- */
- void setTemporaryAttributee(String key, Object value);
}
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResourceGroup.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResourceGroup.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResourceGroup.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/RegisteredResourceGroup.java Wed Jan 12 15:39:01 2011
@@ -29,7 +29,7 @@ public interface RegisteredResourceGroup
/**
* Return the first resource if it either needs to be installed or uninstalled.
*/
- RegisteredResource getActiveResource();
+ TaskResource getActiveResource();
/**
@@ -37,5 +37,5 @@ public interface RegisteredResourceGroup
* If this resource has been uninstalled, check the next in the list if it needs to
* be reactivated.
*/
- void setFinishState(RegisteredResource.State state);
+ void setFinishState(ResourceState state);
}
Added: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/ResourceState.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/ResourceState.java?rev=1058196&view=auto
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/ResourceState.java (added)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/ResourceState.java Wed Jan 12 15:39:01 2011
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.installer.api.tasks;
+
+public enum ResourceState {
+
+ INSTALL,
+ UNINSTALL,
+ INSTALLED,
+ UNINSTALLED,
+ IGNORED
+}
Propchange: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/ResourceState.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/ResourceState.java
------------------------------------------------------------------------------
svn:keywords = author date id revision rev url
Propchange: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/ResourceState.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TaskResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TaskResource.java?rev=1058196&view=auto
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TaskResource.java (added)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TaskResource.java Wed Jan 12 15:39:01 2011
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.installer.api.tasks;
+
+import java.util.Map;
+
+/** A resource that's been registered in the OSGi controller.
+ * Data can be either an InputStream or a Dictionary, and we store
+ * it locally to avoid holding up to classes or data from our
+ * clients, in case those disappear while we're installing stuff.
+ */
+public interface TaskResource extends RegisteredResource {
+
+ /**
+ * Attributes include the bundle symbolic name, bundle version, etc.
+ */
+ Map<String, Object> getAttributes();
+
+ /**
+ * Get the current state of the resource.
+ */
+ ResourceState getState();
+
+ /**
+ * Set the new state of teh resource.
+ */
+ void setState(final ResourceState s);
+
+ /**
+ * Get the value of a temporary attribute.
+ * @param key The name of the attribute
+ * @return The value of the attribute or <code>null</code>
+ */
+ Object getTemporaryAttribute(String key);
+
+ /**
+ * Set the value of a temporary attribute.
+ * @param key The name of the attribute
+ * @param value The attribute value or <code>null</code> to remove it.
+ */
+ void setTemporaryAttributee(String key, Object value);
+}
Propchange: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TaskResource.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TaskResource.java
------------------------------------------------------------------------------
svn:keywords = author date id revision rev url
Propchange: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TaskResource.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TransformationResult.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TransformationResult.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TransformationResult.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/api/tasks/TransformationResult.java Wed Jan 12 15:39:01 2011
@@ -19,6 +19,7 @@
package org.apache.sling.installer.api.tasks;
import java.io.InputStream;
+import java.util.Map;
/**
* A result of a {@link ResourceTransformer}.
@@ -34,6 +35,9 @@ public class TransformationResult {
/** Unique id. */
private String id;
+ /** Attributes */
+ private Map<String, Object> attributes;
+
/**
* Get the new resource type
* @return New resource type or <code>null</code>.
@@ -81,4 +85,18 @@ public class TransformationResult {
public void setInputStream(final InputStream inputStream) {
this.inputStream = inputStream;
}
+
+ /**
+ * Attributes include the bundle symbolic name, bundle version, etc.
+ */
+ public Map<String, Object> getAttributes() {
+ return this.attributes;
+ }
+
+ /**
+ * Set the new attributes.
+ */
+ public void setAttributes(final Map<String, Object> attr) {
+ this.attributes = attr;
+ }
}
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/DefaultTransformer.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/DefaultTransformer.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/DefaultTransformer.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/DefaultTransformer.java Wed Jan 12 15:39:01 2011
@@ -20,6 +20,8 @@ package org.apache.sling.installer.core.
import java.io.IOException;
import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
import java.util.jar.JarInputStream;
import java.util.jar.Manifest;
@@ -85,12 +87,14 @@ public class DefaultTransformer
if (sn != null) {
final String v = m.getMainAttributes().getValue(Constants.BUNDLE_VERSION);
if (v != null) {
- resource.getAttributes().put(Constants.BUNDLE_SYMBOLICNAME, sn);
- resource.getAttributes().put(Constants.BUNDLE_VERSION, v.toString());
+ final Map<String, Object> attr = new HashMap<String, Object>();
+ attr.put(Constants.BUNDLE_SYMBOLICNAME, sn);
+ attr.put(Constants.BUNDLE_VERSION, v.toString());
final TransformationResult tr = new TransformationResult();
tr.setId(sn);
tr.setResourceType(InstallableResource.TYPE_BUNDLE);
+ tr.setAttributes(attr);
return new TransformationResult[] {tr};
}
@@ -135,13 +139,15 @@ public class DefaultTransformer
configPid = pid;
}
- resource.getAttributes().put(Constants.SERVICE_PID, configPid);
+ final Map<String, Object> attr = new HashMap<String, Object>();
+
+ attr.put(Constants.SERVICE_PID, configPid);
// Add pseudo-properties
resource.getDictionary().put(ConfigTaskCreator.CONFIG_PATH_KEY, resource.getURL());
// Factory?
if (factoryPid != null) {
- resource.getAttributes().put(ConfigurationAdmin.SERVICE_FACTORYPID, factoryPid);
+ attr.put(ConfigurationAdmin.SERVICE_FACTORYPID, factoryPid);
resource.getDictionary().put(ConfigTaskCreator.ALIAS_KEY, configPid);
}
@@ -149,6 +155,7 @@ public class DefaultTransformer
final String id = (factoryPid == null ? "" : factoryPid + ".") + configPid;
tr.setId(id);
tr.setResourceType(InstallableResource.TYPE_CONFIG);
+ tr.setAttributes(attr);
return new TransformationResult[] {tr};
}
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=1058196&r1=1058195&r2=1058196&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 Wed Jan 12 15:39:01 2011
@@ -29,6 +29,8 @@ import java.util.TreeSet;
import org.apache.sling.installer.api.tasks.RegisteredResource;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,7 +50,7 @@ public class EntityResourceList implemen
private static final Logger LOGGER = LoggerFactory.getLogger(EntityResourceList.class);
/** The set of registered resources for this entity. */
- private final SortedSet<RegisteredResource> resources = new TreeSet<RegisteredResource>();
+ private final SortedSet<TaskResource> resources = new TreeSet<TaskResource>();
/**
* Serialize the object
@@ -80,7 +82,7 @@ public class EntityResourceList implemen
Util.setField(this, "resources", new TreeSet<RegisteredResource>());
final int size = in.readInt();
for(int i=0; i < size; i++) {
- final RegisteredResource rr = (RegisteredResource)in.readObject();
+ final TaskResource rr = (TaskResource)in.readObject();
this.resources.add(rr);
}
}
@@ -93,11 +95,11 @@ public class EntityResourceList implemen
/**
* Return the first resource if it either needs to be installed or uninstalled.
*/
- public RegisteredResource getActiveResource() {
+ public TaskResource getActiveResource() {
if ( !resources.isEmpty() ) {
- final RegisteredResource r = resources.first();
- if ( r.getState() == RegisteredResource.State.INSTALL
- || r.getState() == RegisteredResource.State.UNINSTALL ) {
+ final TaskResource r = resources.first();
+ if ( r.getState() == ResourceState.INSTALL
+ || r.getState() == ResourceState.UNINSTALL ) {
return r;
}
}
@@ -109,33 +111,33 @@ public class EntityResourceList implemen
* If this resource has been uninstalled, check the next in the list if it needs to
* be reactivated.
*/
- public void setFinishState(RegisteredResource.State state) {
- final RegisteredResource toActivate = getActiveResource();
+ public void setFinishState(ResourceState state) {
+ final TaskResource toActivate = getActiveResource();
if ( toActivate != null ) {
- if ( toActivate.getState() == RegisteredResource.State.UNINSTALL
+ if ( toActivate.getState() == ResourceState.UNINSTALL
&& this.resources.size() > 1 ) {
// to get the second item in the set we have to use an iterator!
- final Iterator<RegisteredResource> i = this.resources.iterator();
+ final Iterator<TaskResource> i = this.resources.iterator();
i.next(); // skip first
- final RegisteredResource second = i.next();
- if ( state == RegisteredResource.State.UNINSTALLED ) {
+ final TaskResource second = i.next();
+ if ( state == ResourceState.UNINSTALLED ) {
// first resource got uninstalled, go back to second
- if (second.getState() == RegisteredResource.State.IGNORED || second.getState() == RegisteredResource.State.INSTALLED) {
+ if (second.getState() == ResourceState.IGNORED || second.getState() == ResourceState.INSTALLED) {
LOGGER.debug("Reactivating for next cycle: {}", second);
- second.setState(RegisteredResource.State.INSTALL);
+ second.setState(ResourceState.INSTALL);
}
} else {
// don't install as the first did not get uninstalled
- if ( second.getState() == RegisteredResource.State.INSTALL ) {
- second.setState(RegisteredResource.State.IGNORED);
+ if ( second.getState() == ResourceState.INSTALL ) {
+ second.setState(ResourceState.IGNORED);
}
// and now set resource to uninstalled
- state = RegisteredResource.State.UNINSTALLED;
+ state = ResourceState.UNINSTALLED;
}
}
toActivate.setState(state);
- if ( state == RegisteredResource.State.UNINSTALLED ) {
+ if ( state == ResourceState.UNINSTALLED ) {
this.cleanup(toActivate);
}
}
@@ -147,16 +149,16 @@ public class EntityResourceList implemen
}
}
- public Collection<RegisteredResource> getResources() {
+ public Collection<TaskResource> getResources() {
return resources;
}
- public void addOrUpdate(final RegisteredResource r) {
+ public void addOrUpdate(final TaskResource r) {
LOGGER.debug("Adding new resource: {}", r);
// If an object with same url is already present, replace with the
// new one which might have different attributes
boolean first = true;
- for(final RegisteredResource rr : resources) {
+ for(final TaskResource rr : resources) {
if ( rr.getURL().equals(r.getURL()) ) {
LOGGER.debug("Cleanup obsolete resource: {}", rr);
this.cleanup(rr);
@@ -172,15 +174,15 @@ public class EntityResourceList implemen
}
public void remove(final String url) {
- final Iterator<RegisteredResource> i = resources.iterator();
+ final Iterator<TaskResource> i = resources.iterator();
boolean first = true;
while ( i.hasNext() ) {
- final RegisteredResource r = i.next();
+ final TaskResource r = i.next();
if ( r.getURL().equals(url) ) {
- if ( first && (r.getState() == RegisteredResource.State.INSTALLED
- || r.getState() == RegisteredResource.State.INSTALL)) {
+ if ( first && (r.getState() == ResourceState.INSTALLED
+ || r.getState() == ResourceState.INSTALL)) {
LOGGER.debug("Marking for uninstalling: {}", r);
- r.setState(RegisteredResource.State.UNINSTALL);
+ r.setState(ResourceState.UNINSTALL);
} else {
LOGGER.debug("Removing unused: {}", r);
i.remove();
@@ -191,7 +193,7 @@ public class EntityResourceList implemen
}
}
- public void remove(final RegisteredResource r) {
+ public void remove(final TaskResource r) {
if ( resources.remove(r) ) {
LOGGER.debug("Removing unused: {}", r);
this.cleanup(r);
@@ -203,9 +205,9 @@ public class EntityResourceList implemen
*/
public boolean compact() {
boolean changed = false;
- final List<RegisteredResource> toDelete = new ArrayList<RegisteredResource>();
- for(final RegisteredResource r : resources) {
- if ( r.getState() == RegisteredResource.State.UNINSTALLED ) {
+ final List<TaskResource> toDelete = new ArrayList<TaskResource>();
+ for(final TaskResource r : resources) {
+ if ( r.getState() == ResourceState.UNINSTALLED ) {
toDelete.add(r);
}
}
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/OsgiInstallerImpl.java Wed Jan 12 15:39:01 2011
@@ -39,7 +39,9 @@ import org.apache.sling.installer.api.ta
import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.RegisteredResource;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
import org.apache.sling.installer.api.tasks.ResourceTransformer;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.api.tasks.TransformationResult;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleEvent;
@@ -342,9 +344,9 @@ public class OsgiInstallerImpl
for(final String entityId : this.persistentList.getEntityIds()) {
final EntityResourceList group = this.persistentList.getEntityResourceList(entityId);
- final List<RegisteredResource> toRemove = new ArrayList<RegisteredResource>();
+ final List<TaskResource> toRemove = new ArrayList<TaskResource>();
boolean first = true;
- for(final RegisteredResource r : group.getResources()) {
+ for(final TaskResource r : group.getResources()) {
if ( r.getScheme().equals(scheme) ) {
logger.debug("Checking {}", r);
// search if we have a new entry with the same url
@@ -358,9 +360,9 @@ public class OsgiInstallerImpl
}
if ( !found) {
logger.debug("Resource {} seems to be removed.", r);
- if ( first && (r.getState() == RegisteredResource.State.INSTALLED
- || r.getState() == RegisteredResource.State.INSTALL) ) {
- r.setState(RegisteredResource.State.UNINSTALL);
+ if ( first && (r.getState() == ResourceState.INSTALLED
+ || r.getState() == ResourceState.INSTALL) ) {
+ r.setState(ResourceState.UNINSTALL);
} else {
toRemove.add(r);
}
@@ -368,7 +370,7 @@ public class OsgiInstallerImpl
}
first = false;
}
- for(final RegisteredResource rr : toRemove) {
+ for(final TaskResource rr : toRemove) {
this.persistentList.remove(rr);
}
}
@@ -546,7 +548,7 @@ public class OsgiInstallerImpl
if ( services != null && services.length > 0 ) {
// Walk the list of unknown resources and invoke all transformers
int index = 0;
- final List<RegisteredResource> unknownList = this.persistentList.getUnknownResources();
+ final List<RegisteredResource> unknownList = this.persistentList.getUntransformedResources();
while ( index < unknownList.size() ) {
final RegisteredResource resource = unknownList.get(index);
@@ -556,8 +558,7 @@ public class OsgiInstallerImpl
final TransformationResult[] result = transformer.transform(resource);
if ( result != null && result.length > 0 ) {
- // TODO: for now we support just one result
- this.persistentList.transform(resource, result[0]);
+ this.persistentList.transform(resource, result);
changed = true;
index--;
break;
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/PersistentResourceList.java Wed Jan 12 15:39:01 2011
@@ -35,6 +35,7 @@ import java.util.Map;
import org.apache.sling.installer.api.InstallableResource;
import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.api.tasks.TransformationResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -62,8 +63,8 @@ public class PersistentResourceList {
/** The persistence file. */
private final File dataFile;
- /** All unknown resources. */
- private final List<RegisteredResource> unknownResources;
+ /** All untransformed resources. */
+ private final List<RegisteredResource> untransformedResources;
@SuppressWarnings("unchecked")
public PersistentResourceList(final File dataFile) {
@@ -99,7 +100,7 @@ public class PersistentResourceList {
}
}
data = restoredData != null ? restoredData : new HashMap<String, EntityResourceList>();
- this.unknownResources = unknownList != null ? unknownList : new ArrayList<RegisteredResource>();
+ this.untransformedResources = unknownList != null ? unknownList : new ArrayList<RegisteredResource>();
this.updateCache();
}
@@ -130,7 +131,7 @@ public class PersistentResourceList {
try {
oos.writeInt(VERSION);
oos.writeObject(data);
- oos.writeObject(unknownResources);
+ oos.writeObject(untransformedResources);
logger.debug("Persisted resource list.");
} finally {
oos.close();
@@ -167,7 +168,7 @@ public class PersistentResourceList {
return;
}
try {
- final RegisteredResource registeredResource = RegisteredResourceImpl.create(input);
+ final TaskResource registeredResource = RegisteredResourceImpl.create(input);
this.checkInstallable(registeredResource);
} catch (final IOException ioe) {
logger.warn("Ignoring resource. Error during processing of " + input.getURL(), ioe);
@@ -178,7 +179,7 @@ public class PersistentResourceList {
* Check if the provided installable resource is already installable (has a
* known resource type)
*/
- private void checkInstallable(final RegisteredResource input) {
+ private void checkInstallable(final TaskResource input) {
if ( !InstallableResource.TYPE_FILE.equals(input.getType())
&& !InstallableResource.TYPE_PROPERTIES.equals(input.getType()) ) {
@@ -190,15 +191,15 @@ public class PersistentResourceList {
t.addOrUpdate(input);
} else {
- this.unknownResources.add(input);
+ this.untransformedResources.add(input);
}
}
/**
- * Get the list of unknown resources = resources without resource type
+ * Get the list of untransformed resources = resources without resource type
*/
- public List<RegisteredResource> getUnknownResources() {
- return this.unknownResources;
+ public List<RegisteredResource> getUntransformedResources() {
+ return this.untransformedResources;
}
/**
@@ -214,13 +215,16 @@ public class PersistentResourceList {
/**
* Remove a resource.
*/
- public void remove(final RegisteredResource r) {
+ public void remove(final TaskResource r) {
final EntityResourceList group = this.data.get(r.getEntityId());
if ( group != null ) {
group.remove(r);
}
}
+ /**
+ * Get the resource group for an entity id.
+ */
public EntityResourceList getEntityResourceList(final String entityId) {
return this.data.get(entityId);
}
@@ -247,12 +251,14 @@ public class PersistentResourceList {
* Transform an unknown resource to a registered one
*/
public void transform(final RegisteredResource resource,
- final TransformationResult tr) {
+ final TransformationResult[] result) {
// remove resource from unknown list
- this.unknownResources.remove(resource);
+ this.untransformedResources.remove(resource);
try {
- ((RegisteredResourceImpl)resource).update(tr);
- this.checkInstallable(resource);
+ for(int i=0; i<result.length; i++) {
+ final TaskResource clone = ((RegisteredResourceImpl)resource).clone(result[i]);
+ this.checkInstallable(clone);
+ }
} catch (final IOException ioe) {
logger.warn("Ignoring resource. Error during processing of " + resource, ioe);
}
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/RegisteredResourceImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/RegisteredResourceImpl.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/RegisteredResourceImpl.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/RegisteredResourceImpl.java Wed Jan 12 15:39:01 2011
@@ -29,7 +29,8 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.sling.installer.api.InstallableResource;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.ResourceState;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.api.tasks.TransformationResult;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
@@ -39,7 +40,7 @@ import org.osgi.framework.Version;
* Implementation of the registered resource
*/
public class RegisteredResourceImpl
- implements RegisteredResource, Serializable {
+ implements TaskResource, Serializable, Comparable<RegisteredResourceImpl> {
/** Use own serial version ID as we control serialization. */
private static final long serialVersionUID = 6L;
@@ -72,7 +73,7 @@ public class RegisteredResourceImpl
private String resourceType;
/** The current state of this resource. */
- private State state = State.INSTALL;
+ private ResourceState state = ResourceState.INSTALL;
/** Temporary attributes. */
private transient Map<String, Object> temporaryAttributes;
@@ -98,7 +99,7 @@ public class RegisteredResourceImpl
out.writeObject(dataFile);
out.writeObject(resourceType);
out.writeInt(priority);
- out.writeObject(state);
+ out.writeObject(state.toString());
}
/**
@@ -121,7 +122,7 @@ public class RegisteredResourceImpl
Util.setField(this, "dataFile", in.readObject());
Util.setField(this, "resourceType", in.readObject());
Util.setField(this, "priority", in.readInt());
- this.state = (State) in.readObject();
+ this.state = ResourceState.valueOf((String) in.readObject());
}
/**
@@ -236,7 +237,7 @@ public class RegisteredResourceImpl
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#getAttributes()
+ * @see org.apache.sling.installer.api.tasks.TaskResource#getAttributes()
*/
public Map<String, Object> getAttributes() {
return attributes;
@@ -257,16 +258,16 @@ public class RegisteredResourceImpl
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#getState()
+ * @see org.apache.sling.installer.api.tasks.TaskResource#getState()
*/
- public State getState() {
+ public ResourceState getState() {
return this.state;
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#setState(org.apache.sling.installer.api.tasks.RegisteredResource.State)
+ * @see org.apache.sling.installer.api.tasks.TaskResource#setState(org.apache.sling.installer.api.tasks.ResourceState)
*/
- public void setState(State s) {
+ public void setState(ResourceState s) {
this.state = s;
}
@@ -277,13 +278,13 @@ public class RegisteredResourceImpl
if ( obj == this ) {
return true;
}
- if ( ! (obj instanceof RegisteredResource) ) {
+ if ( ! (obj instanceof RegisteredResourceImpl) ) {
return false;
}
if ( this.entity == null ) {
- return this.getURL().equals(((RegisteredResource)obj).getURL());
+ return super.equals(obj);
}
- return compareTo((RegisteredResource)obj) == 0;
+ return compareTo((RegisteredResourceImpl)obj) == 0;
}
/**
@@ -296,7 +297,7 @@ public class RegisteredResourceImpl
/**
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
- public int compareTo(final RegisteredResource b) {
+ public int compareTo(final RegisteredResourceImpl b) {
return compare(this, b);
}
@@ -306,7 +307,7 @@ public class RegisteredResourceImpl
* together with an entity identifier for the to be installed resource like
* the symbolic name of a bundle, the pid for a configuration etc.
*/
- public static int compare(final RegisteredResource a, final RegisteredResource b) {
+ public static int compare(final TaskResource a, final TaskResource b) {
// check entity id first
int result = a.getEntityId().compareTo(b.getEntityId());
if ( result == 0 ) {
@@ -336,7 +337,7 @@ public class RegisteredResourceImpl
* - if the version is a snapshot version, the serial number and the digest are used
* in addition
*/
- private static int compareBundles(final RegisteredResource a, final RegisteredResource b) {
+ private static int compareBundles(final TaskResource a, final TaskResource b) {
boolean isSnapshot = false;
int result = 0;
@@ -360,7 +361,7 @@ public class RegisteredResourceImpl
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#getTemporaryAttribute(java.lang.String)
+ * @see org.apache.sling.installer.api.tasks.TaskResource#getTemporaryAttribute(java.lang.String)
*/
public Object getTemporaryAttribute(final String key) {
if ( this.temporaryAttributes != null ) {
@@ -370,7 +371,7 @@ public class RegisteredResourceImpl
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#setTemporaryAttributee(java.lang.String, java.lang.Object)
+ * @see org.apache.sling.installer.api.tasks.TaskResource#setTemporaryAttributee(java.lang.String, java.lang.Object)
*/
public void setTemporaryAttributee(final String key, final Object value) {
if ( this.temporaryAttributes == null ) {
@@ -388,7 +389,7 @@ public class RegisteredResourceImpl
* Currently only the input stream and resource type is updated.
* @param tr Transformation result
*/
- public void update(final TransformationResult tr)
+ private void update(final TransformationResult tr)
throws IOException {
final InputStream is = tr.getInputStream();
if ( tr.getResourceType() != null ) {
@@ -419,5 +420,27 @@ public class RegisteredResourceImpl
} catch (final IOException ignore) {}
}
}
+ if ( tr.getAttributes() != null ) {
+ this.attributes.putAll(tr.getAttributes());
+ }
+ }
+
+ /**
+ * Create a new resource with updated information
+ */
+ public TaskResource clone(TransformationResult transformationResult)
+ throws IOException {
+ final int schemePos = this.url.indexOf(':');
+ final RegisteredResourceImpl rr = new RegisteredResourceImpl(
+ this.url.substring(schemePos + 1),
+ this.dataFile,
+ this.dictionary,
+ this.resourceType,
+ this.digest,
+ this.priority,
+ this.urlScheme);
+ rr.update(transformationResult);
+
+ return rr;
}
}
\ No newline at end of file
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigInstallTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigInstallTask.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigInstallTask.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigInstallTask.java Wed Jan 12 15:39:01 2011
@@ -19,8 +19,8 @@
package org.apache.sling.installer.core.impl.config;
import org.apache.sling.installer.api.tasks.InstallationContext;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.util.tracker.ServiceTracker;
@@ -72,12 +72,12 @@ public class ConfigInstallTask extends A
}
config.update(getResource().getDictionary());
ctx.log("Installed configuration {} from resource {}", config.getPid(), getResource());
- this.setFinishedState(RegisteredResource.State.INSTALLED);
+ this.setFinishedState(ResourceState.INSTALLED);
this.getLogger().debug("Configuration " + config.getPid()
+ " " + (created ? "created" : "updated")
+ " from " + getResource());
} else {
- this.setFinishedState(RegisteredResource.State.IGNORED);
+ this.setFinishedState(ResourceState.IGNORED);
}
} catch (Exception e) {
this.getLogger().debug("Exception during installation of config " + this.getResource() + " : " + e.getMessage() + ". Retrying later.", e);
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigRemoveTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigRemoveTask.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigRemoveTask.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigRemoveTask.java Wed Jan 12 15:39:01 2011
@@ -19,8 +19,8 @@
package org.apache.sling.installer.core.impl.config;
import org.apache.sling.installer.api.tasks.InstallationContext;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.util.tracker.ServiceTracker;
@@ -55,19 +55,19 @@ public class ConfigRemoveTask extends Ab
final Configuration cfg = getConfiguration(ca, false);
if (cfg == null) {
this.getLogger().debug("Cannot delete config , pid={} not found, ignored ({})", getCompositePid(), getResource());
- this.setFinishedState(RegisteredResource.State.IGNORED);
+ this.setFinishedState(ResourceState.IGNORED);
} else {
if ( cfg.getProperties().get(ConfigTaskCreator.CONFIG_PATH_KEY) == null ) {
this.getLogger().debug("Configuration has not been installed by this resource. Not removing!");
- this.setFinishedState(RegisteredResource.State.IGNORED);
+ this.setFinishedState(ResourceState.IGNORED);
} else if ( !isSameData(cfg.getProperties(), this.getResource().getDictionary()) ) {
this.getLogger().debug("Configuration has changed after is has been installed. Not removing!");
- this.setFinishedState(RegisteredResource.State.IGNORED);
+ this.setFinishedState(ResourceState.IGNORED);
} else {
this.getLogger().debug("Deleting config {} ({})", getCompositePid(), getResource());
cfg.delete();
ctx.log("Deleted configuration {} from resource {}", getCompositePid(), getResource());
- this.setFinishedState(RegisteredResource.State.UNINSTALLED);
+ this.setFinishedState(ResourceState.UNINSTALLED);
}
}
} catch (Exception e) {
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigTaskCreator.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigTaskCreator.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigTaskCreator.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/config/ConfigTaskCreator.java Wed Jan 12 15:39:01 2011
@@ -21,8 +21,9 @@ package org.apache.sling.installer.core.
import org.apache.sling.installer.api.InstallableResource;
import org.apache.sling.installer.api.tasks.InstallTask;
import org.apache.sling.installer.api.tasks.InstallTaskFactory;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.core.impl.InternalService;
import org.osgi.framework.BundleContext;
import org.osgi.service.cm.ConfigurationAdmin;
@@ -74,7 +75,7 @@ public class ConfigTaskCreator implement
* @see org.apache.sling.installer.api.tasks.InstallTaskFactory#createTask(org.apache.sling.installer.api.tasks.RegisteredResourceGroup)
*/
public InstallTask createTask(final RegisteredResourceGroup group) {
- final RegisteredResource toActivate = group.getActiveResource();
+ final TaskResource toActivate = group.getActiveResource();
if ( !toActivate.getType().equals(InstallableResource.TYPE_CONFIG) ) {
return null;
}
@@ -83,7 +84,7 @@ public class ConfigTaskCreator implement
return null;
}
final InstallTask result;
- if (toActivate.getState() == RegisteredResource.State.UNINSTALL) {
+ if (toActivate.getState() == ResourceState.UNINSTALL) {
result = new ConfigRemoveTask(group, this.configAdminServiceTracker);
} else {
result = new ConfigInstallTask(group, this.configAdminServiceTracker);
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/console/OsgiInstallerWebConsolePlugin.java Wed Jan 12 15:39:01 2011
@@ -29,6 +29,7 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.core.impl.EntityResourceList;
import org.apache.sling.installer.core.impl.OsgiInstallerImpl;
import org.osgi.framework.BundleContext;
@@ -72,7 +73,7 @@ public class OsgiInstallerWebConsolePlug
Collection<String> entities = this.installer.getPersistentResourceList().getEntityIds();
for (String entityId : entities) {
EntityResourceList erl = this.installer.getPersistentResourceList().getEntityResourceList(entityId);
- RegisteredResource registeredResource = erl.getActiveResource();
+ TaskResource registeredResource = erl.getActiveResource();
if (registeredResource != null) {
pw.printf("<li>%s: %s, %s, %s%n",
registeredResource.getEntityId(),
@@ -80,10 +81,10 @@ public class OsgiInstallerWebConsolePlug
registeredResource.getScheme(),
registeredResource.getState());
}
- Collection<RegisteredResource> resources = erl.getResources();
+ Collection<TaskResource> resources = erl.getResources();
if (resources.size() > 0) {
pw.println("<ul>");
- for (RegisteredResource resource : resources) {
+ for (TaskResource resource : resources) {
pw.printf("<li>%s: %s, %s, %s</li>%n",
resource.getEntityId(), resource.getDigest(),
resource.getScheme(), resource.getState());
@@ -94,7 +95,7 @@ public class OsgiInstallerWebConsolePlug
}
pw.println("</ul>");
- printUnknownResources(pw, this.installer.getPersistentResourceList().getUnknownResources());
+ printUnknownResources(pw, this.installer.getPersistentResourceList().getUntransformedResources());
}
}
@@ -112,7 +113,7 @@ public class OsgiInstallerWebConsolePlug
Collection<String> entities = this.installer.getPersistentResourceList().getEntityIds();
for (String entityId : entities) {
EntityResourceList erl = this.installer.getPersistentResourceList().getEntityResourceList(entityId);
- RegisteredResource registeredResource = erl.getActiveResource();
+ TaskResource registeredResource = erl.getActiveResource();
if (registeredResource != null) {
pw.printf("- %s: %s, %s, %s%n",
registeredResource.getEntityId(),
@@ -120,9 +121,9 @@ public class OsgiInstallerWebConsolePlug
registeredResource.getScheme(),
registeredResource.getState());
}
- Collection<RegisteredResource> resources = erl.getResources();
+ Collection<TaskResource> resources = erl.getResources();
if (resources.size() > 0) {
- for (RegisteredResource resource : resources) {
+ for (TaskResource resource : resources) {
pw.printf("- %s: %s, %s, %s%n",
resource.getEntityId(), resource.getDigest(),
resource.getScheme(), resource.getState());
@@ -131,25 +132,23 @@ public class OsgiInstallerWebConsolePlug
}
pw.println();
- pw.println("Unknown Resources:");
- for (RegisteredResource registeredResource : this.installer.getPersistentResourceList().getUnknownResources()) {
- pw.printf("- %s: %s, %s, %s</li>%n",
+ pw.println("Untransformed Resources:");
+ for (RegisteredResource registeredResource : this.installer.getPersistentResourceList().getUntransformedResources()) {
+ pw.printf("- %s: %s, %s%n",
registeredResource.getEntityId(),
- registeredResource.getDigest(), registeredResource.getScheme(),
- registeredResource.getState());
+ registeredResource.getDigest(), registeredResource.getScheme());
}
}
}
private void printUnknownResources(final PrintWriter pw,
final List<RegisteredResource> unknown) {
- pw.println("<h1>Unknown Resources</h1>");
+ pw.println("<h1>Untransformed Resources</h1>");
pw.println("<ul>");
for (RegisteredResource registeredResource : unknown) {
- pw.printf("<li>%s: %s, %s, %s</li>%n",
+ pw.printf("<li>%s: %s, %s</li>%n",
registeredResource.getEntityId(),
- registeredResource.getDigest(), registeredResource.getScheme(),
- registeredResource.getState());
+ registeredResource.getDigest(), registeredResource.getScheme());
}
pw.println("</ul>");
}
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleRemoveTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleRemoveTask.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleRemoveTask.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleRemoveTask.java Wed Jan 12 15:39:01 2011
@@ -18,10 +18,10 @@
*/
package org.apache.sling.installer.core.impl.tasks;
-import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.InstallTask;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleException;
import org.osgi.framework.Constants;
@@ -50,7 +50,7 @@ public class BundleRemoveTask extends In
final Bundle b = this.creator.getMatchingBundle(symbolicName);
if (b == null) {
// nothing to do, so just stop
- this.setFinishedState(RegisteredResource.State.IGNORED);
+ this.setFinishedState(ResourceState.IGNORED);
return;
}
final int state = b.getState();
@@ -60,7 +60,7 @@ public class BundleRemoveTask extends In
}
b.uninstall();
ctx.log("Uninstalled bundle {} from resource {}", b, getResource());
- this.setFinishedState(RegisteredResource.State.UNINSTALLED);
+ this.setFinishedState(ResourceState.UNINSTALLED);
ctx.addTaskToCurrentCycle(new SynchronousRefreshPackagesTask(this.creator));
} catch (final BundleException be) {
this.getLogger().debug("Exception during removal of bundle " + this.getResource() + " : " + be.getMessage() + ". Retrying later.", be);
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleStartTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleStartTask.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleStartTask.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleStartTask.java Wed Jan 12 15:39:01 2011
@@ -20,10 +20,11 @@ package org.apache.sling.installer.core.
import java.text.DecimalFormat;
-import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.InstallTask;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.core.impl.OsgiInstallerImpl;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleException;
@@ -52,7 +53,7 @@ public class BundleStartTask extends Ins
this.bundleId = bundleId;
this.creator = btc;
this.sortKey = BUNDLE_START_ORDER + new DecimalFormat("00000").format(bundleId);
- final RegisteredResource rr = this.getResource();
+ final TaskResource rr = this.getResource();
if ( rr != null && rr.getTemporaryAttribute(ATTR_RC) != null ) {
this.retryCount = (Integer)rr.getTemporaryAttribute(ATTR_RC);
this.eventsCountForRetrying = (Long)rr.getTemporaryAttribute(ATTR_EC);
@@ -77,7 +78,7 @@ public class BundleStartTask extends Ins
if (bundleId == 0) {
this.getLogger().debug("Bundle 0 is the framework bundle, ignoring request to start it");
if ( this.getResource() != null ) {
- this.setFinishedState(RegisteredResource.State.INSTALLED);
+ this.setFinishedState(ResourceState.INSTALLED);
}
return;
}
@@ -102,7 +103,7 @@ public class BundleStartTask extends Ins
if (b.getState() == Bundle.ACTIVE) {
this.getLogger().debug("Bundle already started, no action taken: {}/{}", bundleId, b.getSymbolicName());
if ( this.getResource() != null ) {
- this.setFinishedState(RegisteredResource.State.INSTALLED);
+ this.setFinishedState(ResourceState.INSTALLED);
}
return;
}
@@ -110,7 +111,7 @@ public class BundleStartTask extends Ins
try {
b.start();
if ( this.getResource() != null ) {
- this.setFinishedState(RegisteredResource.State.INSTALLED);
+ this.setFinishedState(ResourceState.INSTALLED);
}
this.getLogger().info("Bundle started (retry count={}, bundle ID={}) : {}",
new Object[] {retryCount, bundleId, b.getSymbolicName()});
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreator.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreator.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreator.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreator.java Wed Jan 12 15:39:01 2011
@@ -21,8 +21,9 @@ package org.apache.sling.installer.core.
import org.apache.sling.installer.api.InstallableResource;
import org.apache.sling.installer.api.tasks.InstallTask;
import org.apache.sling.installer.api.tasks.InstallTaskFactory;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.core.impl.InternalService;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -135,7 +136,7 @@ public class BundleTaskCreator implement
* @see org.apache.sling.installer.api.tasks.InstallTaskFactory#createTask(org.apache.sling.installer.api.tasks.RegisteredResourceGroup)
*/
public InstallTask createTask(final RegisteredResourceGroup resourceList) {
- final RegisteredResource toActivate = resourceList.getActiveResource();
+ final TaskResource toActivate = resourceList.getActiveResource();
if ( !toActivate.getType().equals(InstallableResource.TYPE_BUNDLE) ) {
return null;
}
@@ -145,14 +146,14 @@ public class BundleTaskCreator implement
final BundleInfo info = this.getBundleInfo(symbolicName);
// Uninstall
- if (toActivate.getState() == RegisteredResource.State.UNINSTALL) {
+ if (toActivate.getState() == ResourceState.UNINSTALL) {
// Remove corresponding bundle if present and if we installed it
if (info != null
&& info.version.equals(new Version((String)toActivate.getAttributes().get(Constants.BUNDLE_VERSION))) ) {
result = new BundleRemoveTask(resourceList, this);
} else {
logger.info("Bundle {} was not installed by this module, not removed", symbolicName);
- result = new ChangeStateTask(resourceList, RegisteredResource.State.IGNORED);
+ result = new ChangeStateTask(resourceList, ResourceState.IGNORED);
}
// Install
@@ -188,7 +189,7 @@ public class BundleTaskCreator implement
}
} else {
logger.debug("Nothing to install for {}, same version {} already installed.", toActivate, newVersion);
- result = new ChangeStateTask(resourceList, RegisteredResource.State.IGNORED);
+ result = new ChangeStateTask(resourceList, ResourceState.IGNORED);
}
}
}
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleUpdateTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleUpdateTask.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleUpdateTask.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/BundleUpdateTask.java Wed Jan 12 15:39:01 2011
@@ -18,10 +18,10 @@
*/
package org.apache.sling.installer.core.impl.tasks;
-import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.InstallTask;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
import org.osgi.framework.Version;
@@ -52,7 +52,7 @@ public class BundleUpdateTask extends In
final Bundle b = this.creator.getMatchingBundle(symbolicName);
if (b == null) {
this.getLogger().debug("Bundle to update ({}) not found", symbolicName);
- this.setFinishedState(RegisteredResource.State.IGNORED);
+ this.setFinishedState(ResourceState.IGNORED);
return;
}
@@ -65,7 +65,7 @@ public class BundleUpdateTask extends In
if (currentVersion.equals(newVersion) && !snapshot) {
// TODO : Isn't this already checked in the task creator?
this.getLogger().debug("Same version is already installed, and not a snapshot, ignoring update: {}", getResource());
- this.setFinishedState(RegisteredResource.State.INSTALLED);
+ this.setFinishedState(ResourceState.INSTALLED);
return;
}
@@ -82,14 +82,14 @@ public class BundleUpdateTask extends In
this.getResource().getAttributes().put(BundleTaskCreator.ATTR_START, "true");
ctx.addTaskToCurrentCycle(new BundleStartTask(this.getResourceGroup(), b.getBundleId(), this.creator));
} else {
- this.setFinishedState(RegisteredResource.State.INSTALLED);
+ this.setFinishedState(ResourceState.INSTALLED);
}
ctx.addTaskToCurrentCycle(new SynchronousRefreshPackagesTask(this.creator));
this.getLogger().debug("Bundle updated: {}/{}", b.getBundleId(), b.getSymbolicName());
} catch (Exception e) {
if ( !canRetry ) {
this.getLogger().warn("Removing failing tasks - unable to retry: " + this, e);
- this.setFinishedState(RegisteredResource.State.IGNORED);
+ this.setFinishedState(ResourceState.IGNORED);
}
}
}
Modified: sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/ChangeStateTask.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/ChangeStateTask.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/ChangeStateTask.java (original)
+++ sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/tasks/ChangeStateTask.java Wed Jan 12 15:39:01 2011
@@ -18,10 +18,10 @@
*/
package org.apache.sling.installer.core.impl.tasks;
-import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.InstallTask;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.InstallationContext;
import org.apache.sling.installer.api.tasks.RegisteredResourceGroup;
+import org.apache.sling.installer.api.tasks.ResourceState;
/**
* Simple general task, setting the state of a registered resource.
@@ -30,10 +30,10 @@ public class ChangeStateTask extends Ins
private static final String ORDER = "00-";
- private final RegisteredResource.State state;
+ private final ResourceState state;
public ChangeStateTask(final RegisteredResourceGroup r,
- final RegisteredResource.State s) {
+ final ResourceState s) {
super(r);
this.state = s;
}
Modified: sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/MockBundleResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/MockBundleResource.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/MockBundleResource.java (original)
+++ sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/MockBundleResource.java Wed Jan 12 15:39:01 2011
@@ -25,16 +25,20 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.sling.installer.api.InstallableResource;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.ResourceState;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.osgi.framework.Constants;
-/** Mock RegisteredResource that simulates a bundle */
-public class MockBundleResource implements RegisteredResource {
+/**
+ * Mock RegisteredResource that simulates a bundle
+ *
+ */
+public class MockBundleResource implements TaskResource, Comparable<MockBundleResource> {
private static final long serialVersionUID = 1L;
private final Map<String, Object> attributes = new HashMap<String, Object>();
private final Map<String, Object> tempAttributes = new HashMap<String, Object>();
- private State state = State.INSTALL;
+ private ResourceState state = ResourceState.INSTALL;
private final String digest;
private final int priority;
@@ -74,7 +78,7 @@ public class MockBundleResource implemen
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#getAttributes()
+ * @see org.apache.sling.installer.api.tasks.TaskResource#getAttributes()
*/
public Map<String, Object> getAttributes() {
return attributes;
@@ -139,33 +143,33 @@ public class MockBundleResource implemen
/**
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
- public int compareTo(RegisteredResource o) {
+ public int compareTo(MockBundleResource o) {
return RegisteredResourceImpl.compare(this, o);
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#getState()
+ * @see org.apache.sling.installer.api.tasks.TaskResource#getState()
*/
- public State getState() {
+ public ResourceState getState() {
return state;
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#setState(org.apache.sling.installer.api.tasks.RegisteredResource.State)
+ * @see org.apache.sling.installer.api.tasks.TaskResource#setState(org.apache.sling.installer.api.tasks.ResourceState)
*/
- public void setState(State s) {
+ public void setState(ResourceState s) {
this.state = s;
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#getTemporaryAttribute(java.lang.String)
+ * @see org.apache.sling.installer.api.tasks.TaskResource#getTemporaryAttribute(java.lang.String)
*/
public Object getTemporaryAttribute(String key) {
return this.tempAttributes.get(key);
}
/**
- * @see org.apache.sling.installer.api.tasks.RegisteredResource#setTemporaryAttributee(java.lang.String, java.lang.Object)
+ * @see org.apache.sling.installer.api.tasks.TaskResource#setTemporaryAttributee(java.lang.String, java.lang.Object)
*/
public void setTemporaryAttributee(String key, Object value) {
if ( value == null ) {
Modified: sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceComparatorTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceComparatorTest.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceComparatorTest.java (original)
+++ sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceComparatorTest.java Wed Jan 12 15:39:01 2011
@@ -45,11 +45,11 @@ public class RegisteredResourceComparato
}
}
- private RegisteredResource getConfig(String url, Dictionary<String, Object> data, int priority) throws IOException {
+ private RegisteredResourceImpl getConfig(String url, Dictionary<String, Object> data, int priority) throws IOException {
return getConfig(url, data, priority, null);
}
- private RegisteredResource getConfig(String url, Dictionary<String, Object> data, int priority, String digest) throws IOException {
+ private RegisteredResourceImpl getConfig(String url, Dictionary<String, Object> data, int priority, String digest) throws IOException {
if(data == null) {
data = new Hashtable<String, Object>();
data.put("foo", "bar");
@@ -58,9 +58,7 @@ public class RegisteredResourceComparato
final InstallableResource r = new InstallableResource(url, null, data, digest, null, priority);
final InternalResource internal = InternalResource.create("test", r);
final RegisteredResourceImpl rr = RegisteredResourceImpl.create(internal);
- rr.update(new DefaultTransformer().transform(rr)[0]);
-
- return rr;
+ return (RegisteredResourceImpl)rr.clone(new DefaultTransformer().transform(rr)[0]);
}
private void assertOrder(RegisteredResource[] inOrder) {
@@ -125,8 +123,8 @@ public class RegisteredResourceComparato
@Test
public void testBundleDigests() {
- final RegisteredResource a = new MockBundleResource("a", "1.2.0", 0, "digestA");
- final RegisteredResource b = new MockBundleResource("a", "1.2.0", 0, "digestB");
+ final MockBundleResource a = new MockBundleResource("a", "1.2.0", 0, "digestA");
+ final MockBundleResource b = new MockBundleResource("a", "1.2.0", 0, "digestB");
assertEquals("Digests must not be included in bundles comparison", 0, a.compareTo(b));
}
@@ -153,13 +151,13 @@ public class RegisteredResourceComparato
public void testConfigDigests() throws IOException {
final Dictionary<String, Object> data = new Hashtable<String, Object>();
data.put("foo", "bar");
- final RegisteredResource a = getConfig("pid", data, 0);
+ final RegisteredResourceImpl a = getConfig("pid", data, 0);
data.put("foo", "changed");
- final RegisteredResource b = getConfig("pid", data, 0);
+ final RegisteredResourceImpl b = getConfig("pid", data, 0);
assertEquals("Entity urls must be the same", a.getEntityId(), b.getEntityId());
assertTrue("Digests must be included in configs comparison", a.compareTo(b) != 0);
- final RegisteredResource a2 = getConfig("pid", data, 0);
- final RegisteredResource b2 = getConfig("pid", data, 0);
+ final RegisteredResourceImpl a2 = getConfig("pid", data, 0);
+ final RegisteredResourceImpl b2 = getConfig("pid", data, 0);
assertEquals("Digests must be included in configs comparison", 0, a2.compareTo(b2));
}
@@ -181,12 +179,4 @@ public class RegisteredResourceComparato
inOrder[3] = getConfig("pidB", null, 0);
assertOrder(inOrder);
}
-
- @Test
- public void testConfigAndBundle() throws IOException {
- final RegisteredResource cfg = getConfig("pid", null, InstallableResource.DEFAULT_PRIORITY);
- final RegisteredResource b = new MockBundleResource("a", "1.0");
- assertEquals("bundle is > config when compared", -1, b.compareTo(cfg));
- assertEquals("config is < bundle when compared", 1, cfg.compareTo(b));
- }
}
\ No newline at end of file
Modified: sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceTest.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceTest.java (original)
+++ sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/RegisteredResourceTest.java Wed Jan 12 15:39:01 2011
@@ -34,6 +34,7 @@ import java.util.Hashtable;
import org.apache.sling.installer.api.InstallableResource;
import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.api.tasks.TransformationResult;
import org.junit.Test;
import org.osgi.framework.BundleContext;
@@ -66,7 +67,7 @@ public class RegisteredResourceTest {
final Hashtable<String, Object> data = new Hashtable<String, Object>();
data.put("foo", "bar");
data.put("other", 2);
- final RegisteredResource r = create(new InstallableResource("test:1", null, data, null, null, null));
+ final TaskResource r = create(new InstallableResource("test:1", null, data, null, null, null));
assertEquals("No-extension URL with Dictionary creates a CONFIG resource",
InstallableResource.TYPE_CONFIG, r.getType());
final InputStream rs = r.getInputStream();
@@ -112,14 +113,14 @@ public class RegisteredResourceTest {
@org.junit.Test public void testBundleManifest() throws Exception {
final File f = getTestBundle("testbundle-1.0.jar");
final InstallableResource i = new InstallableResource("test:" + f.getAbsolutePath(), new FileInputStream(f), null, f.getName(), null, null);
- final RegisteredResource r = create(i);
+ final TaskResource r = create(i);
assertNotNull("RegisteredResource must have bundle symbolic name", r.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME));
assertEquals("RegisteredResource entity ID must match", "bundle:osgi-installer-testbundle", r.getEntityId());
}
@org.junit.Test public void testConfigEntity() throws Exception {
final InstallableResource i = new InstallableResource("test:/foo/someconfig", null, new Hashtable<String, Object>(), null, null, null);
- final RegisteredResource r = create(i);
+ final TaskResource r = create(i);
assertNull("RegisteredResource must not have bundle symbolic name", r.getAttributes().get(Constants.BUNDLE_SYMBOLICNAME));
assertEquals("RegisteredResource entity ID must match", "config:someconfig", r.getEntityId());
}
@@ -162,13 +163,13 @@ public class RegisteredResourceTest {
);
}
- private RegisteredResource create(final InstallableResource is) throws IOException {
+ private TaskResource create(final InstallableResource is) throws IOException {
new FileDataStore(new MockBundleContext());
final InternalResource internal = InternalResource.create("test", is);
final RegisteredResourceImpl rr = RegisteredResourceImpl.create(internal);
final TransformationResult[] tr = new DefaultTransformer().transform(rr);
if ( tr != null ) {
- rr.update(tr[0]);
+ return rr.clone(tr[0]);
}
return rr;
}
Modified: sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/TaskOrderingTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/TaskOrderingTest.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/TaskOrderingTest.java (original)
+++ sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/TaskOrderingTest.java Wed Jan 12 15:39:01 2011
@@ -53,8 +53,8 @@ public class TaskOrderingTest {
new FileDataStore(new MockBundleContext());
final InternalResource internal = InternalResource.create("test",
new InstallableResource(url, null, new Hashtable<String, Object>(), null, null, null));
- final RegisteredResourceImpl rr = RegisteredResourceImpl.create(internal);
- rr.update(new DefaultTransformer().transform(rr)[0]);
+ RegisteredResourceImpl rr = RegisteredResourceImpl.create(internal);
+ rr = (RegisteredResourceImpl)rr.clone(new DefaultTransformer().transform(rr)[0]);
final EntityResourceList erl = new EntityResourceList();
erl.addOrUpdate(rr);
Modified: sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreatorTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreatorTest.java?rev=1058196&r1=1058195&r2=1058196&view=diff
==============================================================================
--- sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreatorTest.java (original)
+++ sling/trunk/installer/core/src/test/java/org/apache/sling/installer/core/impl/tasks/BundleTaskCreatorTest.java Wed Jan 12 15:39:01 2011
@@ -27,27 +27,23 @@ import java.util.SortedSet;
import java.util.TreeSet;
import org.apache.sling.installer.api.tasks.InstallTask;
-import org.apache.sling.installer.api.tasks.RegisteredResource;
+import org.apache.sling.installer.api.tasks.ResourceState;
+import org.apache.sling.installer.api.tasks.TaskResource;
import org.apache.sling.installer.core.impl.EntityResourceList;
import org.apache.sling.installer.core.impl.MockBundleResource;
-import org.apache.sling.installer.core.impl.tasks.BundleInstallTask;
-import org.apache.sling.installer.core.impl.tasks.BundleRemoveTask;
-import org.apache.sling.installer.core.impl.tasks.BundleTaskCreator;
-import org.apache.sling.installer.core.impl.tasks.BundleUpdateTask;
-import org.apache.sling.installer.core.impl.tasks.ChangeStateTask;
import org.junit.Test;
import org.osgi.framework.Bundle;
public class BundleTaskCreatorTest {
public static final String SN = "TestSymbolicName";
- private SortedSet<InstallTask> getTasks(RegisteredResource [] resources, BundleTaskCreator btc) throws IOException {
- final SortedSet<RegisteredResource> sortedResources = new TreeSet<RegisteredResource>();
- for(final RegisteredResource rr : resources) {
+ private SortedSet<InstallTask> getTasks(TaskResource [] resources, BundleTaskCreator btc) throws IOException {
+ final SortedSet<TaskResource> sortedResources = new TreeSet<TaskResource>();
+ for(final TaskResource rr : resources) {
sortedResources.add(rr);
}
final SortedSet<InstallTask> tasks = new TreeSet<InstallTask>();
- for(final RegisteredResource r : sortedResources) {
+ for(final TaskResource r : sortedResources) {
final EntityResourceList erl = new EntityResourceList();
erl.addOrUpdate(r);
tasks.add(btc.createTask(erl));
@@ -57,7 +53,7 @@ public class BundleTaskCreatorTest {
@Test
public void testSingleBundleNew() throws IOException {
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, "1.0")
};
final MockBundleTaskCreator c = new MockBundleTaskCreator();
@@ -68,7 +64,7 @@ public class BundleTaskCreatorTest {
@Test
public void testSingleBundleAlreadyInstalled() throws IOException {
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, "1.0")
};
@@ -91,7 +87,7 @@ public class BundleTaskCreatorTest {
@Test
public void testBundleUpgrade() throws IOException {
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, "1.1")
};
@@ -106,7 +102,7 @@ public class BundleTaskCreatorTest {
@Test
public void testBundleUpgradeBothRegistered() throws IOException {
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, "1.1"),
new MockBundleResource(SN, "1.0")
};
@@ -123,7 +119,7 @@ public class BundleTaskCreatorTest {
@Test
public void testBundleUpgradeBothRegisteredReversed() throws IOException {
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, "1.0"),
new MockBundleResource(SN, "1.1")
};
@@ -143,7 +139,7 @@ public class BundleTaskCreatorTest {
// Need to use OSGi-compliant version number, in bundles
// bnd and other tools generate correct numbers.
final String v = "2.0.7.SNAPSHOT";
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, v)
};
@@ -159,10 +155,10 @@ public class BundleTaskCreatorTest {
@Test
public void testBundleRemoveSingle() throws IOException {
final String version = "1.0";
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, version)
};
- r[0].setState(RegisteredResource.State.UNINSTALL);
+ r[0].setState(ResourceState.UNINSTALL);
{
final MockBundleTaskCreator c = new MockBundleTaskCreator();
@@ -175,13 +171,13 @@ public class BundleTaskCreatorTest {
@Test
public void testBundleRemoveMultiple() throws IOException {
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, "1.0"),
new MockBundleResource(SN, "1.1"),
new MockBundleResource(SN, "2.0")
};
- for(RegisteredResource x : r) {
- x.setState(RegisteredResource.State.UNINSTALL);
+ for(TaskResource x : r) {
+ x.setState(ResourceState.UNINSTALL);
}
{
@@ -199,13 +195,13 @@ public class BundleTaskCreatorTest {
@Test
public void testDowngradeOfRemovedResource() throws IOException {
- final RegisteredResource [] r = {
+ final TaskResource [] r = {
new MockBundleResource(SN, "1.0.0"),
new MockBundleResource(SN, "1.1.0"),
};
// Simulate V1.1 installed but resource is gone -> downgrade to 1.0
- r[1].setState(RegisteredResource.State.UNINSTALL);
+ r[1].setState(ResourceState.UNINSTALL);
{
final MockBundleTaskCreator c = new MockBundleTaskCreator();