I'd like to create a simple Hello World app with Java DSL.
From the Fuse IDE, I choose "camel-archetype-java."
I saw that a sample application is created for me.
A src folder with two xml messages were generated. A sample route is generated:
.when(xpath("/person/city = 'London'"))
How do I deploy this application in Fuse ESB?
No, Fuse ESB doesn't rely on environment variables FUSE_ESB set.
When I mentioned the $FUSE_ESB, I just refer to the location where you install Fuse ESB.
Did a close look at the camel-archetype-java, the package in pom.xml is plain jar, so it's not designed to be deployed into OSGi container, you should use camel-archetype-blueprint instead which demonstrate how to generate blueprint bundle and deploy to OSGi container. Take a look at  to get different camel archetypes purpose.
However, adapt the camel-archetype-java to be able to deployed into OSGi container isn't difficult, you just need edit the generated pom.xml
<!-- to generate the MANIFEST-FILE of the bundle -->
to the <plugins> tag, then build it and drop the jar to $FUSE_ESB/deploy folder, then you can see $FUSE_ESB/src/data folder get generated automatically for you, then you can copy message1|2.xml into this folder and you can find in $FUSE_ESB/target there's the output files.
You should use the blueprint or spring / spring-dm archetype to create a new project. Then its OSGi based, and will kick start your Camel apps. The Java DSL can still be used, as you can use the <routeBuilderRef> or <packageScan> to refer to your java classes with the Java DSL.
In the pure Java archetype there is no XML file that automatic kick-start your app in the OSGi container. So your app starts, but don't start your Camel app. For that you would need to code your own OSGi Bundle Activator class and put inside your own JAR, and add a meta data in the MANIFEST.MF file so the OSGi container is aware of your custom OSGi bundle activator so it can start|stop it accordingly to the lifecycle of your bundle. When you have a XML file (blueprint or spring) then that happens automatic for you.
In the future with CDI annotations we may be able to have a way of also automatic to kick-start your app, by you annotation your Java DSL class or something alike.