With all due respect, I don't think this is a significant improvement in
usability beyond personal preference, so I don't want to introduce
additional code complexity unless there are more requests for this
specific change based on pragmatic concerns. I think we have more
substantive enhancements to work on for Cargo Tracker. Furthermore, a
realistic application would most certainly not use the Maven/build
target directory, particularly for things like file scanning, so /tmp is
a bit closer to the real thing although still not ideal.
On 10/7/2013 2:28 PM, Bruno Borges wrote:
> I prefer to believe the old application was using /tmp due to a
> mistake at the moment of writing it.
>
> Anyway, another option is to also provide Maven profile for Windows
> (and default to Unix), and use the C:\Temp or something similar for
> Windows platform.
>
> I bet there are more Windows users unfamiliar with Maven than Linux users.
>
>
> On 10/07/2013 03:25 PM, Reza Rahman wrote:
>> 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)|
>>
>
> --
> |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)|