NOTE: This is only an example and does not work as is. The example assumes that Search switched to the new menu contribution story which it didn't so far (see bug 213385).
The java search menu items are added through a Java Search action set. They have code that enables/disables the action set depending on the active editor.
For something to go in an actionSet, then we would define the actionSet context. ActionSet contexts are only partially supported in 3.3M5.
<extension point="org.eclipse.ui.contexts">
<context description="%JavaSearchActionSet.description"
id="org.eclipse.jdt.ui.SearchActionSet"
name="%JavaSearchActionSet.label"
parentId="org.eclipse.ui.contexts.actionSet">
</context>
</extension>
Also, a number of the items were retargetable actions that allow label updates. The active handler can update their appearance with an ICommandService@refreshElements(*) call.
<extension point="org.eclipse.ui.commands">
<command name="%ActionDefinition.readAccessInworkspace.name"
description="%ActionDefinition.readAccessInWorkspace.description"
categoryId="org.eclipse.search.ui.category.search"
id="org.eclipse.jdt.ui.edit.text.java.search.read.access.in.workspace">
</command>
<command name="%ActionDefinition.readAccessInProject.name"
description="%ActionDefinition.readAccessInProject.description"
categoryId="org.eclipse.search.ui.category.search"
id="org.eclipse.jdt.ui.edit.text.java.search.read.access.in.project">
</command>
<command name="%ActionDefinition.readAccessInHierarchy.name"
description="%ActionDefinition.readAccessInHierarchy.description"
categoryId="org.eclipse.search.ui.category.search"
id="org.eclipse.jdt.ui.edit.text.java.search.read.access.in.hierarchy">
</command>
<command name="%ActionDefinition.readAccessInWorkingSet.name"
description="%ActionDefinition.readAccessInWorkingSet.description"
categoryId="org.eclipse.search.ui.category.search"
id="org.eclipse.jdt.ui.edit.text.java.search.read.access.in.working.set">
</command>
<command name="%ActionDefinition.writeAccessInWorkspace.name"
description="%ActionDefinition.writeAccessInWorkspace.description"
categoryId="org.eclipse.search.ui.category.search"
id="org.eclipse.jdt.ui.edit.text.java.search.write.access.in.workspace">
</command>
<command name="%ActionDefinition.writeAccessInProject.name"
description="%ActionDefinition.writeAccessInProject.description"
categoryId="org.eclipse.search.ui.category.search"
id="org.eclipse.jdt.ui.edit.text.java.search.write.access.in.project">
</command>
<command name="%ActionDefinition.writeAccessInHierarchy.name"
description="%ActionDefinition.writeAccessInHierarchy.description"
categoryId="org.eclipse.search.ui.category.search"
id="org.eclipse.jdt.ui.edit.text.java.search.write.access.in.hierarchy">
</command>
<command name="%ActionDefinition.writeAccessInWorkingSet.name"
description="%ActionDefinition.writeAccessInWorkingSet.description"
categoryId="org.eclipse.search.ui.category.search"
id="org.eclipse.jdt.ui.edit.text.java.search.write.access.in.working.set">
</command>
</extension>
We'll assume that the Search menu is globally defined elsewhere by the org.eclipse.search plugin.
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="menu:org.eclipse.ui.main.menu?after=navigate">
<menu label="%searchMenu.label"
mnemonic="%searchMenu.mnemonic"
id="org.eclipse.search.menu">
<separator name="internalDialogGroup" visible="false" />
<separator name="dialogGroup" visible="false" />
<separator name="fileSearchContextMenuActionsGroup"
visible="true" />
<separator name="contextMenuActionsGroup" visible="true" />
<separator name="occurencesActionsGroup" visible="true" />
<separator name="extraSearchGroup" visible="true" />
</menu>
</menuContribution>
</extension>
Then the JDT plugin would contribute the menu items to search, where the menuContribution location specifies the starting point for adding the menus. For groups of actions like the Write Access or Read Access shown here, they can just be specified in order. The clauses must be specified on the items contributed if they want to belong to the actionSet, but if the contribute items are contain in a contributed menu, it can just be specified on the