Revision: 4558
          http://sourceforge.net/p/jump-pilot/code/4558
Author:   edso
Date:     2015-12-03 17:26:12 +0000 (Thu, 03 Dec 2015)
Log Message:
-----------
  * added Nicolas Ribot's Oracle Spatial Datastore Extension to CORE
    activates in PLUS as it needs DBQuery's *gt2-oracle-spatial-2.x.jar*
    also *ojdbc6.jar* must be downloaded and installed manually because
    of licensing restrictions
  * extensions can hold messages now (eg. tell why they are not activated) 

Modified Paths:
--------------
    core/trunk/ChangeLog
    core/trunk/etc/readme.txt
    core/trunk/scripts/default-plugins.xml
    core/trunk/src/com/vividsolutions/jump/workbench/plugin/Extension.java
    core/trunk/src/com/vividsolutions/jump/workbench/plugin/PlugInManager.java
    
core/trunk/src/com/vividsolutions/jump/workbench/ui/ExtensionsAboutPanel.java
    core/trunk/src/de/latlon/deejump/wfs/WFSExtension.java

Added Paths:
-----------
    
core/trunk/src/com/vividsolutions/jump/datastore/OracleDataStoreExtension.java
    core/trunk/src/com/vividsolutions/jump/datastore/oracle/

Modified: core/trunk/ChangeLog
===================================================================
--- core/trunk/ChangeLog        2015-12-03 12:43:38 UTC (rev 4557)
+++ core/trunk/ChangeLog        2015-12-03 17:26:12 UTC (rev 4558)
@@ -1,5 +1,12 @@
 # for display continuity sake please use 2 spaces instead of tabs
 
+2015-12-03 ede
+  * added Nicolas Ribot's Oracle Spatial Datastore Extension to CORE
+    activates in PLUS as it needs DBQuery's *gt2-oracle-spatial-2.x.jar*
+    also *ojdbc6.jar* must be downloaded and installed manually because
+    of licensing restrictions
+  * extensions can hold messages now (eg. tell why they are not activated) 
+
 2015-11-23 mmichaud <[email protected]>
   * Fix bug #411 : plugins in attributeTable context menu was deactivated
 

Modified: core/trunk/etc/readme.txt
===================================================================
--- core/trunk/etc/readme.txt   2015-12-03 12:43:38 UTC (rev 4557)
+++ core/trunk/etc/readme.txt   2015-12-03 17:26:12 UTC (rev 4558)
@@ -61,10 +61,12 @@
 and the following plugins
 ( Component name - License name - License file in "licenses/" folder
    list of files and dependencies with license if any )
+ Oracle Datastore (Nicolas Ribot) - GPL2 - gpl-2.txt
  SkyPrinter - GPL2 - gpl-2.txt
   SkyPrinterPlugIn-*.jar
   itext-*.jar - LGPL2.1 - lgpl-2.1.txt
 
+
 Additionally PLUS distribution contains
 ( Component name - License name - License file in "licenses/" folder
    list of files and dependencies with license if any )
@@ -129,6 +131,11 @@
  Vertex Symbols (com.cadplan.jump) - GPL2 - gpl-2.txt
   VertexSymbols.jar
   itext-*.jar - LGPL2.1 - lgpl-2.1.txt
+ WFS Plugin
+  commons-httpclient-3.1.jar
+  deegree2-core-2.6-pre2-20140511.220246-596.jar
+  jaxen-1.1.1.jar
+  vecmath-1.5.2.jar
 
 
 2. Installation instructions

Modified: core/trunk/scripts/default-plugins.xml
===================================================================
--- core/trunk/scripts/default-plugins.xml      2015-12-03 12:43:38 UTC (rev 
4557)
+++ core/trunk/scripts/default-plugins.xml      2015-12-03 17:26:12 UTC (rev 
4558)
@@ -25,6 +25,9 @@
        <plug-in>
                
org.openjump.core.ui.plugin.datastore.postgis.SaveToPostGISPlugIn
        </plug-in>
+       <extension>
+               com.vividsolutions.jump.datastore.OracleDataStoreExtension
+       </extension>
        <plug-in>
                
org.openjump.core.ccordsys.srid.EnsureAllLayersHaveSRIDStylePlugIn
        </plug-in>

Added: 
core/trunk/src/com/vividsolutions/jump/datastore/OracleDataStoreExtension.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/datastore/OracleDataStoreExtension.java  
                            (rev 0)
