瀏覽代碼

embedded nanohttpd

Martin Kunz 5 年之前
父節點
當前提交
91e8b79e50
共有 17 個文件被更改,包括 124 次插入40 次删除
  1. 3 3
      pickorplaceswing.iml
  2. 9 9
      pom.xml
  3. 6 4
      src/main/java/com/ur/urcap/examples/pickorplaceswing/Activator.java
  4. 1 1
      src/main/java/com/ur/urcap/examples/pickorplaceswing/close/GripperCloseProgramNodeContribution.java
  5. 4 4
      src/main/java/com/ur/urcap/examples/pickorplaceswing/close/GripperCloseProgramNodeService.java
  6. 2 2
      src/main/java/com/ur/urcap/examples/pickorplaceswing/close/GripperCloseProgramNodeView.java
  7. 1 1
      src/main/java/com/ur/urcap/examples/pickorplaceswing/open/GripperOpenProgramNodeContribution.java
  8. 4 4
      src/main/java/com/ur/urcap/examples/pickorplaceswing/open/GripperOpenProgramNodeService.java
  9. 2 2
      src/main/java/com/ur/urcap/examples/pickorplaceswing/open/GripperOpenProgramNodeView.java
  10. 3 4
      src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/PickOrPlaceProgramNodeContribution.java
  11. 1 1
      src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/PickOrPlaceProgramNodeService.java
  12. 1 1
      src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/PickOrPlaceProgramNodeView.java
  13. 1 1
      src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/Style.java
  14. 1 1
      src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/TemplateType.java
  15. 1 1
      src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/V3Style.java
  16. 1 1
      src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/V5Style.java
  17. 83 0
      src/main/java/at/acdp/urweb/web/WebServer.java

+ 3 - 3
pickorplaceswing.iml

@@ -3,7 +3,7 @@
   <component name="ExternalSystem" externalSystem="Maven" />
   <component name="FacetManager">
     <facet type="Osmorc" name="OSGi">
-      <configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="urweb-1.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="com.ur.urcap.examples.pickorplaceswing.Activator" bundleSymbolicName="at.acdp.urweb" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
+      <configuration manifestGenerationMode="OsmorcControlled" manifestLocation="" jarfileLocation="urweb-1.0-SNAPSHOT.jar" outputPathType="CompilerOutputPath" bndFileLocation="" bundlorFileLocation="" bundleActivator="at.acdp.urweb.Activator" bundleSymbolicName="at.acdp.urweb" bundleVersion="1.0.0.SNAPSHOT" ignoreFilePattern="" useProjectDefaultManifestFileLocation="true" alwaysRebuildBundleJAR="false" doNotSynchronizeWithMaven="false">
         <additionalProperties>
           <property key="Bundle-Category" value="URCap" />
           <property key="Bundle-Vendor" value="cdp" />
@@ -12,8 +12,9 @@
           <property key="Bundle-LicenseType" value="Commercial" />
           <property key="Bundle-Description" value="urweb description" />
           <property key="Import-Package" value="com.ur.urcap.api*;version=&quot;[1.3.0,2.0.0)&quot;,*" />
+          <property key="Embed-Dependency" value="*;scope=compile;type=!pom;inline=true" />
           <property key="Bundle-Name" value="urweb" />
-          <property key="Include-Resource" value="META-INF/LICENSE=$MODULE_DIR$/src/main/resources/META-INF/LICENSE" />
+          <property key="Include-Resource" value="@$MAVEN_REPOSITORY$/org/nanohttpd/nanohttpd/2.3.2-SNAPSHOT/nanohttpd-2.3.2-SNAPSHOT.jar" />
         </additionalProperties>
         <additionalJARContents />
       </configuration>
@@ -29,7 +30,6 @@
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" name="Maven: org.osgi:org.osgi.core:4.3.0" level="project" />
     <orderEntry type="library" scope="PROVIDED" name="Maven: com.ur.urcap:api:1.3.0" level="project" />
     <orderEntry type="library" name="Maven: org.nanohttpd:nanohttpd:2.3.2-SNAPSHOT" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.3.1" level="project" />

+ 9 - 9
pom.xml

@@ -4,7 +4,6 @@
 		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
 	<modelVersion>4.0.0</modelVersion>
-
 	<groupId>at.acdp.urweb</groupId>
 	<artifactId>urweb</artifactId>
 	<version>1.0-SNAPSHOT</version>
@@ -39,6 +38,11 @@
 		<ursimvm.install.host></ursimvm.install.host>
 		<ursimvm.install.username>ur</ursimvm.install.username>
 		<ursimvm.install.password>easybot</ursimvm.install.password>
