Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use java.io.tmpdir instead of user.home as default #275

Closed
wants to merge 51 commits into from
Closed

Use java.io.tmpdir instead of user.home as default #275

wants to merge 51 commits into from

Conversation

tarioch
Copy link
Contributor

@tarioch tarioch commented Jun 13, 2017

Fixes #270

irbull and others added 30 commits May 3, 2017 12:11
If null is used as a key when accessing properties of a V8Object,
an IllegalArgumentException will be thrown. Before this change,
the entire VM would crash.

This is handled by checking the value of the key before any native
code is invoked, and fast failing if it's null.

This fixed #249

Change-Id: Ia6ff54f9586aed14179c0c6de1f7ef49d1730c67
Change-Id: I37ccdfd676a92cde2384a840a6acad28d9423977
Since linux is where we run the tests, build on linux first
so we fast-fail if things go wrong.

Change-Id: I643aaa2416d2f4820a651c2699b5ce110e2a09f7
Change-Id: Ie79a450256112f812601c8373dc0597191f7f53e
Change-Id: Icd21372e3f0515c4de89073313001f1f3c4bc956
This script will build and deploy J2V8 aar for android.

Change-Id: Ia2f73db7affe82f9ca6277632d33c1f03128eed9
Once the android binaries are built, strip the symbols
from the shared object files.

Change-Id: Idee2f733a40fa1524e90dd6a5de0e9e794047afd
To help determine which version of J2V8 is being executed
at Runtime, a new method was added on the V8 class.
This method will return a String representation of the
SCM Revision ID.

We currently use Git, so this method will return the
commit ID for the latest commit in a build.

It is expected that the default string will be replaced
when J2V8 is built for deployment.

Change-Id: I3a2e5f5f8f8cf88283d7ef1b1571257dab6a4fa3
During a build and deploy, add the Git ID to the getSCMRevision
API. This way, you can get the actual J2V8 Source Revision
you are running.

Change-Id: I5f3907643335b0d0e45babf3beef1c44cb68c7ec
Accidently left in the exit statement we used when
debugging.

Change-Id: I4ea0ce0e610948b9c571e72f1fc9adc2e4e4ce54
To support a Jenkins build server, a Jenkinsfile was added
that specifies the pipeline.

Change-Id: I4f5e0e222954780df2fd40fd185d3e625d90eefd
When running a pipeline, checkout the revision that started it.

Change-Id: I970e92744dfd4e1215c268aba69bf9b439acee96
To allow the build to run in Docker, the root directory
needs to be specified. This is because the volume
mount of the container must be used.

Change-Id: Ic55fc3a99f9e6c93d3b2fc3f23f4c70d7de56110
Because we run Jenkins in a container, use the host volume mount
for the root directory of the build.

Change-Id: Icc58b73add26dfe822fedd672ac87b243ddb1b0e
The build script had a double $$. This fixes that.

Change-Id: I4b3b2c0084081663b78a83ec178faeebdb854a38
Change-Id: I81dccacd5c999b2b5f0b279988941b989a41dcde
Change-Id: Ib9ff8d629a9c0ecaed8b7f51923e5041fae40db6
Change-Id: I2d31acb142027916476923db36b2f1b06288e8d0
Change-Id: I2e6cd7ab7b09eac1cb2aa46d1fa7ac0f70536680
.
Change-Id: I8ca5aa86e631cea188b89028de22da3084f300a1
.
Change-Id: I8bbf7d3e475765b37cfab261e36475b23989edf4
Change-Id: Ib469e15047d903686b8dc9b14a51ae423434fc33
Because we have the #!/bin/bash in the header for the script,
I don't think we need this in the Jenkinsfile too.

Change-Id: I63862252cdfaf6d1fba6c099cd39a72db6a8c850
Change-Id: Ib1263a75e15cfa7328ff69286a0d10f94388f82c
Change-Id: I91df7ebcac529ccf623c76c29f8d6a84f9ec5a70
Change-Id: I1b375d4a564f8feeebc6befe53fc93cb753767d6
Change-Id: Iefb0a6075da3c6d7a5c48501797b9b31b23b5e0a
To allow multiple docker builds to happen in parallel, provide
an option to the build script which allows a suffix for the
docker image to be set.

Change-Id: I9dffd0bc268a6326a1146a097a4c629464ae50aa
When loading the library, attempt the use the full name
instead of just the short name.

Change-Id: I4608d1d3ae41b1a62d0d9ab10f129bcf634f6ae4
TonyRice and others added 21 commits May 25, 2017 13:29
To allow V8Arrays to be constructed more easily, add a generic
push(Object object) method to V8Array. Push will inspect the type
of object being used, and properly add that object to the underlying
V8Array.

If a non-compatible Object is passed to push, then an
IllegalArgumentException is thrown.

This was originally contributed by @TonyRice in PR #259.

Change-Id: I193bf99a29283899f7315a28c1fe989edd87eb1e
Allow clients to get the thread that the locker currently has.

