I'm actually not assuming users are familiar with Maven and do want to
in fact keep things as agnostic to Maven as we can and as simple as we
can :-). Most people would be able to easily navigate to /tmp without
understanding much as compared to having to navigate several directory
levels with specific knowledge of Maven, NetBeans, GlassFish, Derby,
etc. I suspect this is why the original application that we are porting
from (also a Maven project) used /tmp as well.
On 10/7/2013 2:17 PM, Bruno Borges wrote:
> Cargo is a Maven project, and so we should assume users are familiar
> with Maven.
> These directory properties should point by default to folders in
> target, and if user wants to change that, they are free to do so.
> Providing description in README should be enough.
>
> Thoughts?
>
> On 10/07/2013 03:02 PM, Reza Rahman wrote:
>> The problem is that the Maven target directory is also fairly
>> unintuitive for many folks (i.e. for manually deleting the database
>> or pointing a GUI DB browser against the Derby files) and we do use
>> /tmp for stuff other than the DB, such as the file scanner process
>> that does require manual interaction.
>>
>> On 10/7/2013 1:46 PM, Bruno Borges wrote:
>>> Instead of /tmp or ${user.home}, why not use the target folder of
>>> the Maven build?
>>> It will be deleted automatically also, in case of a mvn clean.
>>> I don't like when a Maven project creates files/folders out of its
>>> boundaries.
>>>
>>> m2c
>>>
>>> On 10/07/2013 01:32 PM, Reza Rahman wrote:
>>>> Just tested things out on Linux - /tmp seems to work well. I have
>>>> already checked in my changes and the download is refreshed too.
>>>>
>>>> The problem with ${user.home} is that on Windows it turns out to be
>>>> a pretty unintuitive location, so /tmp is a good compromise. It
>>>> also works well with the intent of the database in our application.
>>>>
>>>> If you can give things a spin when you get a chance just to make
>>>> sure, it'll be great. The unit testing that also uses /tmp is now
>>>> active.
>>>>
>>>> On 10/5/2013 1:19 PM, David Heffelfinger wrote:
>>>>> I know I said I was busy, but I had an idea and had to try it,
>>>>> otherwise I wouldn't be able to focus on what I really should be
>>>>> doing.
>>>>>
>>>>> I changed pom.xml to read:
>>>>>
>>>>> <webapp.databaseTempDir>${user.home}/temp</webapp.databaseTempDir>
>>>>>
>>>>> So that the "temp" directory would be created under my home
>>>>> directory instead of under the root directory.
>>>>>
>>>>> Did a clean built and redeployed and everything worked as
>>>>> expected. a "temp" directory was created under my home directory
>>>>> containing the database.
>>>>>
>>>>> Maybe we should make this change permanently? Everybody should
>>>>> have write permissions to their own home directory, this way we
>>>>> avoid permissions issue on operating systems other than Windows.
>>>>>
>>>>> Now for real, I have work, that needs to get done.
>>>>>
>>>>> David
>>>>>
>>>>>
>>>>> On Sat, Oct 5, 2013 at 1:05 PM, Reza Rahman
>>>>> <Reza.Rahman_at_oracle.com <mailto:Reza.Rahman_at_oracle.com>> wrote:
>>>>>
>>>>> Inline...
>>>>>
>>>>>
>>>>> On 10/5/2013 12:56 PM, David Heffelfinger wrote:
>>>>>> Makes sense that changing pom.xml should be the only change
>>>>>> needed to change the database location. I was surprised when
>>>>>> the problem persisted after making the change.
>>>>>>
>>>>>> I cleaned and built a few times just to make sure, the
>>>>>> problem persisted, maybe GlassFish is seeing an old version
>>>>>> of the war file somewhere?
>>>>> Another GF/NB bug maybe?
>>>>>
>>>>>>
>>>>>> I'll try changing the values for "databaseTempDir" when I get
>>>>>> a chance. I'm kind of swamped with other stuff at the moment.
>>>>> No worries, take your time. I'll see if I can get a Linux
>>>>> instance up and running on my end.
>>>>>
>>>>>>
>>>>>> David
>>>>>>
>>>>>>
>>>>>> On Sat, Oct 5, 2013 at 12:51 PM, Reza Rahman
>>>>>> <Reza.Rahman_at_oracle.com <mailto:Reza.Rahman_at_oracle.com>> wrote:
>>>>>>
>>>>>> The previous problem you were having was very likely a
>>>>>> GlassFish bug. The promoted version of GlassFish you are
>>>>>> running also has knows bugs that we've documented on the
>>>>>> site FYI.
>>>>>>
>>>>>> To change the database location, all you should need to
>>>>>> do is change the <webapp.databaseTempDir> entry in
>>>>>> pom.xml and rebuild. The test-web.xml entry is used only
>>>>>> for tests.
>>>>>>
>>>>>> Could you kindly try out different values for
>>>>>> 'databaseTempDir' and see if something can work without
>>>>>> needing to muck with permissions/creating directories?
>>>>>> Otherwise, we really need to add this to our setup
>>>>>> instructions ASAP:
>>>>>> https://java.net/projects/cargotracker/pages/NetBeans. I
>>>>>> would do this myself but I'll take me a while to get a
>>>>>> Linux/UNIX version up and running...
>>>>>>
>>>>>>
>>>>>> On 10/5/2013 12:36 PM, David Heffelfinger wrote:
>>>>>>> Better, but not a flawless experience.
>>>>>>>
>>>>>>> Originally I got an exception:
>>>>>>>
>>>>>>> java.sql.SQLException: *Failed to create database
>>>>>>> '/temp/cargo-tracker-database', see the next exception
>>>>>>> for details.*
>>>>>>> at
>>>>>>> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown
>>>>>>> Source)
>>>>>>> at
>>>>>>> org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown
>>>>>>> Source)
>>>>>>>
>>>>>>> I'm on a Linux system, not running as root, and there is
>>>>>>> no /temp directory, so I changed the following line in
>>>>>>> pom.xml:
>>>>>>>
>>>>>>> <webapp.databaseTempDir>/temp</webapp.databaseTempDir>
>>>>>>>
>>>>>>> to
>>>>>>>
>>>>>>> <webapp.databaseTempDir>/tmp</webapp.databaseTempDir>
>>>>>>>
>>>>>>> Then changed the following line in test-web.xml
>>>>>>>
>>>>>>> <url>jdbc:derby:/temp/test/cargo-tracker-database;create=true</url>
>>>>>>>
>>>>>>> to
>>>>>>>
>>>>>>> <url>jdbc:derby:/tmp/test/cargo-tracker-database;create=true</url>
>>>>>>>
>>>>>>> Rebuilt and redeployed, but I was still getting the
>>>>>>> exception, I searched all over the code for references
>>>>>>> to "/temp" but couldn't find any.
>>>>>>>
>>>>>>> As a workaround I sudo'ed to root, created /temp and
>>>>>>> chmod'ed it 777, and was finally able to deploy.
>>>>>>>
>>>>>>> FWIW, this is the version of GlassFish I downloaded:
>>>>>>>
>>>>>>> http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/latest-glassfish.zip
>>>>>>> <http://dlc.sun.com.edgesuite.net/glassfish/4.0/promoted/>
>>>>>>>
>>>>>>> Added it to NetBeans ("Services" tab, right click
>>>>>>> "Servers" | "Add Server")
>>>>>>>
>>>>>>> David
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Sat, Oct 5, 2013 at 12:05 PM, Reza Rahman
>>>>>>> <reza.rahman_at_oracle.com <mailto:reza.rahman_at_oracle.com>>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Could you kindly try the nightly build of GlassFish
>>>>>>> 4 and tell me what happens?
>>>>>>>
>>>>>>> Sent from my iPhone
>>>>>>>
>>>>>>> On Oct 5, 2013, at 12:01 PM, David Heffelfinger
>>>>>>> <dheffelfinger_at_gmail.com
>>>>>>> <mailto:dheffelfinger_at_gmail.com>> wrote:
>>>>>>>
>>>>>>>> All,
>>>>>>>>
>>>>>>>> I got the latest source code from SVN as of this
>>>>>>>> morning (revision 123).
>>>>>>>>
>>>>>>>> I loaded the project into NetBeans 7.4 RC2, and
>>>>>>>> built it without a problem.
>>>>>>>>
>>>>>>>> I then attempted to deploy and run the project to
>>>>>>>> GlassFish 4 (included with NetBeans), but was
>>>>>>>> unsuccessful, I got a NoClassDefFoundError.
>>>>>>>>
>>>>>>>> Here is a partial stack trace:
>>>>>>>>
>>>>>>>> SEVERE: Exception while preparing the app :
>>>>>>>> java.lang.NoClassDefFoundError: Could not
>>>>>>>> initialize class org.apache.derby.jdbc.EmbeddedDriver
>>>>>>>> java.lang.NoClassDefFoundError: Could not
>>>>>>>> initialize class org.apache.derby.jdbc.EmbeddedDriver
>>>>>>>> at java.lang.Class.forName0(Native Method)
>>>>>>>> at java.lang.Class.forName(Class.java:188)
>>>>>>>> at
>>>>>>>> com.sun.gjc.spi.DMManagedConnectionFactory.createManagedConnection(DMManagedConnectionFactory.java:114)
>>>>>>>> at
>>>>>>>> com.sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:87)
>>>>>>>> at
>>>>>>>> com.sun.enterprise.resource.pool.ConnectionPool.createSingleResource(ConnectionPool.java:907)
>>>>>>>> at
>>>>>>>> com.sun.enterprise.resource.pool.ConnectionPool.createResource(ConnectionPool.java:1189)
>>>>>>>> at
>>>>>>>> com.sun.enterprise.resource.pool.datastructure.RWLockDataStructure.addResource(RWLockDataStructure.java:98)
>>>>>>>>
>>>>>>>> I made sure I had derby.jar under .../domain1/lib
>>>>>>>> but the problem persists.
>>>>>>>>
>>>>>>>> I would look deeper into it but unfortunately I'm
>>>>>>>> busy with some other stuff.
>>>>>>>>
>>>>>>>> Is this a known issue or am I missing something here?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> David
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> http://ensode.net <http://ensode.net/> - A Guide to
>>>>>>>> Java, Linux and Other Technology Topics
>>>>>>>> My Books:
>>>>>>>> http://www.packtpub.com/authors/profiles/david-heffelfinger
>>>>>>>> My Video Training:
>>>>>>>> http://www.packtpub.com/java-ee-development-with-netbeans-7/video
>>>>>>>> Follow me on Twitter: https://twitter.com/ensode
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> http://ensode.net <http://ensode.net/> - A Guide to
>>>>>>> Java, Linux and Other Technology Topics
>>>>>>> My Books:
>>>>>>> http://www.packtpub.com/authors/profiles/david-heffelfinger
>>>>>>> My Video Training:
>>>>>>> http://www.packtpub.com/java-ee-development-with-netbeans-7/video
>>>>>>> Follow me on Twitter: https://twitter.com/ensode
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> http://ensode.net <http://ensode.net/> - A Guide to Java,
>>>>>> Linux and Other Technology Topics
>>>>>> My Books:
>>>>>> http://www.packtpub.com/authors/profiles/david-heffelfinger
>>>>>> My Video Training:
>>>>>> http://www.packtpub.com/java-ee-development-with-netbeans-7/video
>>>>>> Follow me on Twitter: https://twitter.com/ensode
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> http://ensode.net <http://ensode.net/> - A Guide to Java, Linux
>>>>> and Other Technology Topics
>>>>> My Books: http://www.packtpub.com/authors/profiles/david-heffelfinger
>>>>> My Video Training:
>>>>> http://www.packtpub.com/java-ee-development-with-netbeans-7/video
>>>>> Follow me on Twitter: https://twitter.com/ensode
>>>>
>>>
>>> --
>>> |Bruno Borges (twitter @brunoborges)
>>> Principal Product Manager | Java WebLogic Coherence GlassFish
>>> Oracle LAD PM Team | Cloud Application Foundation
>>> +55 11 5187 6514 (Work) | +55 11 99564 9058 (Mobi)|
>>
>
> --
> |Bruno Borges (twitter @brunoborges)
> Principal Product Manager | Java WebLogic Coherence GlassFish
> Oracle LAD PM Team | Cloud Application Foundation
> +55 11 5187 6514 (Work) | +55 11 99564 9058 (Mobi)|