+++ 
core/trunk/src/com/vividsolutions/jump/datastore/OracleDataStoreExtension.java  
    2015-12-03 17:26:12 UTC (rev 4558)
@@ -0,0 +1,51 @@
+package com.vividsolutions.jump.datastore;
+
+import static 
com.vividsolutions.jump.datastore.oracle.OracleDataStoreDriver.JDBC_CLASS;
+
+import com.vividsolutions.jump.datastore.oracle.OracleDataStoreDriver;
+import com.vividsolutions.jump.workbench.WorkbenchContext;
+import com.vividsolutions.jump.workbench.plugin.Extension;
+import com.vividsolutions.jump.workbench.plugin.PlugInContext;
+
+public class OracleDataStoreExtension extends Extension {
+  private static boolean disabled = false;
+
+  public String getName() {
+    return "Oracle Spatial Datastore Extension (Nicolas Ribot)";
+  }
+
+  public String getVersion() {
+    return "0.2 (3.12.2015)";
+  }
+
+  public String getMessage() {
+    return disabled ? "Disabled: Missing either ojdbc6.jar or 
gt2-oracle-spatial-2.x.jar"
+        : "";
+  }
+
+  public void configure(PlugInContext context) throws Exception {
+    WorkbenchContext wbc = context.getWorkbenchContext();
+
+    // registers the OracleDataStore driver to the system:
+    try {
+      ClassLoader pluginLoader = wbc.getWorkbench().getPlugInManager()
+          .getClassLoader();
+      // check for ojdbc6.jar
+      Class.forName(JDBC_CLASS, true, pluginLoader).newInstance();
+      // check for gt2-oracle-spatial-2.x.jar
+      Class.forName("org.geotools.data.oracle.sdo.SDO", true, pluginLoader)
+          .newInstance();
+      // register the datastore
+      wbc.getRegistry().createEntry(DataStoreDriver.REGISTRY_CLASSIFICATION,
+          new OracleDataStoreDriver());
+
+    } catch (Exception e) {
+      disabled = true;
+      wbc.getWorkbench()
+          .getFrame()
+          .log(
+              "Oracle Spatial Data Store disabled:\n" + e.toString() );
+    }
+  }
+
+}
\ No newline at end of file


Property changes on: 
core/trunk/src/com/vividsolutions/jump/datastore/OracleDataStoreExtension.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Modified: core/trunk/src/com/vividsolutions/jump/workbench/plugin/Extension.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/workbench/plugin/Extension.java      
2015-12-03 12:43:38 UTC (rev 4557)
+++ core/trunk/src/com/vividsolutions/jump/workbench/plugin/Extension.java      
2015-12-03 17:26:12 UTC (rev 4558)
@@ -46,7 +46,12 @@
                 ? ""
                 : " (" + getClass().getPackage().getName() + ")");
     }
+    
     public String getVersion() {
         return "";
     }
+    
+    public String getMessage() {
+      return "";
+    }
 }

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/plugin/PlugInManager.java
===================================================================
--- core/trunk/src/com/vividsolutions/jump/workbench/plugin/PlugInManager.java  
2015-12-03 12:43:38 UTC (rev 4557)
+++ core/trunk/src/com/vividsolutions/jump/workbench/plugin/PlugInManager.java  
2015-12-03 17:26:12 UTC (rev 4558)
@@ -141,9 +141,13 @@
             + version(configuration));
         long start = secondsSince(0);
         try {
+          // make sure we use the plugin classloader for extensions
+          configuration = (Configuration) classLoader.loadClass(
+              configuration.getClass().getName()).newInstance();
           configuration.configure(pc);
+          
//System.out.println(Arrays.toString(((URLClassLoader)classLoader).getURLs()));
           System.out
-          .println("Loading " + name(configuration) + " "
+          .println("Loading Config " + name(configuration) + " "
               + version(configuration) + " took " + secondsSinceString(start)
               + "s");
         }
@@ -168,14 +172,17 @@
         if (initSetting instanceof String
             && initSetting.equals(WorkbenchProperties.ATTR_VALUE_FALSE))
           continue;
-        
+
         monitor.report(LOADING + " " + className);
 
         Class plugInClass = null;
         try {
           long start = secondsSince(0);
-          plugInClass = Class.forName(className);
+
+          // make sure we use the plugin classloader for plugins
+          plugInClass = classLoader.loadClass(className);
           PlugIn plugIn = (PlugIn) plugInClass.newInstance();
+
           plugIn.initialize(pc);
           
           // get plugin's menu settings
@@ -220,8 +227,8 @@
               .getWorkbench()
               .getFrame()
               .log(
-                  "Loading " + className + " took " + secondsSinceString(start)
-                      + "s");
+                  "Loading Plugin " + className + " took " + 
secondsSinceString(start)
+                      + "s " );
           
         } catch (Throwable e) {
           context.getErrorHandler().handleThrowable(e);
@@ -256,6 +263,13 @@
         return "";
     }
 