Change-Id: Id6000158e0f111eed46ee5c61cca3ab08b214102
Improve the Invalid V8 thread access exception message. Includes
information about what thread is currently locked.

Change-Id: I40bfad70ffdfd42fc84c655e61877c0feac0941d
The current acquire will try and acquire the lock, and if it fails, 
an Error will be thrown. tryAcquire is a new method that simply returns
false if the lock cannot be acquired. This should make it easier
for clients to program against the locker and handle the case
where the lock cannot be acquired.

This also fixes a few Locker tests that were broken with the previous
commit since the error message changed.

Change-Id: I733fff5a48f4a72f9e519ee903bdc30b8a9dc4b8
Change-Id: Ibc9ed5974f70c2d0cb6bf23524823d506d504b10
Currently the J2V8 project will handle the publishing of the
android and Linux x64 builds. This updated the deployment script
to include the linux 64 builds.

Change-Id: I9cf006d2e9f53b41cc11748b094f5047b8b0c16a
There was a small typo in the JavaDoc in ConcurrentV8.

Change-Id: Id6eece30b84bfc974f4c2c722ac13a3a5ae115fb
There was a line in the deploy script that tried to remove
a directory that did not exist. This caused the script to fail.
This fixes that problem by removing this line, and actually
creating the directory.

Change-Id: Ib19ee61a1b08603c25b3fff1ab95b890935260af
Change-Id: I480f2bf45813eb9d68b0761321713105d0184b51
V8 has changed the way the ScriptName must be accessed from the Frame.
Instead of assuming that the FrameMirror always as a Script Object
(which now does not appear to always be the case), we also
need to check if the FrameMirror has a FunctionMirror with a
script name attached.

In case both there is both a ScriptName attached to the FameMirror
and a ScriptName attached to the FunctionMirror, the one attached
to the FrameMirror is chosen.

Fixes #262

Change-Id: Ic6fca5e963bb205268045d33df487d775ea7954f
Change-Id: I023d97aecb817da476b98f902b4dc1001051bab5
Change-Id: Idd0f5bc10daa4c971d769a5051d58bb38dd28070
V8ObjectUtils provides a number of conversion routines to convert from
V8 Types (V8Object and V8Array) to Java objects. This change-set
allows the user to influence the conversion by providing a type adapter
for each conversion. With the type adapter, you can change
how the types are converted, or use the default type adaption.

This change-set also adds a number of test cases for this and shows
how it can be used in practice.

Change-Id: I061128986ec4dc9f414424d46b2158e871ab9d39
Adds toString support on ArrayBuffer. This does the same thing as
Chrome Dev tools, that is, it returns "[object ArrayBuffer]" when
toString is called.

Fixes #264

Change-Id: I4b79496c34758e2385b2dce29de1169247aec589
Since this is implemented on V8Value, it only works for those types
that inherit V8Value. This method will return an integer, which maps
to one of the constants defined in V8Value.

Since V8Array already had a method called getType, we called this
method getV8Type.

Fixes #266

Change-Id: I5de9ceb3b223e5c35091ae9b68d687ec63625189
This continues b9dd259 since I
accidently missed some files when I commented that.

Since this is implemented on V8Value, it only works for those types
that inherit V8Value. This method will return an integer, which maps
to one of the constants defined in V8Value.

Since V8Array already had a method called getType, we called this
method getV8Type.

Fixes #266

Change-Id: Icf63239a1e889ddf26fd11ab3b3bfcb92b85a179
We had separate APIs for converting V8 results to Maps and Lists,
but we didn't have a generic method for converting any result from
V8 to a Java object using a deep copy.

This includes a number of refactorings, because this method makes it
easier to perform the other deep copies in V8ObjectUtils.

Fixes #267

Change-Id: Id17424d94144104d40102c6f34a9f6e67a2f6a89
Adds documentation about memory management for V8ObjectUtils#getValue.
All intermediate objects are released, but the root is not.

Change-Id: Iae6805d8b280ea0686e831d87d1ab4aba2cd97cf
In some cases we cannot track references entirely in Java and we
need Javascript to track the lifecycle of the Object. With setWeak
a V8Value can be marked as not needed in Java but will remain as
long as no more references exist to the Object. This allows
developers to use V8Values as long as they are still referenced
in Javascript.

V8 does not guarantee that these objects will every be released,
so Weak references should not used unless absolutely necessary.

Change-Id: I6507e2619f8212b65d4624e1dedff0b84724e355
@matiwinnetou
Copy link
Contributor

+1, storing this in home dir by default is somewhat unusual location

@matiwinnetou
Copy link
Contributor

there is some serious issue with this one. Please create properly PR. Hopefully @irbull can agree and merge this. Contrary to other items I guess this is quite low prio for him because one can easily do this oneself. We are just talking about another default.

@tarioch
Copy link
Contributor Author

tarioch commented Jul 11, 2017

Did a new one #303

@tarioch tarioch closed this Jul 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants