How to build kulla.jar

Mani Sarkar sadhak001 at gmail.com
Sun Apr 19 18:38:38 UTC 2015


Your/our wish is now a reality. We can now download the latest builds of
kulla.jar from the AdoptOpenJDK Cloudbees farm, see
https://adopt-openjdk.ci.cloudbees.com/view/OpenJDK/job/langtools-1.9-linux-x86_64-kulla-dev/lastSuccessfulBuild/artifact/

Both the artefacts are the fact same binaries, I have named them to
identify the version and timestamp in one and mavenised the name in the
other.

It takes about 2 minutes to build and will be triggered regularly as and
when changes are pushed into the repo.

It does not run test or stress tests yet, but depending on the stability of
these on the Cloudbees we will enable it. Of course it will be good to
build and distribute binaries after it passes these checks.

Thanks and enjoy using it - please send your feedback to the mailing list.

Cheers,
Mani

On Wed, Apr 15, 2015 at 9:15 PM, Robert Field <robert.field at oracle.com>
wrote:

> Yes, we want regular OpenJDK Kulla builds.  I first step along that path
> is that I need to integrate the REPL into the JDK/langtools.  I will be
> beginning on that probably next week.
>
> -Robert
>
>
> On 04/15/15 00:09, Martijn Verburg wrote:
>
>> Hi Mani,
>>
>> For now you'll have to replace the location of kulla.jar with instructions
>> on how to build it from scratch.
>>
>> @kull-dev - Robert - is it possible to talk to the powers that be about
>> being allowed to host nightly/weekly builds of kulla.jar? I'd prefer to
>> see
>> it hosted/provided by official OpenJDK infrastructure but we could also
>> build and host it nightly on our Adopt OpenJDK Cloudbees instance.
>>
>> I know that most of code-tools is now allowed to be hosted in a binary
>> format (you can speak to Jonathan Gibbons about that) so hopefully this
>> should be doable.
>>
>> Cheers,
>> Martijn
>>
>> On 15 April 2015 at 02:02, Mani Sarkar <sadhak001 at gmail.com> wrote:
>>
>>  I meant this page
>>>
>>> http://neomatrix369.gitbooks.io/adoptopenjdk-getting-started-kit/content/openjdk-projects/kulla.html
>>> .
>>>
>>> On Wed, Apr 15, 2015 at 1:00 AM, Mani Sarkar <sadhak001 at gmail.com>
>>> wrote:
>>>
>>>  I have put together a page, with all the tips, tricks and links one must
>>>> have at their finger tips with regards to Kulla.
>>>>
>>>> If you have any more to add to it, please let me know.
>>>>
>>>> Cheers,
>>>> Mani
>>>>
>>>> On Tue, Apr 14, 2015 at 11:41 PM, Mani Sarkar <sadhak001 at gmail.com>
>>>> wrote:
>>>>
>>>>  Hi Martijn
>>>>>
>>>>> Just saw the message, glad all is good. I think the instructions should
>>>>> mention to keep a tab of the JDK on the PATH and the JAVA_HOME env
>>>>> variables, and they point to JDK9.
>>>>>
>>>>> Cheers,
>>>>> Mani
>>>>>
>>>>> On Tue, Apr 14, 2015 at 10:34 AM, Martijn Verburg <
>>>>> martijnverburg at gmail.com> wrote:
>>>>>
>>>>>  Hi Andrei,
>>>>>>
>>>>>> It was the incorrect JDK!  All working now thanks.
>>>>>>
>>>>>> Cheers,
>>>>>> Martijn
>>>>>>
>>>>>> On 14 April 2015 at 09:57, andrei.eremeev <andrei.eremeev at oracle.com>
>>>>>> wrote:
>>>>>>
>>>>>>  Hi Martijn,
>>>>>>>
>>>>>>>  Hi Mani/All,
>>>>>>>>
>>>>>>>> I'm running across compile issues like:
>>>>>>>>
>>>>>>>> src/impl/CompletenessAnalyzer.java:28: error: package
>>>>>>>> com.sun.tools.javac.code does not exist
>>>>>>>> import com.sun.tools.javac.code.Source;
>>>>>>>>                                  ^
>>>>>>>>
>>>>>>>>  What JDK do you use to build/run REPL? JDK 8?
>>>>>>> Clone and build this JDK:
>>>>>>>    hg clone http://hg.openjdk.java.net/kulla/dev repl
>>>>>>>    cd repl
>>>>>>>    bash get_source.sh
>>>>>>>    make images
>>>>>>> Building might require installing additional packages.
>>>>>>>
>>>>>>> Thereafter, set and export JAVA_HOME:
>>>>>>> ${PATH-TO-REPO}/build/${OS}/images/jdk
>>>>>>> and PATH: ${JAVA_HOME}/bin:${PATH}.
>>>>>>> Ensure that the version of JDK is 1.9:
>>>>>>>    java -version
>>>>>>>
>>>>>>>  Also as an aside, the shell script assumes Linux (Mac OS X has sh
>>>>>>>> located
>>>>>>>> at #!/bin/sh)
>>>>>>>>
>>>>>>>>  Run script as "sh scripts/compile.sh" or "bash scripts/compile.sh".
>>>>>>>
>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Martijn
>>>>>>>>
>>>>>>>>  Andrei Eremeev
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>  On 14 April 2015 at 00:25, Mani Sarkar <sadhak001 at gmail.com> wrote:
>>>>>>>>
>>>>>>>>   Thanks Robert, works like  charm, also figured out how to create
>>>>>>>> the
>>>>>>>>
>>>>>>>>> jar
>>>>>>>>> for it.
>>>>>>>>>
>>>>>>>>> Cheers,
>>>>>>>>> Mani
>>>>>>>>>
>>>>>>>>> On Sun, Apr 12, 2015 at 3:31 PM, Robert Field <
>>>>>>>>> robert.field at oracle.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>   Yes, that is the right library. Get that library and install on
>>>>>>>>> your
>>>>>>>>>
>>>>>>>>>> machine. There is an environment variable in compile.sh -- don't
>>>>>>>>>> have
>>>>>>>>>> access right now so I don't remainder is name but it should be
>>>>>>>>>> obvious --
>>>>>>>>>> set that environment variable to the location of the unpacked
>>>>>>>>>> jline2
>>>>>>>>>> library.
>>>>>>>>>>
>>>>>>>>>> Then run using the run.sh script.
>>>>>>>>>>
>>>>>>>>>> Hour that helps,
>>>>>>>>>> Robert
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On April 12, 2015 6:58:38 AM Mani Sarkar <sadhak001 at gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>    To give some more information from the above, when I did the
>>>>>>>>>> below:
>>>>>>>>>>
>>>>>>>>>>     sh ./scripts/compile.sh
>>>>>>>>>>>
>>>>>>>>>>> Here's the response we got:
>>>>>>>>>>>
>>>>>>>>>>> src/tool/Repl.java:88: error: package jline.console does not
>>>>>>>>>>> exist
>>>>>>>>>>> import jline.console.ConsoleReader;
>>>>>>>>>>>                       ^
>>>>>>>>>>> src/tool/Repl.java:89: error: package jline.console does not
>>>>>>>>>>> exist
>>>>>>>>>>> import jline.console.KeyMap;
>>>>>>>>>>>                       ^
>>>>>>>>>>> src/tool/Repl.java:90: error: package jline.console.completer
>>>>>>>>>>> does
>>>>>>>>>>> not
>>>>>>>>>>> exist
>>>>>>>>>>> import jline.console.completer.Completer;
>>>>>>>>>>>                                 ^
>>>>>>>>>>> src/tool/Repl.java:91: error: package jline.console.history does
>>>>>>>>>>> not
>>>>>>>>>>>
>>>>>>>>>>>  exist
>>>>>>>>>> import jline.console.history.History;
>>>>>>>>>>
>>>>>>>>>>>                               ^
>>>>>>>>>>> src/tool/Repl.java:92: error: package jline.console.history does
>>>>>>>>>>> not
>>>>>>>>>>>
>>>>>>>>>>>  exist
>>>>>>>>>> import jline.console.history.MemoryHistory;
>>>>>>>>>>
>>>>>>>>>>>                               ^
>>>>>>>>>>> src/tool/Repl.java:1502: error: cannot find symbol
>>>>>>>>>>>       final ConsoleReader in;
>>>>>>>>>>>             ^
>>>>>>>>>>>     symbol:   class ConsoleReader
>>>>>>>>>>>     location: class ConsoleIOContext
>>>>>>>>>>> src/tool/Repl.java:1645: error: cannot find symbol
>>>>>>>>>>>       private final class EditingHistory implements History {
>>>>>>>>>>>                                                     ^
>>>>>>>>>>>     symbol:   class History
>>>>>>>>>>>     location: class ConsoleIOContext
>>>>>>>>>>> src/tool/Repl.java:1647: error: cannot find symbol
>>>>>>>>>>>           private final History fullHistory;
>>>>>>>>>>>                         ^
>>>>>>>>>>>     symbol:   class History
>>>>>>>>>>>     location: class ConsoleIOContext.EditingHistory
>>>>>>>>>>> src/tool/Repl.java:1648: error: cannot find symbol
>>>>>>>>>>>           private History currentDelegate;
>>>>>>>>>>>                   ^
>>>>>>>>>>>     symbol:   class History
>>>>>>>>>>>     location: class ConsoleIOContext.EditingHistory
>>>>>>>>>>> src/tool/Repl.java:1650: error: cannot find symbol
>>>>>>>>>>>           public EditingHistory(History delegateTo) {
>>>>>>>>>>>                                 ^
>>>>>>>>>>>     symbol:   class History
>>>>>>>>>>>     location: class ConsoleIOContext.EditingHistory
>>>>>>>>>>> error: Class names, 'build', are only accepted if annotation
>>>>>>>>>>> processing
>>>>>>>>>>>
>>>>>>>>>>>  is
>>>>>>>>>> explicitly requested
>>>>>>>>>>
>>>>>>>>>>> src/tool/Repl.java:1507: error: cannot find symbol
>>>>>>>>>>>           in = new ConsoleReader(cmdin, cmdout);
>>>>>>>>>>>                    ^
>>>>>>>>>>>     symbol:   class ConsoleReader
>>>>>>>>>>>     location: class ConsoleIOContext
>>>>>>>>>>> src/tool/Repl.java:1532: error: cannot find symbol
>>>>>>>>>>>           in.addCompleter(new Completer() {
>>>>>>>>>>>                               ^
>>>>>>>>>>>     symbol:   class Completer
>>>>>>>>>>>     location: class ConsoleIOContext
>>>>>>>>>>> src/tool/Repl.java:1596: error: cannot find symbol
>>>>>>>>>>>           KeyMap km = in.getKeys();
>>>>>>>>>>>           ^
>>>>>>>>>>>     symbol:   class KeyMap
>>>>>>>>>>>     location: class ConsoleIOContext
>>>>>>>>>>> src/tool/Repl.java:1599: error: cannot find symbol
>>>>>>>>>>>               if (value instanceof KeyMap) {
>>>>>>>>>>>                                    ^
>>>>>>>>>>>     symbol:   class KeyMap
>>>>>>>>>>>     location: class ConsoleIOContext
>>>>>>>>>>> src/tool/Repl.java:1600: error: cannot find symbol
>>>>>>>>>>>                   km = (KeyMap) value;
>>>>>>>>>>>                         ^
>>>>>>>>>>>     symbol:   class KeyMap
>>>>>>>>>>>     location: class ConsoleIOContext
>>>>>>>>>>> src/tool/Repl.java:1655: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1660: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1665: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1670: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1677: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1682: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1687: error: cannot find symbol
>>>>>>>>>>>                           if (!(entry.value() instanceof
>>>>>>>>>>> NarrowingHistoryLine))
>>>>>>>>>>>                                      ^
>>>>>>>>>>>     symbol:   method value()
>>>>>>>>>>>     location: variable entry of type Entry
>>>>>>>>>>> src/tool/Repl.java:1689: error: cannot find symbol
>>>>>>>>>>>                           int[] cluster = ((NarrowingHistoryLine)
>>>>>>>>>>> entry.value()).span;
>>>>>>>>>>>
>>>>>>>>>>>      ^
>>>>>>>>>>>     symbol:   method value()
>>>>>>>>>>>     location: variable entry of type Entry
>>>>>>>>>>> src/tool/Repl.java:1691: error: cannot find symbol
>>>>>>>>>>>                               currentDelegate = new
>>>>>>>>>>> MemoryHistory();
>>>>>>>>>>>                                                     ^
>>>>>>>>>>>     symbol:   class MemoryHistory
>>>>>>>>>>>     location: class ConsoleIOContext.EditingHistory
>>>>>>>>>>> src/tool/Repl.java:1722: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1729: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1736: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1743: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1750: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1757: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1762: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1767: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1772: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1777: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1782: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1787: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1792: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1797: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> src/tool/Repl.java:1802: error: method does not override or
>>>>>>>>>>> implement a
>>>>>>>>>>> method from a supertype
>>>>>>>>>>>           @Override
>>>>>>>>>>>           ^
>>>>>>>>>>> 40 errors
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>> Mani
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Apr 12, 2015 at 1:50 PM, Mani Sarkar <
>>>>>>>>>>> sadhak001 at gmail.com>
>>>>>>>>>>>
>>>>>>>>>>>  wrote:
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>>> I'm at the LJC hackday in London and we are trying out Kulla and
>>>>>>>>>>>> would
>>>>>>>>>>>> like to know how to go about build kulla.jar from the OpenjDK
>>>>>>>>>>>> code
>>>>>>>>>>>>
>>>>>>>>>>>>  base, I
>>>>>>>>>>>
>>>>>>>>>>>  came across this link (README file)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> http://hg.openjdk.java.net/kulla/dev/langtools/file/
>>>>>>>>>>>>
>>>>>>>>>>>>  4933dc482be7/repl/README
>>>>>>>>>>>
>>>>>>>>>>>  but no luck trying to build it.
>>>>>>>>>>>>
>>>>>>>>>>>> What should this variable point to JLINE2LIB ? Is this the same
>>>>>>>>>>>>
>>>>>>>>>>>>  library
>>>>>>>>>>>
>>>>>>>>>> as
>>>>>>>>>>
>>>>>>>>>>> https://github.com/jline/jline2 ?
>>>>>>>>>>>>
>>>>>>>>>>>> Any help is appreciated.
>>>>>>>>>>>>
>>>>>>>>>>>> Cheers,
>>>>>>>>>>>> Mani
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> @theNeomatrix369 <http://twitter.com/theNeomatrix369>*  |
>>>>>>>>>>>> **Blog
>>>>>>>>>>>> <http://neomatrix369.wordpress.com>**  |  *LJC Associate & LJC
>>>>>>>>>>>>
>>>>>>>>>>>>  Advocate
>>>>>>>>>>>
>>>>>>>>>> (@adoptopenjdk & @adoptajsr programs)
>>>>>>>>>>
>>>>>>>>>>> *Meet-a-Project - *MutabilityDetector
>>>>>>>>>>>> <https://github.com/MutabilityDetector>*  |  **Bitbucket
>>>>>>>>>>>> <https://bitbucket.org/neomatrix369>* * |  **Github
>>>>>>>>>>>> <https://github.com/neomatrix369>* * |  **LinkedIn
>>>>>>>>>>>> <http://uk.linkedin.com/pub/mani-sarkar/71/a77/39b>*
>>>>>>>>>>>> *Come to Devoxx UK 2015:* http://www.devoxx.co.uk/
>>>>>>>>>>>>
>>>>>>>>>>>> *Don't chase success, rather aim for "Excellence", and success
>>>>>>>>>>>> will
>>>>>>>>>>>>
>>>>>>>>>>>>  come
>>>>>>>>>>>
>>>>>>>>>> chasing after you!*
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>  --
>>>>>>>>>>> @theNeomatrix369 <http://twitter.com/theNeomatrix369>*  |
>>>>>>>>>>> **Blog
>>>>>>>>>>> <http://neomatrix369.wordpress.com>**  |  *LJC Associate & LJC
>>>>>>>>>>> Advocate
>>>>>>>>>>> (@adoptopenjdk & @adoptajsr programs)
>>>>>>>>>>> *Meet-a-Project - *MutabilityDetector
>>>>>>>>>>> <https://github.com/MutabilityDetector>*  |  **Bitbucket
>>>>>>>>>>> <https://bitbucket.org/neomatrix369>* * |  **Github
>>>>>>>>>>> <https://github.com/neomatrix369>* * |  **LinkedIn
>>>>>>>>>>> <http://uk.linkedin.com/pub/mani-sarkar/71/a77/39b>*
>>>>>>>>>>> *Come to Devoxx UK 2015:* http://www.devoxx.co.uk/
>>>>>>>>>>>
>>>>>>>>>>> *Don't chase success, rather aim for "Excellence", and success
>>>>>>>>>>> will come
>>>>>>>>>>> chasing after you!*
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>>> @theNeomatrix369 <http://twitter.com/theNeomatrix369>*  |  **Blog
>>>>>>>>> <http://neomatrix369.wordpress.com>**  |  *LJC Associate & LJC
>>>>>>>>> Advocate
>>>>>>>>> (@adoptopenjdk & @adoptajsr programs)
>>>>>>>>> *Meet-a-Project - *MutabilityDetector
>>>>>>>>> <https://github.com/MutabilityDetector>*  |  **Bitbucket
>>>>>>>>> <https://bitbucket.org/neomatrix369>* * |  **Github
>>>>>>>>> <https://github.com/neomatrix369>* * |  **LinkedIn
>>>>>>>>> <http://uk.linkedin.com/pub/mani-sarkar/71/a77/39b>*
>>>>>>>>> *Come to Devoxx UK 2015:* http://www.devoxx.co.uk/
>>>>>>>>>
>>>>>>>>> *Don't chase success, rather aim for "Excellence", and success will
>>>>>>>>> come
>>>>>>>>> chasing after you!*
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>> --
>>>>> @theNeomatrix369 <http://twitter.com/theNeomatrix369>*  |  **Blog
>>>>> <http://neomatrix369.wordpress.com>**  |  *LJC Associate & LJC
>>>>> Advocate
>>>>> (@adoptopenjdk & @adoptajsr programs)
>>>>> *Meet-a-Project - *MutabilityDetector
>>>>> <https://github.com/MutabilityDetector>*  |  **Bitbucket
>>>>> <https://bitbucket.org/neomatrix369>* * |  **Github
>>>>> <https://github.com/neomatrix369>* * |  **LinkedIn
>>>>> <http://uk.linkedin.com/pub/mani-sarkar/71/a77/39b>*
>>>>> *Come to Devoxx UK 2015:* http://www.devoxx.co.uk/
>>>>>
>>>>> *Don't chase success, rather aim for "Excellence", and success will
>>>>> come
>>>>> chasing after you!*
>>>>>
>>>>>
>>>>
>>>> --
>>>> @theNeomatrix369 <http://twitter.com/theNeomatrix369>*  |  **Blog
>>>> <http://neomatrix369.wordpress.com>**  |  *LJC Associate & LJC Advocate
>>>> (@adoptopenjdk & @adoptajsr programs)
>>>> *Meet-a-Project - *MutabilityDetector
>>>> <https://github.com/MutabilityDetector>*  |  **Bitbucket
>>>> <https://bitbucket.org/neomatrix369>* * |  **Github
>>>> <https://github.com/neomatrix369>* * |  **LinkedIn
>>>> <http://uk.linkedin.com/pub/mani-sarkar/71/a77/39b>*
>>>> *Come to Devoxx UK 2015:* http://www.devoxx.co.uk/
>>>>
>>>> *Don't chase success, rather aim for "Excellence", and success will come
>>>> chasing after you!*
>>>>
>>>>
>>>
>>> --
>>> @theNeomatrix369 <http://twitter.com/theNeomatrix369>*  |  **Blog
>>> <http://neomatrix369.wordpress.com>**  |  *LJC Associate & LJC Advocate
>>> (@adoptopenjdk & @adoptajsr programs)
>>> *Meet-a-Project - *MutabilityDetector
>>> <https://github.com/MutabilityDetector>*  |  **Bitbucket
>>> <https://bitbucket.org/neomatrix369>* * |  **Github
>>> <https://github.com/neomatrix369>* * |  **LinkedIn
>>> <http://uk.linkedin.com/pub/mani-sarkar/71/a77/39b>*
>>> *Come to Devoxx UK 2015:* http://www.devoxx.co.uk/
>>>
>>> *Don't chase success, rather aim for "Excellence", and success will come
>>> chasing after you!*
>>>
>>>
>


-- 
@theNeomatrix369 <http://twitter.com/theNeomatrix369>*  |  **Blog
<http://neomatrix369.wordpress.com>**  |  *LJC Associate & LJC Advocate
(@adoptopenjdk & @adoptajsr programs)
*Meet-a-Project - *MutabilityDetector
<https://github.com/MutabilityDetector>*  |  **Bitbucket
<https://bitbucket.org/neomatrix369>* * |  **Github
<https://github.com/neomatrix369>* * |  **LinkedIn
<http://uk.linkedin.com/pub/mani-sarkar/71/a77/39b>*
*Come to Devoxx UK 2015:* http://www.devoxx.co.uk/

*Don't chase success, rather aim for "Excellence", and success will come
chasing after you!*


More information about the adoption-discuss mailing list