Coder Social home page Coder Social logo

p3-proxy's Introduction

P3 Proxy Build Status

An LDP proxy adding the extracting importer API.

Compile and run with

mvn clean install exec:java

You can configure the proxy with the following system properties:

  • proxy.port: specifies the port the proxy should listen to (default: 8181)
  • target.uri: specifies the URI requests should be forwarded to (default: http://localhost:8080)

Example:

mvn -Dtarget.uri=http://fusepool.openlinksw.com/ -Dproxy.port=8080 exec:java

This will start the proxy to listen to port 8080 and forward requests to http://fusepool.openlinksw.com/

As an alternative to running with maven a built exacutable jar can also be used. The jar is located in the target directory and create when building with maven (e.g. mvn install), "--help" shows its usage:

 java -jar proxy-*-jar-with-dependencies.jar --help
 This command has the following arguments: [-T|--target string] [-P|--port int] [-H|--help] 
   -T|--target string   The base URI to which to redirect the requests (hostname is only used to locate target server)
   -P|--port int        The port on which the proxy shall listen
   -H|--help            Show help on command line arguments

p3-proxy's People

Contributors

retog avatar wikier avatar cblakeley avatar

Watchers

 avatar Adrian Gschwend avatar James Cloos avatar Giuliano Mega avatar Milos Jovanovik avatar

Forkers

cblakeley

p3-proxy's Issues

Proxy appears not to forward client supplied Accept header 'as is' to a transformer

If I post to the transforming proxy:

curl -i -H "Content-Type: text/csv" -H "Accept: application/rdf+xml" -H "Slug: acco_150120_6.csv" -X POST --data-binary @accommodations_short_150120_1.csv -X POST http://sandbox.fusepool.info:8181/ldp/virtuoso-csv-transformer

the trace from the fusepool.openlinksw.com console shows
DB.DBA.ldgeneration: received format param: text/turtle
i.e. the originally supplied Accept header isn't received.

Support transforming containers

For transforming containers the transformer should be invoked (if the media-type matches) and the results posted to the same container.

GET request to BatchRefine transformer goes wrong

While debugging fusepoolP3/p3-dashboard#10 we noticed that the request to BatchRefine seems to be wrong. A correct request should look similar to this:

GET /?refinejson=http%3A%2F%2Fsandbox.fusepool.info%3A8181%2Fldp%2Fbla-json.json HTTP/1.1
Accept: text/turtle
Host: sandbox.fusepool.info:8310

while we see it executing:

GET ?refinejson=http%3A%2F%2Fsandbox.fusepool.info%3A8181%2Fldp%2Fbla-json.json HTTP/1.1
Accept: text/turtle
Host: sandbox.fusepool.info:8310

So there is a /missing before the query parameters.

Proxy to accept POSTs to an LPDC with or without the trailing '/'

curl -i -H "Content-Type: text/csv" -H 'Slug:pubs141222_no_trailing_sep' -X POST --data-binary @pubs.csv http://sandbox.fusepool.info:8181/ldp/crawled-1
results in the supplied content being transformed.

curl -i -H "Content-Type: text/csv" -H 'Slug:pubs141222_trailing_sep' -X POST --data-binary @pubs.csv http://sandbox.fusepool.info:8181/ldp/crawled-1/
creates a resource in the LDPC, but the content isn't transformed.

Both these variants return the same description:
curl http://sandbox.fusepool.info:8181/ldp/crawled-1/
curl http://sandbox.fusepool.info:8181/ldp/crawled-1

Could the proxy be made more resilient so that it accepts POSTs to an LPDC with or without the trailing '/' ?

T-LDPC does not convert files

I created a new T-LDPC using the dashboard on playground.fusepool.info. I still have an issue with the URI created from the pipeline UI (fusepoolP3/p3-pipeline-gui#8) so I add the correct URI manually which leads to this TLDP-C:

http://playground.fusepool.info:8181/ldp/dcr/default-configuration/ALOD-BAR-Neu

If I now post a file there via Dashboard UI or via curl I see the CSV-File ending up there. But it never seems to be transformed.

Note that I am using the sandbox UI to make sure I'm on the latest UI code (http://sandbox.fusepool.info:8200/index.html?platformURI=http://playground.fusepool.info/)

Autoconfigure backend

As an optional behavior the proxy should put a file structure to the backend, replacing a placeholder with the name of the host used to access the proxy on the first request.

Rationale: this allows to do an initial configuration when multiple transformer factories are shipped as vm or docker alongside the proxy.

Add tests

Test should be added that test the basic proxing functionality and allow to add tests for additional features.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.