+
+
+		<embed-dep>*;scope=compile;type=!pom;inline=true</embed-dep>
+		<unpack-bundle>false</unpack-bundle>
+
 	</properties>
 
 	<build>
@@ -83,7 +87,7 @@
 					<instructions>
 						<!--********** DO NOT MODIFY THE ENTRIES OF THIS SECTION **********-->
 						<Bundle-Category>URCap</Bundle-Category>
-						<Bundle-Activator>com.ur.urcap.examples.pickorplaceswing.Activator</Bundle-Activator>
+						<Bundle-Activator>at.acdp.urweb.Activator</Bundle-Activator>
 						<Bundle-Vendor>${urcap.vendor}</Bundle-Vendor>
 						<Bundle-ContactAddress>${urcap.contactAddress}</Bundle-ContactAddress>
 						<Bundle-Copyright>${urcap.copyright}</Bundle-Copyright>
@@ -94,6 +98,7 @@
 							com.ur.urcap.api*;version="[1.3.0,2.0.0)",
 							*
 						</Import-Package>
+						<Embed-Dependency>*;scope=compile;type=!pom;inline=true</Embed-Dependency>
 					</instructions>
 				</configuration>
 			</plugin>
@@ -110,8 +115,8 @@
 						<configuration>
 							<tasks>
 								<echo message="Pushing to host..." />
-								<scp file="target/${project.build.finalName}.jar" port="2222" trust="true"
-									 todir="ur:easybot@127.0.0.1:/home/ur"/>
+								<scp file="target/${project.build.finalName}.jar" port="22" trust="true"
+									 todir="root:easybot@192.168.20.130:/programs/urweb.urcap"/>
 							</tasks>
 						</configuration>
 					</execution>
@@ -187,11 +192,6 @@
 	</build>
 
 	<dependencies>
-		<dependency>
-			<groupId>org.osgi</groupId>
-			<artifactId>org.osgi.core</artifactId>
-			<version>4.3.0</version>
-		</dependency>
 
 		<dependency>
 			<groupId>com.ur.urcap</groupId>

+ 6 - 4
src/main/java/com/ur/urcap/examples/pickorplaceswing/Activator.java

@@ -1,12 +1,13 @@
-package com.ur.urcap.examples.pickorplaceswing;
+package at.acdp.urweb;
 
+import at.acdp.urweb.close.GripperCloseProgramNodeService;
+import at.acdp.urweb.open.GripperOpenProgramNodeService;
+import at.acdp.urweb.pickorplace.PickOrPlaceProgramNodeService;
+import at.acdp.urweb.web.WebServer;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 
 import com.ur.urcap.api.contribution.program.swing.SwingProgramNodeService;
