Yes, absoultely Matthieu, I tried this way(adapter.s4r) and can run normally too. Thank you very much your good suggestion.
It would be better if s4r file is bit small(now 8M a bit large), since the build.gradle template import too many s4 dependency jars, so don't sure which jars I can remove? aopalliance-1.0.jar commons-codec-1.4.jar gson-1.6.jar jline-0.9.94.jar minlog-1.2.jar s4-comm-0.6.0-incubating.jar asm-3.1.jar commons-collections-3.2.1.jar guava-13.0.1.jar junit-3.8.1.jar s4-core-0.6.0-incubating.jar asm-4.0.jar commons-configuration-1.6.jar guice-3.0.jar kryo-2.20.jar netty-3.5.11.Final.jar slf4j-api-1.6.4.jar cglib-2.2.1-v20090111.jar commons-digester-1.8.jar guice-assistedinject-3.0.jar log4j-1.2.15.jar objenesis-1.2.jar zkclient-0.1.jar collections-generic-4.01.jar commons-io-2.4.jar javax.inject-1.jar logback-classic-0.9.29.jar zookeeper-3.3.3.jar commons-beanutils-1.7.0.jar commons-lang-2.6.jar jcip-annotations-1.0.jar logback-core-0.9.29.jar reflectasm-1.07-shaded.jar commons-beanutils-core-1.8.0.jar commons-logging-1.1.1.jar jcommander-1.25.jar metrics-core-2.1.3.jar s4-base-0.6.0-incubating.jar /Sky From: Matthieu Morel [mailto:mmo...@apache.org] Sent: Thursday, June 06, 2013 4:11 PM To: s4-user@incubator.apache.org Subject: Re: About Adapter Deployment Again, the "s4 adapter" command is for testing purposes only. Resolving the classpath from the current project is a hack that is only for avoiding deployment and easing testing, that's why it's not suitable for normal deployment. You should follow the usual way to deploy the adapter as an app: "use the packaged adapter app (as .s4r) and deploy it, as in the twitter example." Matthieu On Jun 5, 2013, at 11:04 , Sky Zhao wrote: I tried and got not simple answer: 1. wrap all project classes into one jar 2. rename new classpath.txt(since source folder already has), and add the jar path into class list 3. Check the my project s4 file, the content is /home/notroot/apache-s4-0.6.0-incubating-src/gradlew cp java -cp `cat classpath.txt` org.apache.s4.core.S4Node $@ So only run one command in s4 source folder (replace #@ with -c=cluster2) java -cp `cat classpath_rename.txt` org.apache.s4.core.S4Node -c=cluster2 then works, don't know whether exists better way. /Sky From: Sky Zhao [mailto:sky.z...@ericsson.com] Sent: Wednesday, June 05, 2013 12:16 PM To: s4-user@incubator.apache.org<mailto:s4-user@incubator.apache.org> Subject: About Adapter Deployment S4 Walkthrough page said ./s4 adapter -c=cluster2 The adapter command must be run from the root of your S4 project (myApp dir in our case). I want to deploy adapter for new machine, not development environment, using this above way, I have to copy the many classes to new machine, But if I use simple .s4r file, can it deploy directly ? And how to do this? Or other more simpler way clean deployment for adapter. /Sky