flipkart-incubator / phantom

Phantom is a high performance proxy for accessing distributed services. It is an RPC system with support for different transports and protocols. Phantom is inspired by Twitter Finagle clients and builds on the capabilities of technologies like Netty, Unix Domain Sockets, Netflix Hystrix and Spring. Phantom proxies have been used to serve several hundred million API calls in production deployments at Flipkart.
50 stars 27 forks source link

Maven build is failing #20

Closed mdykman closed 10 years ago

mdykman commented 10 years ago

It appears to be unable to locate junixsocket which is hosted under Goolge Code.

I do not know maven well; attempts to currect this shortcoming is getting me deeper and deeper.

That library is assiciated with the package: org.newsclub.net.unix

[INFO] Building Netty/UDS 1.2.9-SNAPSHOT ... [INFO] Reactor Summary: [INFO] [INFO] Phantom Full Build ................................ SUCCESS [ 0.284 s] [INFO] Task .............................................. SUCCESS [ 1.784 s] [INFO] Thrift Task ....................................... SUCCESS [ 0.876 s] [INFO] HTTP Task ......................................... SUCCESS [ 0.777 s] [INFO] Phantom Runtime ................................... SUCCESS [ 2.985 s] [INFO] Netty/UDS ......................................... FAILURE [ 0.477 s] [INFO] OIO UDS Server .................................... SKIPPED ... [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project netty-uds: Compilation failure: Compilation failure: [ERROR] /home/mdykman/projects/phantom/netty-uds/src/main/java/com/flipkart/phantom/netty/uds/OioServerSocketPipelineSink.java:[24,28] error: package org.newsclub.net.unix does not exist

regunathb commented 10 years ago

You are correct - we use the junixsocket implementation for Unix Domain Socket (UDS) based access to Phantom. However, this is used/needed only if you go via the "Command" Protocol as described in the Wiki pages. All other protocols/transport work on TCP/IP and you really don't need the UDS library.

However, if you do need UDS support, you will need to download the junixsocket binaries (single jar file) and also the native binary (.so file) and deploy it suitably - to a local Maven repo (such as artifactory).

Btw, if you dont need UDS support, you can use the distribution binaries of Phantom from the Clojars repo and not have to build it. Unless of course you have made code changes to Phantom. Would it be possible for you to elaborate on your usecase for Phantom and I can then suggest something appropriate?

regunathb commented 10 years ago

Btw, there already is a feature/enhancement request for publishing junixsocket binaries on Maven repos :https://code.google.com/p/junixsocket/issues/detail?id=23