Kirk- rather than have Gradle generate the .idea project files, have you
tried importing the Geode project from existing sources using Gradle the
template?

On Wed, Mar 23, 2016 at 1:28 PM, Kirk Lund <[email protected]> wrote:

> RestAPIsWithSSLDUnitTest passes on the command-line.
>
> When I execute RestAPIsWithSSLDUnitTest in my IntelliJ project, the
> classpath of the test prints out with two versions of httpclient and
> httpcore:
>
> [vm_1]
>
>  
> /Users/klund/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.2.5/666e26e76f2e87d84e4f16acb546481ae1b8e9a6/httpclient-4.2.5.jar
> [vm_1]
>
>  
> /Users/klund/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.2.4/3b7f38df6de5dd8b500e602ae8c2dd5ee446f883/httpcore-4.2.4.jar
> [vm_1]
>
>  
> /Users/klund/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpclient/4.5.1/7e3cecc566df91338c6c67883b89ddd05a17db43/httpclient-4.5.1.jar
> [vm_1]
>
>  
> /Users/klund/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.4.3/e876a79d561e5c6207b78d347e198c8c4531a5e5/httpcore-4.4.3.jar
>
> If you use "./gradlew idea" the resulting module definitions are not
> sufficient (to illustrate, try generating intellij projects for closed+open
> and then try editing and running DUnits in legacyDUnit and both assembly
> projects) and require some manual adjusting which is obviously error prone.
> I'm not an IntelliJ or gradle expert so I doubt that I'll be the one to fix
> this.
>
> Ultimately I'd like to see all of this become easier and simpler. I believe
> too much complexity or difficulty will result in a smaller number of
> contributors. It also results in contributors spending their time with
> gradle or the IDE instead of on geode.
>
> -Kirk
>
>
> On Wed, Mar 23, 2016 at 12:04 PM, Dan Smith <[email protected]> wrote:
>
> > First off, your intellij classpath and gradle classpath are pretty much
> the
> > same. The one exception, I think, is that the test target for
> > geode-assembly sets up a different runtime classpath to point at the
> > bundled product. I didn't set that up, but I think maybe the idea is that
> > we needed some tests of the actual bundled binary? Take a look at
> > geode-assembly/build.gradle. If someone knows how to fix the setup that
> so
> > we still have that test coverage of the bundled product and the tests do
> > work in intellij, please fix it! All of the rest of the tests should be
> > using exactly the same environment on the command line and in the IDE.
> >
> > I'm not sure if this is even your problem Kirk, did you try running from
> > the command line?
> >
> > Second, I don't see anything wrong with having transitive test
> > dependencies. It's a huge pain to track down the transitive dependencies
> > and keep them up to date manually. They aren't hurting you!
> >
> > Regarding John's struggles with dependencies of geode, what we really
> need
> > to do is clean up *product* dependencies of geode core - we're pulling in
> > all sorts of stuff for gfsh, pulse, the REST API, etc. GEODE-818 is all
> > about cleaning that up. I was hoping to take up GEODE-1072 (remove HDFS
> > code) when I get a chance. If you want to clean up the dependencies
> please
> > chip in and take on some of those subtasks, the sooner the better!
> >
> > -Dan
> >
> > On Wed, Mar 23, 2016 at 11:34 AM, John Blum <[email protected]> wrote:
> >
> > > If you created the IntelliJ IDEA project from the Gradle build, then it
> > is
> > > Geode's Gradle build scripts that are specifying the dependencies and
> > thus
> > > the Gradle build scripts are wrong.  In Maven, you can declare a
> > > dependencyManagement section (along with exclusions) to manage
> transitive
> > > dependencies.  I don't recall what the equivalent is in Gradle for
> > > dependencyManagement.
> > >
> > > On Wed, Mar 23, 2016 at 11:24 AM, Kirk Lund <[email protected]> wrote:
> > >
> > > > I think that maybe we don't want to continue with transitive
> > dependencies
> > > > enabled for testing. If we turn that off then we go back to having to
> > > > specify all versions even runtime test dependencies right? Are there
> > any
> > > > valid arguments for keeping transitive dependencies enabled for
> > testing?
> > > >
> > > > Also, why would my intellij dependencies be different from gradle
> > > > command-line? The one was built from the *.gradle files in geode. If
> > > > intellij's gradle picks up multiple versions of libraries, then I
> think
> > > > that still means something isn't right in our *.gradle files.
> > > >
> > > > Not that I want to see test failures... BUT, I want to spend my time
> > > > diagnosing test failures instead of dealing with gradle and
> dependency
> > > > versioning and wondering why intellij is picking up 2 versions of
> jna,
> > 3
> > > > versions of apache http, etc.
> > > >
> > > > -Kirk
> > > >
> > > >
> > > > On Wed, Mar 23, 2016 at 11:04 AM, John Blum <[email protected]>
> wrote:
> > > >
> > > > > In a nutshell, you want the dependencies and all the transitive
> > > > > dependencies versions to agree, otherwise conflicts like what Kirk
> > > > > experienced, as well as what I experienced while integrating Apache
> > > Geode
> > > > > support into Spring Session, will occur, and users will have
> problems
> > > > using
> > > > > Geode in different contexts (e.g. App Server containers for Session
> > > > > management)
> > > > >
> > > > > Letting transitive dependencies of Geode (i.e. sub-projects)
> dictate
> > > > > dependency versions is NOT right and recipe for disaster.  Also,
> you
> > > are
> > > > > not testing the dependencies, you are testing Geode with the
> > > > dependencies.
> > > > >
> > > > >
> > > > > On Wed, Mar 23, 2016 at 10:48 AM, Dan Smith <[email protected]>
> > wrote:
> > > > >
> > > > > > As far as the multiple versions of httpclient, I only see that
> > > > dependency
> > > > > > showing up in the test dependencies. Different sub projects have
> > > > > different
> > > > > > test dependencies, which are transitively pulling in different
> > > versions
> > > > > of
> > > > > > this jar.
> > > > > >
> > > > > > We can certainly force a version across all of the different
> > projects
> > > > in
> > > > > > dependency-resolution.gradle. But I think given these are
> different
> > > > > > projects with different test dependencies we should just let them
> > > pull
> > > > in
> > > > > > whatever test dependencies they need.
> > > > > >
> > > > > >
> > > > > > > ./gradlew geode-core:dependencyInsight --dependency httpclient
> > > > > > --configuration testRuntime
> > > > > > Picked up JAVA_TOOL_OPTIONS:
> > > > > > :geode-core:dependencyInsight
> > > > > > org.apache.httpcomponents:httpclient:4.2.5
> > > > > > \--- org.apache.hadoop:hadoop-auth:2.4.1
> > > > > >      \--- testRuntime
> > > > > >
> > > > > >
> > > > > >
> > > > > > > ./gradlew geode-pulse:dependencyInsight --dependency httpclient
> > > > > > --configuration testRuntime
> > > > > > Picked up JAVA_TOOL_OPTIONS:
> > > > > > :geode-pulse:dependencyInsight
> > > > > > org.apache.httpcomponents:httpclient:4.5.1
> > > > > > +--- org.seleniumhq.selenium:selenium-api:2.52.0
> > > > > > |    +--- testRuntime
> > > > > > |    \--- org.seleniumhq.selenium:selenium-remote-driver:2.52.0
> > > > > > |         +--- testRuntime
> > > > > > |         +---
> > org.seleniumhq.selenium:selenium-firefox-driver:2.52.0
> > > > > > |         |    \--- testRuntime
> > > > > > |         \--- org.seleniumhq.selenium:selenium-support:2.52.0
> > > > > > |              \--- testRuntime
> > > > > > \--- org.seleniumhq.selenium:selenium-remote-driver:2.52.0 (*)
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Wed, Mar 23, 2016 at 10:27 AM, Dan Smith <[email protected]>
> > > wrote:
> > > > > >
> > > > > > > The tests in that geode-assembly project are supposed to run on
> > the
> > > > > > binary
> > > > > > > assembly of the project, so I think the classpath when run from
> > the
> > > > > > command
> > > > > > > line might be a bit different than what you get in intellij. I
> > > think
> > > > > the
> > > > > > > command line classpath just points at geode-dependencies.jar.
> > > > > > >
> > > > > > > -Dan
> > > > > > >
> > > > > > >
> > > > > > > On Wed, Mar 23, 2016 at 10:01 AM, Kirk Lund <[email protected]>
> > > > wrote:
> > > > > > >
> > > > > > >> So as I look at dependencies, I see that our gradle build is
> > > > > ultimately
> > > > > > >> depending on multiple versions of the same libraries. Can't we
> > > clean
> > > > > > this
> > > > > > >> up?
> > > > > > >>
> > > > > > >> org.apache.httpcomponents:httpclient:4.2.5
> > > > > > >> org.apache.httpcomponents:httpclient:4.3.3
> > > > > > >> org.apache.httpcomponents:httpclient:4.5.1
> > > > > > >>
> > > > > > >> I really don't want multiple versions of anything in this
> > project.
> > > > Are
> > > > > > we
> > > > > > >> not using gradle correctly?
> > > > > > >>
> > > > > > >> -Kirk
> > > > > > >>
> > > > > > >>
> > > > > > >> On Wed, Mar 23, 2016 at 9:23 AM, Kirk Lund <[email protected]>
> > > > wrote:
> > > > > > >>
> > > > > > >> > RestAPIsWithSSLDUnitTest failed in the nightly build.
> Failure
> > > > stack
> > > > > is
> > > > > > >> > below. I tried running this test by itself in intellij and
> it
> > > > fails
> > > > > > >> with "java.lang.NoSuchFieldError:
> > > > > > >> > INSTANCE" from "at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)".
> > > > > > >> > I posted that failure stack below as well.
> > > > > > >> >
> > > > > > >> > Any ideas what the NoSuckFieldError is about?
> > > > > > >> >
> > > > > > >> > :geode-assembly:distributedTest
> > > > > > >> >
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> com.gemstone.gemfire.rest.internal.web.controllers.RestAPIsWithSSLDUnitTest
> > > > > > >> > > testMutualAuthentication FAILED
> > > > > > >> >     java.lang.RuntimeException: unexpected exception
> > > > > > >> >         at
> com.gemstone.gemfire.rest.internal.web.controllers.
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> RestAPIsWithSSLDUnitTest.validateConnection(RestAPIsWithSSLDUnitTest.java:
> > > > > > >> > 495)
> > > > > > >> >         at
> com.gemstone.gemfire.rest.internal.web.controllers.
> > > > > > >> > RestAPIsWithSSLDUnitTest.testMutualAuthentication(
> > > > > > >> > RestAPIsWithSSLDUnitTest.java:648)
> > > > > > >> >
> > > > > > >> >         Caused by:
> > > > > > >> >         javax.net.ssl.SSLHandshakeException: Remote host
> > closed
> > > > > > >> > connection during handshake
> > > > > > >> >             at sun.security.ssl.SSLSocketImpl.readRecord(
> > > > > > >> > SSLSocketImpl.java:992)
> > > > > > >> >             at sun.security.ssl.SSLSocketImpl.waitForClose(
> > > > > > >> > SSLSocketImpl.java:1769)
> > > > > > >> >             at sun.security.ssl.HandshakeOutStream.flush(
> > > > > > >> > HandshakeOutStream.java:124)
> > > > > > >> >             at
> > sun.security.ssl.Handshaker.sendChangeCipherSpec(
> > > > > > >> > Handshaker.java:1083)
> > > > > > >> >             at sun.security.ssl.ClientHandshaker.
> > > > > > >> > sendChangeCipherAndFinish(ClientHandshaker.java:1222)
> > > > > > >> >             at
> > > sun.security.ssl.ClientHandshaker.serverHelloDone(
> > > > > > >> > ClientHandshaker.java:1134)
> > > > > > >> >             at
> > sun.security.ssl.ClientHandshaker.processMessage(
> > > > > > >> > ClientHandshaker.java:348)
> > > > > > >> >             at
> > > > > > sun.security.ssl.Handshaker.processLoop(Handshaker.java:
> > > > > > >> > 979)
> > > > > > >> >             at
> > > > > sun.security.ssl.Handshaker.process_record(Handshaker.
> > > > > > >> > java:914)
> > > > > > >> >             at sun.security.ssl.SSLSocketImpl.readRecord(
> > > > > > >> > SSLSocketImpl.java:1062)
> > > > > > >> >             at
> > > > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> > > > > > >> > SSLSocketImpl.java:1375)
> > > > > > >> >             at
> sun.security.ssl.SSLSocketImpl.startHandshake(
> > > > > > >> > SSLSocketImpl.java:1403)
> > > > > > >> >             at
> sun.security.ssl.SSLSocketImpl.startHandshake(
> > > > > > >> > SSLSocketImpl.java:1387)
> > > > > > >> >             at
> > > > org.apache.http.conn.ssl.SSLConnectionSocketFactory.
> > > > > > >> > createLayeredSocket(SSLConnectionSocketFactory.java:394)
> > > > > > >> >             at
> > > > org.apache.http.conn.ssl.SSLConnectionSocketFactory.
> > > > > > >> > connectSocket(SSLConnectionSocketFactory.java:353)
> > > > > > >> >             at
> > > > > > org.apache.http.impl.conn.DefaultHttpClientConnectionOpe
> > > > > > >> > rator.connect(DefaultHttpClientConnectionOperator.java:134)
> > > > > > >> >             at
> > > > > > org.apache.http.impl.conn.PoolingHttpClientConnectionMan
> > > > > > >> > ager.connect(PoolingHttpClientConnectionManager.java:353)
> > > > > > >> >             at
> org.apache.http.impl.execchain.MainClientExec.
> > > > > > >> > establishRoute(MainClientExec.java:380)
> > > > > > >> >             at
> org.apache.http.impl.execchain.MainClientExec.
> > > > > > >> > execute(MainClientExec.java:236)
> > > > > > >> >             at org.apache.http.impl.execchain.ProtocolExec.
> > > > > > >> > execute(ProtocolExec.java:184)
> > > > > > >> >             at
> > org.apache.http.impl.execchain.RetryExec.execute(
> > > > > > >> > RetryExec.java:88)
> > > > > > >> >             at org.apache.http.impl.execchain.RedirectExec.
> > > > > > >> > execute(RedirectExec.java:110)
> > > > > > >> >             at
> > > > > > org.apache.http.impl.client.InternalHttpClient.doExecute(
> > > > > > >> > InternalHttpClient.java:184)
> > > > > > >> >             at
> > > > > > org.apache.http.impl.client.CloseableHttpClient.execute(
> > > > > > >> > CloseableHttpClient.java:82)
> > > > > > >> >             at
> > > > > > org.apache.http.impl.client.CloseableHttpClient.execute(
> > > > > > >> > CloseableHttpClient.java:107)
> > > > > > >> >             at
> > > com.gemstone.gemfire.rest.internal.web.controllers.
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> RestAPIsWithSSLDUnitTest.validateConnection(RestAPIsWithSSLDUnitTest.java:
> > > > > > >> > 474)
> > > > > > >> >             ... 1 more
> > > > > > >> >
> > > > > > >> >             Caused by:
> > > > > > >> >             java.io.EOFException: SSL peer shut down
> > incorrectly
> > > > > > >> >                 at
> > > > > > >> sun.security.ssl.InputRecord.read(InputRecord.java:505)
> > > > > > >> >                 at
> sun.security.ssl.SSLSocketImpl.readRecord(
> > > > > > >> > SSLSocketImpl.java:973)
> > > > > > >> >                 ... 26 more
> > > > > > >> >
> > > > > > >> > java.lang.NoSuchFieldError: INSTANCE
> > > > > > >> >
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:72)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:84)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<clinit>(ManagedHttpClientConnectionFactory.java:59)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:487)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:147)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:136)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:112)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:726)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> com.gemstone.gemfire.rest.internal.web.controllers.RestAPIsWithSSLDUnitTest.getSSLBasedHTTPClient(RestAPIsWithSSLDUnitTest.java:458)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> com.gemstone.gemfire.rest.internal.web.controllers.RestAPIsWithSSLDUnitTest.validateConnection(RestAPIsWithSSLDUnitTest.java:473)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> com.gemstone.gemfire.rest.internal.web.controllers.RestAPIsWithSSLDUnitTest.testSSLWithoutKeyStoreType(RestAPIsWithSSLDUnitTest.java:522)
> > > > > > >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > > > > >> > at java.lang.reflect.Method.invoke(Method.java:497)
> > > > > > >> > at junit.framework.TestCase.runTest(TestCase.java:176)
> > > > > > >> > at junit.framework.TestCase.runBare(TestCase.java:141)
> > > > > > >> > at junit.framework.TestResult$1.protect(TestResult.java:122)
> > > > > > >> > at
> > junit.framework.TestResult.runProtected(TestResult.java:142)
> > > > > > >> > at junit.framework.TestResult.run(TestResult.java:125)
> > > > > > >> > at junit.framework.TestCase.run(TestCase.java:129)
> > > > > > >> > at junit.framework.TestSuite.runTest(TestSuite.java:252)
> > > > > > >> > at junit.framework.TestSuite.run(TestSuite.java:247)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
> > > > > > >> > at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
> > > > > > >> > at
> > > > > > >>
> > > > >
> > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
> > > > > > >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> > > > > > >> > at
> > > > > > >> >
> > > > > > >>
> > > > > >
> > > > >
> > > >
> > >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > > > > > >> > at java.lang.reflect.Method.invoke(Method.java:497)
> > > > > > >> > at
> > > > > >
> > com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
> > > > > > >> >
> > > > > > >> >
> > > > > > >>
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > -John
> > > > > 503-504-8657
> > > > > john.blum10101 (skype)
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > -John
> > > 503-504-8657
> > > john.blum10101 (skype)
> > >
> >
>



-- 
-John
503-504-8657
john.blum10101 (skype)

Reply via email to