lib/catissue/helpers/properties_loader.rb
def infer_classpath
      dir = ENV['CATISSUE_CLIENT_HOME'] || '.'
      logger.info("Inferring the class path from directory #{dir}...")
      # Hunt for the client directories
      clt_dir = client_directory(dir, 'caTissueSuite_Client')
      de_dir = client_directory(dir, 'catissue_de_integration_client')
      dirs = [client_subdirectory(clt_dir, 'conf'),
        client_subdirectory(de_dir, 'conf'),
        client_subdirectory(clt_dir, 'lib'),
        client_subdirectory(de_dir, 'lib')
      ]
      
      # caTissue 1.1.2 has an extra directory.
      clt_lib = File.expand_path('lib', dir)
      dirs << clt_lib if File.directory?(clt_lib)
      
      # Make a semi-colon separated path string.
      path = dirs.join(';')
      logger.info("Inferred the class path #{path}.")
      path
    end
def infer_classpath
      dir = ENV['CATISSUE_CLIENT_HOME'] || '.'
      logger.info("Inferring the class path from directory #{dir}...")
      # Hunt for the client directories
      clt_dir = client_directory(dir, 'caTissueSuite_Client')
      de_dir = client_directory(dir, 'catissue_de_integration_client')
      dirs = [client_subdirectory(clt_dir, 'conf'),
        client_subdirectory(de_dir, 'conf'),
        client_subdirectory(clt_dir, 'lib'),
        client_subdirectory(de_dir, 'lib')
      ]
      
      # caTissue 1.1.2 has an extra directory.
      clt_lib = File.expand_path('lib', dir)
      dirs << clt_lib if File.directory?(clt_lib)
      
      # Make a semi-colon separated path string.
      path = dirs.join(';')
      logger.info("Inferred the class path #{path}.")
      path
    end
def infer_classpath dir = ENV [ 'CATISSUE_CLIENT_HOME' ] || '.' logger . info ( "Inferring the class path from directory #{dir}..." ) # Hunt for the client directories clt_dir = client_directory ( dir , 'caTissueSuite_Client' ) de_dir = client_directory ( dir , 'catissue_de_integration_client' ) dirs = [ client_subdirectory ( clt_dir , 'conf' ) , client_subdirectory ( de_dir , 'conf' ) , client_subdirectory ( clt_dir , 'lib' ) , client_subdirectory ( de_dir , 'lib' ) ] # caTissue 1.1.2 has an extra directory. clt_lib = File . expand_path ( 'lib' , dir ) dirs << clt_lib if File . directory? ( clt_lib ) # Make a semi-colon separated path string. path = dirs . join ( ';' ) logger . info ( "Inferred the class path #{path}." ) path end
@quirk caTissue 1.2 the caTissue API class path is sensitive to order in subtle ways that
   caTissue 1.1.2 is not. The caTissue client +build.xml+ defines a +cp+ classpath
   property which was used to run a caTissue 1.1.1 example.

   However, the example was removed in caTissue 1.1.2. As of 1.1.2, the +cp+ property is no
   longer referenced in the client +build.xml+. Rather, the classpath is defined inline
   in the task with a small but important change: +cp+ placed the config directories
   before the jar files, whereas the inline definition placed the configs after the jars.

   This difference does not present a problem in caTissue 1.1.2, but the confusion was
   carried over to caTissue 1.2 where it does cause a problem. Unlike caTissue 1.1.2,
   in 1.2 the +DynamicExtension.jar+ is redundantly included in both the client and the
   declient lib. Furthermore, +DynamicExtension.jar+ contains an invalid and unnecessary
   +remoteServices.xml+, which references a non-existent +RemoteSDKApplicationService+.

   If the caTissue path is defined with the jars preceding the configs, then in 1.2 an
   obscure +PropertyAccessExceptionsException+ exception is raised indicating that
   +RemoteSDKApplicationService+ is an invalid class name. The cause is the classpath
   precedence of jars prior to configs.

   The caRuby FAQ shows an example +~/.catissue+ +path+ property that was originally
   borrowed from the caTissue 1.1.1 client example. This incorrect precedence was a time
   bomb that exploded in 1.2. This 1.2 regression is now noted in the FAQ.

 @quirk caTissue 1.2 per the caTissue API client Ant build file, the +catissuecore.jar+
   should not be included in the client class path, even though it is in the client lib
   directory.
@quirk caTissue 1 . 2 the caTissue API class path is sensitive to order in subtle ways that caTissue 1 . 1 . 2 is not . The caTissue client + build . xml + defines a + cp + classpath property which was used to run a caTissue 1 . 1 . 1 example .