Revision 358 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/library/AbstractLibrariesInitializer.java

View differences:

AbstractLibrariesInitializer.java
30 30
import java.util.Map;
31 31
import java.util.Set;
32 32

  
33
import org.gvsig.tools.exception.BaseRuntimeException;
34
import org.gvsig.tools.library.AbstractLibrary.Required;
35 33
import org.slf4j.Logger;
36 34
import org.slf4j.LoggerFactory;
37 35

  
36
import org.gvsig.tools.exception.BaseRuntimeException;
37
import org.gvsig.tools.library.AbstractLibrary.Required;
38

  
38 39
/**
39 40
 * Base implementation of an {@link LibrariesInitializer} with the
40 41
 * initialization of Libraries already implemented, delegating on child classes
......
177 178
		if (libs != null) {
178 179
			for (Iterator iterator = libs.iterator(); iterator.hasNext();) {
179 180
				Library lib = (Library) iterator.next();
181
                String libName = "";
182
                if (lib.getLibrary() != null) {
183
                    libName = " - " + lib.getLibrary().getName();
184
                }
180 185
				buffer.append("\t").
181 186
					append(lib.getClass().getName()).
182 187
					append(" (").
183 188
					append(lib.getType()).
184
					append(")\n");
189
append(")").append(libName)
190
                    .append("\n");
185 191
			}
186 192
		}
187 193
		LOG.info(buffer.toString());
188 194
	}
189 195

  
190
	private class OrderedLibs extends LinkedHashSet {
196
    private class OrderedLibs extends LinkedHashSet {
191 197
		/**
192 198
		 * 
193 199
		 */
......
199 205
			while(iterator.hasNext() ) {
200 206
				Library lib = (Library) iterator.next();
201 207
				if( lib.getLibrary()!=null && lib.getType()!=null ) {
202
					this.libs.put(lib.getLibrary().getName()+"-"+lib.getType(), lib);
208
                    String libName =
209
                        lib.getLibrary().getName() + "-" + lib.getType();
210
                    if (this.libs.containsKey(libName)) {
211
                        Library previousLibrary =
212
                            (Library) this.libs.get(libName);
213
                        LOG
214
                            .warn(
215
                                "There's already a library initialized with the name '{}': '{}'  with priority '{}', and '{}' with priority '{}",
216
                                new Object[] { libName,
217
                                    previousLibrary.getClass().getName(),
218
                                    String.valueOf(previousLibrary
219
                                        .getPriority()),
220
                                    lib.getClass().getName(),
221
                                    String.valueOf(lib.getPriority()) });
222

  
223
                        if (lib.getPriority() < previousLibrary.getPriority()) {
224

  
225
                            this.libs.put(libName, previousLibrary);
226

  
227
                            LOG.info(
228
                                    "Old library '{}' with priority '{}'  was chosen.",
229
                                previousLibrary.getClass().getName(), String
230
                                    .valueOf(previousLibrary.getPriority()));
231
                        } else {
232

  
233
                            this.libs.put(libName, lib);
234

  
235
                            LOG.info(
236
                                    "New library '{}' with priority '{}'  was chosen.",
237
                                lib.getClass().getName(), String.valueOf(lib
238
                                    .getPriority()));
239
                        }
240
                    } else {
241
                        this.libs.put(libName, lib);
242
                    }
203 243
				}
204 244
			}
205
			iterator = libs.iterator(); 
245
            iterator = libs.iterator();
206 246
			while(iterator.hasNext() ) {
207 247
				Library lib = (Library) iterator.next();
208
				this.add(lib);
248
                if (lib.getLibrary() != null && lib.getType() != null) {
249
                    String libName =
250
                        lib.getLibrary().getName() + "-" + lib.getType();
251
                    if (this.libs.containsKey(libName)) {
252
                        this.add(lib);
253
                    }
254
                } else {
255
                    this.add(lib);
256
                }
209 257
			}
210 258
		}
211 259
		

Also available in: Unified diff