- More common: If Project > Build Automatically is checked off, do a Project > Clean on the problematic project. Usually this fixes the issue.
- If compile errors persist, especially indicating dependencies that should be resolved by Maven, Project > Update All Maven Dependencies. This may be needed if the local repository was moved; Eclipse may need to be refreshed of this.
- Speaking of which, after moving the Maven local repository, simply update the path in the settings.xml file in the .m2 directory in your home directory (e.g. C:\Documents and Settings\alan.leung\.m2 or ~/.m2 on *nix)
Labels
.net
(1)
*nix
(1)
administration
(1)
Android
(2)
Axis2
(2)
best practice
(5)
big-data
(1)
business-analysis
(1)
code re-use
(1)
continuous-integration
(1)
Cordova-PhoneGap
(1)
database
(2)
defect
(1)
design
(3)
Eclipse
(7)
education
(1)
groovy
(2)
https
(2)
Hudson
(4)
Java
(1)
JAX-RS
(2)
Jersey
(3)
Jetty
(1)
localization
(1)
m2eclipse
(2)
MapForce
(1)
Maven
(12)
MySQL
(1)
Nexus
(4)
notes
(4)
OO
(1)
Oracle
(4)
performance
(1)
Perl
(1)
PL/SQL
(1)
podcast
(1)
PostgreSQL
(1)
requirement
(1)
scripting
(1)
serialization
(1)
shell
(1)
SoapUI
(1)
SQL
(1)
SSH
(2)
stored procedure
(1)
STS
(2)
Subclipse
(1)
Subversion
(3)
TOAD
(3)
Tomcat
(4)
UML
(2)
unit-testing
(2)
WAMP
(1)
WAS
(3)
Windows
(3)
WP8
(2)
WTP
(2)
XML
(4)
XSLT
(1)
Tuesday, August 9, 2011
Maven project has errors in Eclipse (no changes were made)
Possible fixes:
Tuesday, July 19, 2011
Configuration objects read from/saved to files
For Spring-enabled applications, Spring has a rich configuration scheme, and objects can be fully configured and wired together based on the directives specified.
Alternatively, one can consider defining the application configuration by code, serializing the configuration objects to file as a starting point, and then, as needed, editing the configuration in file format. When the application starts up, it will read in the configuration, de-serialize it back into object form and the application can work with the configuration.
Not unexpectedly, Spring has a way to set up marshallers/unmarshallers for your application so that it is opaque to the application which XML serialization library it is using. This makes it easy to swap out for a different library. I tried three different libraries with Spring and these are my findings:
Alternatively, one can consider defining the application configuration by code, serializing the configuration objects to file as a starting point, and then, as needed, editing the configuration in file format. When the application starts up, it will read in the configuration, de-serialize it back into object form and the application can work with the configuration.
Not unexpectedly, Spring has a way to set up marshallers/unmarshallers for your application so that it is opaque to the application which XML serialization library it is using. This makes it easy to swap out for a different library. I tried three different libraries with Spring and these are my findings:
Library | PROS | CONS |
---|---|---|
JAXB | "The standard for Java"? |
|
Castor | Popular? | Serializes well but on deserializing, get an error of org.springframework.oxm.castor.CastorUnmarshallingFailureException: Castor unmarshalling exception: The class for the root element 'anonymize-settings' could not be found.; nested exception is org.exolab.castor.xml.MarshalException: The class for the root element 'anonymize-settings' could not be found. For whatever reason, Castor doesn't add the xsi:type attribute on the root element when it serializes. |
XStream |
| Not popular? But the library is so simple to use, there is absolutely no learning curve so you don't have to devote a lot of time to it |
Monday, April 25, 2011
Notes on early TSS.NET Unit Testing article
- Article
- "A test fixture is a class that contains a series of test methods ... This grouping is important for two main reasons: one, it creates a subset of tests that can be run as a group, separate from other groups of tests, and two, it provides a level of granularity for controlling the lifecycle and context of a test."
- For database code, article suggests using stored procedures to initialize database for a unit test and calling these stored procedures in SetUp and TearDown. Also, more specific stored procedures to create additional data for specific tests. More ideas: Get Test Infected with NUnit: Unit Test Your .NET Data Access Layer
- a mock object will have the same interface as the "real" object. The implementation of the mock object should track usage, allowing you to determine if the right calls were made (by the tested code), and expose any methods/properties that test code might use to evaluate results. Rather than implement yourself, can use a dynamic mock object library such as NMock
- Nester helps verify code coverage by unit testing: "involves modification of programs to see if existing tests can distinguish the original program from the modified program" (mutation testing)
- So that test code doesn't force breaking encapsulation of the tested code, have tests reside in same assembly and namespace as code being tested. Then non-public methods/properties that need to be accessed by test code can be marked with internal modifier
Wednesday, March 30, 2011
Friday, March 25, 2011
Unable to find resource 'xxxxxxxxxxxx:xxxxx:maven-plugin:x.x.x' in repository central
Although one may think to correct this by adding a <repository> specification in the POM file, a closer look at the error messages, including "A required plugin was not found: Plugin could not be found - check that the goal name is correct: Unable to download the artifact from any repository" may give another clue. For plugins, a <pluginRepository> specification is required.
Tuesday, March 15, 2011
Deploy to own Maven repository using SSH
- Maven command: mvn deploy:deploy-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> -Dpackaging=<e.g. jar or war, etc.> -Dfile=<path to file>-Durl=<e.g. scpexe://your hostname/full file system path to repo on server> -DrepositoryId=<id of repo in settings.xml>
- References: Deployment of artifacts in an external SSH command and Deploy Plugin
Requirements gathering/Analysis
Key challenges:
- Tracking issues, decisions and rationale
- Transform ambiguity to concrete rules/processes
- Explaining process logic concisely
- Closing any loop-holes in process
- Email - organize by project, subject. Use tags for content that falls into more than one folder
- Spreadsheet or similar - columns: Date issue raised, issue, issue ID, resolution, who is addressing, what is resolution pending on, related documents or emails
- use of flowcharts, sequence diagrams or swim lane diagrams. Use case diagrams to summarize and group according to user role
- number the steps so that they can be talked to and addition explanation can be associated with a given step
Subscribe to:
Posts (Atom)