From 8207a55573f385d73777d3a44ae738df10d67dd5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Bigaret?=
 <sebastien.bigaret@telecom-bretagne.eu>
Date: Tue, 8 Mar 2011 09:43:34 +0100
Subject: [PATCH] Local resources sent by server should be ignored by the
 bridge.

So-called local resources are declared with a provider named "local".
---
 .../praxis/platform/PlatformToClientBridge.java          | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/eu/telecom_bretagne/praxis/platform/PlatformToClientBridge.java b/src/eu/telecom_bretagne/praxis/platform/PlatformToClientBridge.java
index 4fe6571a..4d858628 100644
--- a/src/eu/telecom_bretagne/praxis/platform/PlatformToClientBridge.java
+++ b/src/eu/telecom_bretagne/praxis/platform/PlatformToClientBridge.java
@@ -150,8 +150,15 @@ public class PlatformToClientBridge extends AbstractPlatform implements ServerTo
 		RemoteComponents remoteComponents = new RemoteComponents(platform_conn[0], platform_conn[1], Integer.parseInt(platform_conn[2])); // TODO NumberFormatException
 		remoteComponents.init();
 		Element programs = conf.getRootElement().getChild("programs");
+		/*
+		 * "local" resources /may/ be declared on the remote server, most of the times because they were present at
+		 * compile-time and packed in the jar along with all the others. However, resources with provider named
+		 * "local" are *never* shared: if they are present/declared on the remote side, we must ignore them, or they
+		 * may shadow the one locally declared.
+		 */
 		for (String resource: remoteComponents.getResourceRepository().getResources())
-			programs.addContent(new Element("program").setAttribute("id", resource));
+			if (!resource.startsWith("local"))
+				programs.addContent(new Element("program").setAttribute("id", resource));
 		
 		CommunicationFacade cnx = CommunicationFacade.buildConnection("Platform", platform_conn);
 		cnx.start();
-- 
GitLab