-
Notifications
You must be signed in to change notification settings - Fork 8
Nuxeo quick reference
- source
- javadoc
- [Nuxeo Explorer] (http://explorer.nuxeo.org/nuxeo/site/distribution/current) for bundles, components (and services), extension points & contributions (configuration), automation operations
- see [Developing on the service registry] for debugging, testing & more development reference
- document types : see in [OSGI-INF/CoreExtensions.xml] (http://explorer.nuxeo.org/nuxeo/site/distribution/current/viewComponent/org.nuxeo.ecm.core.CoreExtensions) in nuxeo-core-xxx.jar in $NUXEO_HOME/nxserver/bundles
- document metadata schemas : see in source TODO
- [query reference & examples (NXQL)] (https://doc.nuxeo.com/display/NXDOC/NXQL)
- how to get the Nuxeo source, to be able to target it when your IDE wants to open the source of Java code being executed
- Nuxeo online documentation about layouts and widgets
- Layout widget complete list, avaible on your local Nuxeo.
- Online Nuxeo showcase for layout widgets
- An article explaining how to use generic widgets in layout.
Available context variables are : (as seen in AbstractWebContext and at http://doc.nuxeo.com/pages/viewpage.action?pageId=11044493 )
- Context : the View extending AbstractWebContext, which provides : i18n (module's messages) & locale, logging, cookies, principal (user), properties (context variables shared among scripts), user session, running scripts, loginPath, headers, request, form and everything below (path /url...)
- Root : the controller. So you can put there (or in the ModuleRoot class it extends) code available here that requires the request.
- Module : NOT your own module Class. Provides class loading, adapters & resources, validators.
- Runtime : Framework.getRuntime()
- Engine : WebEngine
- basePath : /nuxeo/site
- skinPath : /nuxeo/site/skin/easysoa
- contextPath : /nuxeo
- This : the Web Object if any
- Document : its (adapted) DocumentModel if any
- Adapter : the adapter of the first WebEngine resource having one, starting from the controller
- Session : CoreSession
- & what's put by controller
See also Developing on the service registry.
Simply remove the nxserver/data
folder from Nuxeo (in the EasySOA package, Nuxeo is filed under the serviceregistry
folder).
Open bin/nuxeo.conf
and uncomment the "DEBUGGING" options line:
# Sample JPDA settings for remote socket debugging
JAVA_OPTS=$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
You can switch suspend=n
to suspend=y
if you want to monitor Nuxeo right from the start (Java will wait for you to connect with Eclipse before to start Nuxeo).
You can use a special software like (CMIS Workbench)[http://chemistry.apache.org/java/developing/tools/dev-tools-workbench.html]. The address where the Nuxeo CMIS is published is : [http://localhost:8080/nuxeo/atom/cmis]
Error :
com.google.inject.ProvisionException: Guice provision errors:
1) null returned by binding at org.nuxeo.runtime.test.runner.RuntimeFeature.bind0(RuntimeFeature.java:196)
but org.nuxeo.snapshot.AbstractTestSnapshot.session is not @Nullable
at org.nuxeo.runtime.test.runner.RuntimeFeature.bind0(RuntimeFeature.java:196)
while locating org.nuxeo.ecm.core.api.CoreSession
Solution :
In your test annotations, change cleanup to Granularity.CLASS in
@RepositoryConfig(type = BackendType.H2, init = PublishRepositoryInit.class, user = "Administrator", cleanup = Granularity.METHOD)
It is not done by "+" but by either by putting them along each other in an EL expression, [using <c:set var="s" value="${s1} ${s2}"/>
beforehand] (http://stackoverflow.com/questions/296398/concatenate-strings-in-jsp-el), or defining a [custom concat() function] (http://stackoverflow.com/questions/2192759/concatenate-strings-in-jsf-jsp-el-and-javascript).
- overriding default templates (& TODO actions) : copy to another name, modify them and register them the same way but later (TODO)
- overriding default Seam beans : create an inheriting class and @Install it using a higher precedence, see http://answers.nuxeo.com/questions/411/how-configuring-the-default-page-after-the-user-connexion
See nxweb document tld or javadoc.
-
How to return collections in jaxrs / jaxb / cxf (without going to Spring conf) : create a strong-typed collection class ex. ExchangeRecordCollection See http://dhruba.name/2008/12/08/rest-service-example-using-cxf-22-jax-rs-10-jaxb-and-spring/#comment-781 NB. resteasy provides additional non-standard annotations for that : @Wrapped http://stackoverflow.com/questions/6192389/root-element-name-in-collections-returned-by-resteasy
-
How to handle a reference to another object not as an object but as its id : XmlJavaTypeAdapter See http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.html
-
How to automatically convert java objects to JSON with a JAX RS service : Some annotation need to ba added on the method :
@GET
@Path("/getExchangeRecordStorelist")
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public StoreCollection getExchangeRecordStorelist() { ...
@Produces to tell that the returned type can be a json string. The returned java object, here StoreCollection must have some annotations :
@XmlRootElement
public class StoreCollection {
private Collection<ExchangeRecordStore> stores;
...
@XmlElement(name="ExchangeRecordStore")
@XmlElementWrapper(name="stores")
public Collection<ExchangeRecordStore> getStores() {
return stores;
}
}