-import com.ur.urcap.examples.pickorplaceswing.close.GripperCloseProgramNodeService;
-import com.ur.urcap.examples.pickorplaceswing.open.GripperOpenProgramNodeService;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.PickOrPlaceProgramNodeService;
 
 public class Activator implements BundleActivator {
 
@@ -15,6 +16,7 @@ public class Activator implements BundleActivator {
 		context.registerService(SwingProgramNodeService.class, new PickOrPlaceProgramNodeService(), null);
 		context.registerService(SwingProgramNodeService.class, new GripperOpenProgramNodeService(), null);
 		context.registerService(SwingProgramNodeService.class, new GripperCloseProgramNodeService(), null);
+		new WebServer().start();
 	}
 
 	@Override

+ 1 - 1
src/main/java/com/ur/urcap/examples/pickorplaceswing/close/GripperCloseProgramNodeContribution.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.close;
+package at.acdp.urweb.close;
 
 import com.ur.urcap.api.contribution.ProgramNodeContribution;
 import com.ur.urcap.api.contribution.program.ProgramAPIProvider;

+ 4 - 4
src/main/java/com/ur/urcap/examples/pickorplaceswing/close/GripperCloseProgramNodeService.java

@@ -1,7 +1,10 @@
-package com.ur.urcap.examples.pickorplaceswing.close;
+package at.acdp.urweb.close;
 
 import java.util.Locale;
 
+import at.acdp.urweb.pickorplace.Style;
+import at.acdp.urweb.pickorplace.V3Style;
+import at.acdp.urweb.pickorplace.V5Style;
 import com.ur.urcap.api.contribution.ViewAPIProvider;
 import com.ur.urcap.api.contribution.program.ContributionConfiguration;
 import com.ur.urcap.api.contribution.program.CreationContext;
@@ -9,9 +12,6 @@ import com.ur.urcap.api.contribution.program.ProgramAPIProvider;
 import com.ur.urcap.api.contribution.program.swing.SwingProgramNodeService;
 import com.ur.urcap.api.domain.SystemAPI;
 import com.ur.urcap.api.domain.data.DataModel;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.Style;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.V3Style;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.V5Style;
 
 public class GripperCloseProgramNodeService
 		implements SwingProgramNodeService<GripperCloseProgramNodeContribution, GripperCloseProgramNodeView> {

+ 2 - 2
src/main/java/com/ur/urcap/examples/pickorplaceswing/close/GripperCloseProgramNodeView.java

@@ -1,11 +1,11 @@
-package com.ur.urcap.examples.pickorplaceswing.close;
+package at.acdp.urweb.close;
 
 import javax.swing.BoxLayout;
 import javax.swing.JPanel;
 
+import at.acdp.urweb.pickorplace.Style;
 import com.ur.urcap.api.contribution.ContributionProvider;
 import com.ur.urcap.api.contribution.program.swing.SwingProgramNodeView;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.Style;
 
 public class GripperCloseProgramNodeView implements SwingProgramNodeView<GripperCloseProgramNodeContribution> {
 

+ 1 - 1
src/main/java/com/ur/urcap/examples/pickorplaceswing/open/GripperOpenProgramNodeContribution.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.open;
+package at.acdp.urweb.open;
 
 import com.ur.urcap.api.contribution.ProgramNodeContribution;
 import com.ur.urcap.api.contribution.program.ProgramAPIProvider;

+ 4 - 4
src/main/java/com/ur/urcap/examples/pickorplaceswing/open/GripperOpenProgramNodeService.java

@@ -1,7 +1,10 @@
-package com.ur.urcap.examples.pickorplaceswing.open;
+package at.acdp.urweb.open;
 
 import java.util.Locale;
 
+import at.acdp.urweb.pickorplace.Style;
+import at.acdp.urweb.pickorplace.V3Style;
+import at.acdp.urweb.pickorplace.V5Style;
 import com.ur.urcap.api.contribution.ViewAPIProvider;
 import com.ur.urcap.api.contribution.program.ContributionConfiguration;
 import com.ur.urcap.api.contribution.program.CreationContext;
@@ -9,9 +12,6 @@ import com.ur.urcap.api.contribution.program.ProgramAPIProvider;
 import com.ur.urcap.api.contribution.program.swing.SwingProgramNodeService;
 import com.ur.urcap.api.domain.SystemAPI;
 import com.ur.urcap.api.domain.data.DataModel;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.Style;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.V3Style;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.V5Style;
 
 public class GripperOpenProgramNodeService
 		implements SwingProgramNodeService<GripperOpenProgramNodeContribution, GripperOpenProgramNodeView> {

+ 2 - 2
src/main/java/com/ur/urcap/examples/pickorplaceswing/open/GripperOpenProgramNodeView.java

@@ -1,11 +1,11 @@
-package com.ur.urcap.examples.pickorplaceswing.open;
+package at.acdp.urweb.open;
 
 import javax.swing.BoxLayout;
 import javax.swing.JPanel;
 
+import at.acdp.urweb.pickorplace.Style;
 import com.ur.urcap.api.contribution.ContributionProvider;
 import com.ur.urcap.api.contribution.program.swing.SwingProgramNodeView;
-import com.ur.urcap.examples.pickorplaceswing.pickorplace.Style;
 
 public class GripperOpenProgramNodeView implements SwingProgramNodeView<GripperOpenProgramNodeContribution> {
 

+ 3 - 4
src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/PickOrPlaceProgramNodeContribution.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.pickorplace;
+package at.acdp.urweb.pickorplace;
 
 import com.ur.urcap.api.contribution.ProgramNodeContribution;
 import com.ur.urcap.api.contribution.program.CreationContext;
@@ -12,8 +12,8 @@ import com.ur.urcap.api.domain.program.structure.TreeNode;
 import com.ur.urcap.api.domain.program.structure.TreeStructureException;
 import com.ur.urcap.api.domain.script.ScriptWriter;
 import com.ur.urcap.api.domain.undoredo.UndoableChanges;
-import com.ur.urcap.examples.pickorplaceswing.close.GripperCloseProgramNodeService;
-import com.ur.urcap.examples.pickorplaceswing.open.GripperOpenProgramNodeService;
+import at.acdp.urweb.close.GripperCloseProgramNodeService;
+import at.acdp.urweb.open.GripperOpenProgramNodeService;
 
 public class PickOrPlaceProgramNodeContribution implements ProgramNodeContribution {
 
@@ -129,7 +129,6 @@ public class PickOrPlaceProgramNodeContribution implements ProgramNodeContributi
 		TreeNode root = programModel.getRootTreeNode(this);
 		try {
 			root.addChild(nf.createMoveNode());
-
 			addGripper(template, root, nf);
 
 			TreeNode folderRetract = root.addChild(nf.createFolderNode());

+ 1 - 1
src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/PickOrPlaceProgramNodeService.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.pickorplace;
+package at.acdp.urweb.pickorplace;
 
 import java.util.Locale;
 

+ 1 - 1
src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/PickOrPlaceProgramNodeView.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.pickorplace;
+package at.acdp.urweb.pickorplace;
 
 import java.awt.*;
 import java.awt.event.ActionEvent;

+ 1 - 1
src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/Style.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.pickorplace;
+package at.acdp.urweb.pickorplace;
 
 import javax.swing.*;
 import java.awt.*;

+ 1 - 1
src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/TemplateType.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.pickorplace;
+package at.acdp.urweb.pickorplace;
 
 public enum TemplateType {
 

+ 1 - 1
src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/V3Style.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.pickorplace;
+package at.acdp.urweb.pickorplace;
 
 public class V3Style extends Style {
 

+ 1 - 1
src/main/java/com/ur/urcap/examples/pickorplaceswing/pickorplace/V5Style.java

@@ -1,4 +1,4 @@
-package com.ur.urcap.examples.pickorplaceswing.pickorplace;
+package at.acdp.urweb.pickorplace;
 
 public class V5Style extends Style {
 

+ 83 - 0
src/main/java/at/acdp/urweb/web/WebServer.java

@@ -0,0 +1,83 @@
+package at.acdp.urweb.web;
+import org.nanohttpd.protocols.http.IHTTPSession;
+import org.nanohttpd.protocols.http.NanoHTTPD;
+import org.nanohttpd.protocols.http.response.Response;
+import org.nanohttpd.util.ServerRunner;
+
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.nanohttpd.protocols.http.response.Response.newFixedLengthResponse;
+
+public class WebServer extends NanoHTTPD {
+    public WebServer() {
+        super(8080);
+    }
+
+    public static void main(String[] args) {
+        ServerRunner.run(WebServer.class);
+    }
+
+    @Override public Response serve(IHTTPSession session) {
+        Map<String, List<String>> decodedQueryParameters =
+                decodeParameters(session.getQueryParameterString());
+
+        StringBuilder sb = new StringBuilder();
+        sb.append("<html>");
+        sb.append("<head><title>Debug Server</title></head>");
+        sb.append("<body>");
+        sb.append("<h1>Debug Server</h1>");
+
+        sb.append("<p><blockquote><b>URI</b> = ").append(
+                String.valueOf(session.getUri())).append("<br />");
+
+        sb.append("<b>Method</b> = ").append(
+                String.valueOf(session.getMethod())).append("</blockquote></p>");
+
+        sb.append("<h3>Headers</h3><p><blockquote>").
+                append(toString(session.getHeaders())).append("</blockquote></p>");
+
+        sb.append("<h3>Parms</h3><p><blockquote>").
+                append(toString(session.getParms())).append("</blockquote></p>");
+
+        sb.append("<h3>Parms (multi values?)</h3><p><blockquote>").
+                append(toString(decodedQueryParameters)).append("</blockquote></p>");
+
+        try {
+            Map<String, String> files = new HashMap<String, String>();
+            session.parseBody(files);
+            sb.append("<h3>Files</h3><p><blockquote>").
+                    append(toString(files)).append("</blockquote></p>");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        sb.append("</body>");
+        sb.append("</html>");
+        return newFixedLengthResponse(sb.toString());
+    }
+
+    private String toString(Map<String, ? extends Object> map) {
+        if (map.size() == 0) {
+            return "";
+        }
+        return unsortedList(map);
+    }
+
+    private String unsortedList(Map<String, ? extends Object> map) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("<ul>");
+        for (Map.Entry entry : map.entrySet()) {
+            listItem(sb, entry);
+        }
+        sb.append("</ul>");
+        return sb.toString();
+    }
+
+    private void listItem(StringBuilder sb, Map.Entry entry) {
+        sb.append("<li><code><b>").append(entry.getKey()).
+                append("</b> = ").append(entry.getValue()).append("</code></li>");
+    }
+}