+    public static String message(Configuration configuration) {
+      if (configuration instanceof Extension) {
+          return ((Extension) configuration).getMessage();
+      }
+      return "";
+  }
+
     /**
      * filter all Configurations from a list of Class objects
      * @param classes

Modified: 
core/trunk/src/com/vividsolutions/jump/workbench/ui/ExtensionsAboutPanel.java
===================================================================
--- 
core/trunk/src/com/vividsolutions/jump/workbench/ui/ExtensionsAboutPanel.java   
    2015-12-03 12:43:38 UTC (rev 4557)
+++ 
core/trunk/src/com/vividsolutions/jump/workbench/ui/ExtensionsAboutPanel.java   
    2015-12-03 17:26:12 UTC (rev 4558)
@@ -65,11 +65,13 @@
         // user extensions
         for (Iterator i = plugInManager.getConfigurations().iterator(); 
i.hasNext();) {
             Configuration configuration = (Configuration) i.next();
+            String msg = PlugInManager.message(configuration);
             sb.append(
                 "<b>"
                     + GUIUtil.escapeHTML(PlugInManager.name(configuration), 
false, false)
                     + "</b> "
                     + GUIUtil.escapeHTML(PlugInManager.version(configuration), 
false, false)
+                    + GUIUtil.escapeHTML(!msg.isEmpty()?" -> "+msg:"", false, 
false)
                     + "<br>");
         }
         sb.append("</body></html>");

Modified: core/trunk/src/de/latlon/deejump/wfs/WFSExtension.java
===================================================================
--- core/trunk/src/de/latlon/deejump/wfs/WFSExtension.java      2015-12-03 
12:43:38 UTC (rev 4557)
+++ core/trunk/src/de/latlon/deejump/wfs/WFSExtension.java      2015-12-03 
17:26:12 UTC (rev 4558)
@@ -8,8 +8,6 @@
  */
 package de.latlon.deejump.wfs;
 
-import org.python.modules.thread;
-
 import com.vividsolutions.jump.workbench.plugin.Extension;
 import com.vividsolutions.jump.workbench.plugin.PlugInContext;
 
@@ -23,21 +21,34 @@
  * 
  */
 public class WFSExtension extends Extension {
+  private static String msg = "Disabled because deegree2-core is missing. Try 
OJ PLUS!";
+  private static boolean disabled = false;
+  
+  public String getName() {
+    return "WFS(-T) 1.0/1.1 Extension (Lat/Lon)";
+  }
 
-    public void configure( PlugInContext context )
-                            throws Exception {
-      // only install WFS in PLUS, where the lib/wfs.plus/*.jar are packaged in
-      try {
-        Class.forName("org.deegree.ogcwebservices.wfs.WFService", false,
-            this.getClass().getClassLoader());
-      } catch (ClassNotFoundException e) {
-        context.getWorkbenchFrame().log(
-            "WFS extension disabled because deegree2-core is missing.");
-        return;
-      }
+  public String getVersion() {
+    return "1.1.1 (22.12.2014)";
+  }
 
-      new WFSPlugIn().initialize(context);
-      new UpdateWFSLayerPlugIn().initialize(context);
+  public String getMessage() {
+    return disabled ? msg : "";
+  }
+
+  public void configure(PlugInContext context) throws Exception {
+    // only install WFS in PLUS, where the lib/wfs.plus/*.jar are packaged in
+    try {
+      Class.forName("org.deegree.ogcwebservices.wfs.WFService", false, this
+          .getClass().getClassLoader());
+    } catch (ClassNotFoundException e) {
+      disabled = true;
+      context.getWorkbenchFrame().log( msg );
+      return;
     }
 
+    new WFSPlugIn().initialize(context);
+    new UpdateWFSLayerPlugIn().initialize(context);
+  }
+
 }


------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to