lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Gainty <>
Subject RE: ant idea and IntelliJ 15
Date Wed, 24 Feb 2016 21:18:58 GMT

Date: Wed, 24 Feb 2016 07:26:18 -0600
Subject: Re: ant idea and IntelliJ 15

On Wed, Feb 24, 2016 at 3:47 AM, Jan H√łydahl <> wrote:
Not sure if the problem started after I upgraded to IntelliJ 15 or after we switched to git
or what. Others having the same issues?
I haven't had any issues using IntellJ 14, 15 or 16 EAP with lucene-solr before or after switching
to Git. I've cloned and cleaned out the IntelliJ settings multiple times and haven't had any
issues opening the project in IntelliJ after doing "ant idea".
Kevin Risden
Hadoop Tech Lead | Avalon Consulting, LLCM: 732 213 8417LinkedIn | Google+ | Twitter

MG>Kevin..would you know of a GIT macrodef which can sub for build.xml svn-checker macrodef?
 <macrodef xmlns:ivy="antlib:org.apache.ivy.ant" name="svn-checker">    <attribute
name="failonmodifications" default="true"/> <!-- false if file modifications are allowed
-->    <sequential>      <ivy:cachepath organisation="org.tmatesoft.svnkit" module="svnkit"
revision="${svnkit.version}"        inline="true" conf="default" transitive="true" pathid="svnkit.classpath"/>
     <local name="svn.checkprops.failed"/>      <local name="svn.unversioned.failed"/>
     <local name="svn.keywords.failed"/>      <local name="svn.changed.failed"/>
     <groovy taskname="svn" classpathref="svnkit.classpath"><![CDATA[        import
org.tmatesoft.svn.core.*;        import org.tmatesoft.svn.core.wc.*;        import;
               SVNClientManager manager = SVNClientManager.newInstance();        SVNStatusClient
statusClient = manager.getStatusClient();        SVNWCClient wcClient = manager.getWCClient();
               File basedir = new File(properties['basedir']).getAbsoluteFile();        int
baseLen = basedir.toString().length();
        // do some fake check, to verify if this is valid SVN working copy. If this fails
ignore checks but log some useful message.        task.log('Initializing working copy...');
       try {          wcClient.doInfo(basedir, SVNRevision.WORKING);        } catch (SVNException
ex) {          def ec = ex.getErrorMessage().getErrorCode();          int code = ec.getCode();
         int category = ec.getCategory();          if (code == SVNErrorCode.WC_NOT_DIRECTORY.getCode()
|| code == SVNErrorCode.WC_NOT_FILE.getCode()) {            task.log('WARNING: Development
directory is not an SVN checkout! Disabling checks...', Project.MSG_WARN);            return;
         } else if (category == SVNErrorCode.WC_CATEGORY) {            task.log('WARNING:
Development directory is not a valid SVN checkout (' + ex.getErrorMessage() + '). Disabling
checks...', Project.MSG_WARN);            return;          } else {            throw ex; 
        }        }                def convertRelative = {          file -> '.' + file.getAbsolutePath().substring(baseLen).replace(File.separatorChar,
(char)'/');        }
        Set missingProps = new TreeSet(), withKeywords = new TreeSet(), unversioned = new
TreeSet(), changed = new TreeSet();
        task.log('Getting all versioned and unversioned files...');        statusClient.doStatus(basedir,
SVNRevision.WORKING, SVNDepth.fromRecurse(true), false, true, false, false, {          status
->          SVNStatusType nodeStatus = status.getNodeStatus();          if (nodeStatus
== SVNStatusType.STATUS_UNVERSIONED || nodeStatus == SVNStatusType.STATUS_MISSING) {     
      unversioned.add(convertRelative(status.getFile()));          } else if (status.getKind()
== SVNNodeKind.FILE && nodeStatus != SVNStatusType.STATUS_DELETED) {            missingProps.add(convertRelative(status.getFile()));
         }          if (nodeStatus == SVNStatusType.STATUS_MODIFIED || nodeStatus == SVNStatusType.STATUS_REPLACED
||              nodeStatus == SVNStatusType.STATUS_DELETED  || nodeStatus == SVNStatusType.STATUS_ADDED)
{            changed.add(convertRelative(status.getFile()));          }        } as ISVNStatusHandler,
        task.log('Filtering files with existing svn:eol-style...');        wcClient.doGetProperty(basedir,
'svn:eol-style', SVNRevision.WORKING, SVNRevision.WORKING, true, {          file, prop ->
missingProps.remove(convertRelative(file));        } as ISVNPropertyHandler);            
   task.log('Filtering files with binary svn:mime-type...');        wcClient.doGetProperty(basedir,
'svn:mime-type', SVNRevision.WORKING, SVNRevision.WORKING, true, {          file, prop ->
         prop = SVNPropertyValue.getPropertyAsString(prop.getValue());          if (prop.startsWith('application/')
|| prop.startsWith('image/')) {            missingProps.remove(convertRelative(file));   
      }        } as ISVNPropertyHandler);                task.log('Scanning for files with
svn:keywords property...');        wcClient.doGetProperty(basedir, 'svn:keywords', SVNRevision.WORKING,
SVNRevision.WORKING, true, {          file, prop -> withKeywords.add(convertRelative(file));
       } as ISVNPropertyHandler);                def setProjectPropertyFromSet(prop, set)
{          if (set) {            properties[prop] = '* ' + set.join(properties['line.separator']
+ '* ');          }        };        setProjectPropertyFromSet('svn.checkprops.failed', missingProps);
       setProjectPropertyFromSet('svn.keywords.failed', withKeywords);        setProjectPropertyFromSet('svn.unversioned.failed',
unversioned);        setProjectPropertyFromSet('svn.changed.failed', changed);      ]]></groovy>
     <fail if="svn.checkprops.failed"        message="The following files are missing svn:eol-style
(or binary svn:mime-type):${line.separator}${svn.checkprops.failed}"/>      <fail if="svn.keywords.failed"
       message="The following files have the svn:keywords property set:${line.separator}${svn.keywords.failed}"/>
     <fail if="svn.unversioned.failed"        message="Source checkout is dirty after running
tests!!! Offending files:${line.separator}${svn.unversioned.failed}"/>      <fail message="Source
checkout is modified !!! Offending files:${line.separator}${svn.changed.failed}">     
  <condition>          <and>             <istrue value="@{failonmodifications}"/>
            <isset property="svn.changed.failed"/>          </and>        </condition>
     </fail>    </sequential>  </macrodef>
MG>svn-checker invoked thru check-svn-working-copy target in build.xml
  <target name="check-svn-working-copy" depends="ivy-availability-check,ivy-fail,ivy-configure,resolve-groovy">
   <svn-checker failonmodifications="false"/>  </target>
MG>Thanks Kevin!
message (including any attachments) contains confidential information intended for a specific
individual and purpose, and is protected by law. If you are not the intended recipient, you
should delete this message. Any disclosure, copying, or distribution of this message, or the
taking of any action based on it, is strictly prohibited.
View raw message