Hi Reed,

In this case, I feel 'CTAKES_HOME' environment variable is not required at all. 
Because runPiperCreator.bat considers current directory as 'CTAKES_HOME' if not 
defined.

That's why it worked fine for me when I tried as I don’t have 'CTAKES_HOME' 
environment variable set. I'm not sure whether it should be documented as this 
may not be a common scenario I feel.

Regards,
Gandhi


-----Original Message-----
From: Reed Villanueva [mailto:villanuevar...@gmail.com]
Sent: Thursday, March 29, 2018 4:17 AM
To: dev@ctakes.apache.org
Subject: Re: How to change and build project source code?

Finally found the problem.

I was initially only using the user binaries, which I installed using the user 
installation guide (https://cwiki.apache.org/conf
luence/display/CTAKES/cTAKES+4.0+User+Install+Guide) (which instructs setting 
the environment variable *CTAKES_HOME=<the extracted ctakes
directory>*, maybe you see where this is going).

When later deciding that I wanted to experiment with the dev source code, I 
created a new directory $HOME/projects/ctakes as recommended by the dev install 
guide (https://cwiki.apache.org/confluence/display/CTAKES/cTAKES+
4.0+Developer+Install+Guide) and set and requested environment variables (which 
did not include (in this case re-) setting the CTAKES_HOME env.
variable that was pointing to the user binaries)). After building the project 
and extracting the trunk/ctakes-distribution/target binaries, trying to run the 
binaries in that folder seemed to be using the *exact same**code as the user 
binaries*. The problem was that, looking at the actual code in the extracted 
distribution's bin/runPiperCreator.sh, it could be seen that the java 
class-paths being used were pointing to the resources and jars in CTAKES_HOME, 
which at that point *still referred to the user binaries folder*. Resetting the 
env. variable CTAKES_HOME to point to the location of the extracted dev 
distribution binaries fixed the problem.

*TLDR: extracted binaries from the dev distribution target was still using the 
resources and jars from a previous "user" installation for its
class-paths.*

Perhaps this caveat should be added to the documentation?


On Tue, Mar 27, 2018 at 12:10 PM, Reed Villanueva <villanuevar...@gmail.com>
wrote:

> Hi Gandhi,
>
> Apologies for the confusion, I had though that it worked in the way
> you described earlier, but had tried this before and it does not seem
> to have any effect.
> Eg. doing something like:
>
> edit
> trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPane
> l2.java
> to have the snippet
>
> 91 private JComponent createWestPanel() {
>> 92      LOGGER.info( "creating fakeTable placeholder" );
>> 93      LOGGER.info( "creating fakeTable placeholder" );
>> 94      LOGGER.info( "creating fakeTable placeholder" );
>> 95      LOGGER.info( "creating fakeTable placeholder" );
>> 96      LOGGER.info( "creating fakeTable placeholder" );
>> 97      System.out.println( "This is a test" );
>> 98      final JTable fakeTable = new JTable();
>> 99      LOGGER.info( "generating fakeTable header" );
>> 100    final JTableHeader fakeHeader = fakeTable.getTableHeader();
>> 101    final Component header = fakeHeader.getDefaultRenderer()
>
> 102                                                  
> .getTableCellRendererComponent(
>> fakeTable, "Available Pipe Bits",
>> 103
>>                                      false, false, -1, -1 );
>
>
> just to add some lines in comparison to the original file (for the
> purpose of seeing change in a later error message, to be shown in a
> bit), then
>
>
>> ➜  trunk $ cd ctakes-gui
>> ➜  ctakes-gui $ mvn clean install
>> ....
>> [INFO] --- maven-install-plugin:2.3.1:install (default-install) @
>> ctakes-gui --- [INFO] Installing
>> /home/me/projects/ctakes/trunk/ctakes-gui/target/ctakes-gui-4.0.1-SNA
>> PSHOT.jar to /home/reedv/.m2/repository/org/apache/ctakes/ctakes-gui/
>> 4.0.1-SNAPSHOT/ctakes-gui-4.0.1-SNAPSHOT.jar
>> [INFO] Installing /home/me/projects/ctakes/trunk/ctakes-gui/pom.xml
>> to /home/reedv/.m2/repository/org/apache/ctakes/ctakes-gui/
>> 4.0.1-SNAPSHOT/ctakes-gui-4.0.1-SNAPSHOT.pom
>> [INFO] ------------------------------------------------------------
>> ------------
>> [INFO] BUILD SUCCESS
>> [INFO] ------------------------------------------------------------
>> ------------
>> [INFO] Total time: 5.393 s
>> [INFO] Finished at: 2018-03-27T10:06:57-10:00 [INFO]
>> ------------------------------------------------------------
>> ------------
>>
> ​​
>
>
>> ➜
>> ​ctakes-gui​
>>
>> ​$ ​cd ..
>>
>> ➜
>> ​trunk​
>>
>> ​$ ​
>> cp ctakes-gui/target/ctakes-gui-4.0.1-SNAPSHOT.jar
>> ../apache-ctakes-4.0.1-SNAPSHOT/lib/
>>
>
> ​(note that the apache-ctakes-4.0.1-SNAPSHOT folder was extracted to
> the same directory level as trunk from trunk/ctakes-distribution/
> target/apache-ctakes-4.0.1-SNAPSHOT-bin.tar.gz from an earlier
> successful build following the dev install guide (skipping the
> tests))​, then doing
>
>
>> ➜
>> ​trunk​
>> $ cd ../apache-ctakes-4.0.1-SNAPSHOT
>>
> ​
>> ​​
>> ➜  apache-ctakes-4.0.1-SNAPSHOT
>> ​ $​
>> ls -lhR lib | grep ctakes-gui
>> ​ ​
>>
>
>      -rw-r--r-- 1 reedv reedv 272K <current date> <current time>
>> ctakes-gui-4.0.1-SNAPSHOT.jar​
>>
>
> ​ ​
>
> ➜  apache-ctakes-4.0.1-SNAPSHOT
>> ​ $​
>> ./bin/runPiperCreator.sh
>> ....
>> log4j: Setting property [conversionPattern] to [%d{dd MMM yyyy
>> HH:mm:ss} %5p %c{1} - %m%n].
>> log4j: Adding appender named [consoleAppender] to category [root].
>> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
>> at javax.swing.plaf.synth.SynthTableHeaderUI$HeaderRenderer.
>> getTableCellRendererComponent(SynthTableHeaderUI.java:234)
>> at org.apache.ctakes.gui.pipeline.MainPanel2.createWestPanel(MainPanel2.
>> java:94)
>> at org.apache.ctakes.gui.pipeline.MainPanel2.createMainPanel(MainPanel2.
>> java:139)
>> at
>> org.apache.ctakes.gui.pipeline.MainPanel2.<init>(MainPanel2.java:76)
>> at org.apache.ctakes.gui.pipeline.PiperCreator.
>> createMainPanel(PiperCreator.java:40)
>> at org.apache.ctakes.gui.pipeline.PiperCreator.lambda$
>> main$0(PiperCreator.java:53)
>> ....
>
>
> I see that *the error line number is unchanged and the error is the
> same as in the original file*, which produced the similar error shown below:
>
> ➜  apache-ctakes-4.0.0 bin/runPiperCreator.sh
>> ....
>> log4j: Adding appender named [consoleAppender] to category [root].
>> Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
>> at javax.swing.plaf.synth.SynthTableHeaderUI$HeaderRenderer.
>> getTableCellRendererComponent(SynthTableHeaderUI.java:234)
>> at org.apache.ctakes.gui.pipeline.MainPanel2.createWestPanel(MainPanel2.
>> java:94)
>> at org.apache.ctakes.gui.pipeline.MainPanel2.createMainPanel(MainPanel2.
>> java:139)
>> at
>> org.apache.ctakes.gui.pipeline.MainPanel2.<init>(MainPanel2.java:76)
>> at org.apache.ctakes.gui.pipeline.PiperCreator.
>> createMainPanel(PiperCreator.java:40)
>> at org.apache.ctakes.gui.pipeline.PiperCreator.lambda$
>> main$0(PiperCreator.java:53)
>> ....
>
>
> which was supposedly fixed in 4.0.1 (https://issues.apache.org/
> jira/browse/CTAKES-442), the error that I was initially trying to
> investigate (copying the 4.0.1 gui jar to this 4.0.0 binary download
> /lib dir. under the original 4.0.0 name still generates this error).
>
> Could you let me know what I'm doing wrong here?
> Would be interested in working with the code if I could just figure
> out how to actually use and test changes.
> Thank you.
>
>
>
>
>
> On Tue, Mar 27, 2018 at 5:29 AM, Gandhi Rajan Natarajan <
> gandhi.natara...@arisglobal.com> wrote:
>
>> Hi Reed,
>>
>> If you make any changes in ctakes-gui module, you can build the
>> ctakes-gui module using the following command:
>>
>> mvn clean install -Dmaven.test.skip=true
>>
>> Then you can pick up the updated ctakes-gui jar file from
>> 'ctakes-gui\target' folder and replace the same in your project from
>> where you are running cTAKES.
>>
>> Regards,
>> Gandhi
>>
>>
>> -----Original Message-----
>> From: Reed Villanueva [mailto:villanuevar...@gmail.com]
>> Sent: Tuesday, March 27, 2018 12:20 AM
>> To: dev@ctakes.apache.org
>> Subject: Re: How to change and build project source code?
>>
>> I see. I was looking in the "ctakes-distribution/target" because that
>> seemed to be where the binary files where (which I assumed were the
>> final product of the build, having initially experienced ctakes as a
>> "user" and never worked on a maven project before). Would you be
>> willing to please explain a bit more about how to run the project
>> after building it (non-IDE-based install) for someone with less maven
>> and java experience (which I think may be my main confusion)?
>>
>> On Mon, Mar 26, 2018 at 2:49 AM, Gandhi Rajan Natarajan <
>> gandhi.natara...@arisglobal.com> wrote:
>>
>> > Hi Reed,
>> >
>> > I'm not sure whether I got your question right. But if you make any
>> > changes in ctakes-gui module, the updated jar files will be
>> > available under ' ctakes-gui\target' folder.
>> >
>> > Not sure what you are looking for under 'ctakes-distribution/target'
>> >
>> > Regards,
>> > Gandhi
>> >
>> > -----Original Message-----
>> > From: Reed Villanueva [mailto:villanuevar...@gmail.com]
>> > Sent: Monday, March 26, 2018 3:02 AM
>> > To: dev@ctakes.apache.org
>> > Subject: How to change and build project source code?
>> >
>> > New user. Tried editing
>> > ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPanel2.
>> > jav a to look into potential bug that was supposedly resolved in
>> > https://issues.apache.org/jira/browse/CTAKES-442 but appears to
>> > still be causing error...
>> >
>> >
>> > > log4j: Adding appender named [consoleAppender] to category [root].
>> > >
>> > Exception in thread "AWT-EventQueue-0"
>> > java.lang.NullPointerException
>> >
>> > at
>> > > javax.swing.plaf.synth.SynthTableHeaderUI$HeaderRenderer.getTable
>> > > Cel
>> > > lR
>> > > endererComponent(SynthTableHeaderUI.java:234)
>> >
>> > at
>> > > org.apache.ctakes.gui.pipeline.MainPanel2.createWestPanel(MainPan
>> > > el2
>> > > .j
>> > > ava:94)
>> >
>> > ​
>> > >
>> > >
>> > in version 4.0.1. Yet when changing the code snippet to...
>> >
>> >
>> > > ​
>> > >
>> >    private JComponent createWestPanel() {
>> >
>> >       final JTable fakeTable = new JTable();
>> >
>> >       LOGGER.info( "** DEBUG: fakeTable: " + fakeTable );
>> >
>> >       LOGGER.info( "** DEBUG: fakeTable: " + fakeTable );
>> >
>> >       final JTableHeader fakeHeader = fakeTable.getTableHeader();
>> >
>> >       LOGGER.info( "** DEBUG: fakeHeader: " + fakeHeader );
>> >
>> >       final Component header = fakeHeader.getDefaultRenderer()
>> >
>> >                                 .getTableCellRendererComponent(
>> > fakeTable,
>> > > ​ ​
>> > > "Available Pipe Bits", false, false, -1, -1 );
>> >
>> > ​
>> > >
>> >
>> >
>> > trying to build with...
>> >
>> > ​
>> > >
>> > mvn --fail-at-end --errors --update-snapshots clean install
>> > sonar:sonar
>> > > -DskipTests=true -Dsonar.scm.provider=svn -Dsonar.host.url=
>> > > https://builds.apache.org/analysis
>> >
>> > ​
>> > >
>> >
>> >
>> > and extracting the binaries via...
>> >
>> > ​➜  trunk cp
>> > > ctakes-distribution/target/apache-ctakes-4.0.1-SNAPSHOT-bin.tar.g
>> > > z
>> > > ctakes-distribution/target/apache-ctakes-4.0.1-SNAPSHOT-bin.tar.g
>> > > z.m
>> > > d5
>> > > ../​
>> > >
>> > >
>> > (by the way, I explicitly show the steps I took only because I have
>> > never worked on a maven project before so giving a chance for
>> > someone to point out if I'm doing something wrong here), yet still
>> > seeing error
>> >
>> > log4j: Adding appender named [consoleAppender] to category [root].
>> > >
>> > Exception in thread "AWT-EventQueue-0"
>> > java.lang.NullPointerException
>> >
>> > at
>> > > javax.swing.plaf.synth.SynthTableHeaderUI$HeaderRenderer.getTable
>> > > Cel
>> > > lR
>> > > endererComponent(SynthTableHeaderUI.java:234)
>> >
>> > at
>> > > org.apache.ctakes.gui.pipeline.MainPanel2.createWestPanel(MainPan
>> > > el2
>> > > .j
>> > > ava:94)
>> >
>> > ​
>> > >
>> >
>> > Notice it states the error is on line 94 as if the change that I
>> > implemented is not actually affecting the code that is being used
>> > (yet running
>> >
>> > ​
>> > >
>> > ➜  trunk find . -name 'MainPanel2.java'
>> > >
>> >
>> > ./ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPanel
>> > 2.j
>> > ava
>> >
>> > ​
>> > >
>> > >
>> > in the trunk directory shows that this is the only place that that
>> > file exists).
>> >
>> > Am I missing something here (never worked on a maven project
>> > before, so I'm thinking that I may not be changing the right file
>> > here)? How can I change the code so that it actually gets used in
>> > the compiled
>> binaries?
>> > Thanks
>> > This email and any files transmitted with it are confidential and
>> > intended solely for the use of the individual or entity to whom
>> > they
>> are addressed.
>> > If you are not the named addressee you should not disseminate,
>> > distribute or copy this e-mail. Please notify the sender or system
>> > manager by email immediately if you have received this e-mail by
>> > mistake and delete this e-mail from your system. If you are not the
>> > intended recipient you are notified that disclosing, copying,
>> > distributing or taking any action in reliance on the contents of
>> > this information is strictly prohibited and against the law.
>> >
>> This email and any files transmitted with it are confidential and
>> intended solely for the use of the individual or entity to whom they
>> are addressed. If you are not the named addressee you should not
>> disseminate, distribute or copy this e-mail. Please notify the sender
>> or system manager by email immediately if you have received this
>> e-mail by mistake and delete this e-mail from your system. If you are
>> not the intended recipient you are notified that disclosing, copying,
>> distributing or taking any action in reliance on the contents of this
>> information is strictly prohibited and against the law.
>>
>
>
This email and any files transmitted with it are confidential and intended 
solely for the use of the individual or entity to whom they are addressed. If 
you are not the named addressee you should not disseminate, distribute or copy 
this e-mail. Please notify the sender or system manager by email immediately if 
you have received this e-mail by mistake and delete this e-mail from your 
system. If you are not the intended recipient you are notified that disclosing, 
copying, distributing or taking any action in reliance on the contents of this 
information is strictly prohibited and against the law.

Reply via email to