import org.geotools.geometry.jts.ReferencedEnvelope;
import org.geotools.map.DefaultMapContext;
import org.geotools.map.DefaultMapLayer;
+import org.geotools.map.MapContext;
import org.geotools.map.MapLayer;
import org.geotools.renderer.lite.StreamingRenderer;
import org.geotools.styling.Style;
embedded = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);
Frame frame = SWT_AWT.new_Frame(embedded);
- mapPane = new JMapPane(new StreamingRenderer(), new DefaultMapContext());
+ MapContext mapContext = new DefaultMapContext();
+ // dummy call to make sure that the layers are initialized
+ mapContext.layers();
+ mapPane = new JMapPane(new StreamingRenderer(), mapContext);
versatileZoomTool = new VersatileZoomTool();
mapPane.setCursorTool(versatileZoomTool);
mapPane.setBackground(Color.WHITE);
--- /dev/null
+package org.argeo.geotools.jdbc;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.sql.DataSource;
+
+import org.argeo.ArgeoException;
+import org.geotools.data.DataStore;
+import org.geotools.data.postgis.PostgisNGDataStoreFactory;
+
+/**
+ * Simplified data store to avoid issues with Spring and OSGi when Springs scans
+ * for all available factory methods.
+ */
+public class PostgisDataStoreFactory {
+ private PostgisNGDataStoreFactory wrappedFactory = new PostgisNGDataStoreFactory();
+
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public DataStore createDataStore(DataSource dataSource) {
+ try {
+ Map params = new HashMap();
+ params.put(PostgisNGDataStoreFactory.DATASOURCE.key, dataSource);
+ return wrappedFactory.createDataStore(params);
+ } catch (IOException e) {
+ throw new ArgeoException("Cannot create PostGIS data store", e);
+ }
+ }
+}