Use XspLibrary (OSGI plugin) in Domino Designer - osgi

I've build an osgi plug-in to wrap existing jar files. I've been following this guide.
After building the plug-in I deploy it via an update site. I use a widget to import the plug-in into the domino designer.
In "File > Application > Application Management" I can verify that
the plug-in is loaded (i.e. it shows up under
/workspace/applications/eclipse)
Now I build a new nsf and I can select my plug-in as a Xsp library in the xsp properties. Then it starts to act strange: I can use all exported classes from the plug-in only if I open then plug-in project in the domino designer, too.
If I close the plug-in project I get two compile errors:
"StringUtils cannot be resolved"
"The import org.apache.commons.lang3 cannot be resolved"
Sometimes I also get the following error:
"The project was not build since the build path is incomplete. Cannot find the class file for ...."
Does anybody now why these errors occur? As I already mentioned: opening the plug-in project in the designer resolves all errors.
Yours
Detlef

You need to have the plugin 'unpack' after installation, at the moment your wrapped jars are hiding within your plugin jar. they need to be unpacked for Domino Designer to use them.
Presumably you created a feature project to install the plugin? Go back to the feature project, and the Plug-ins list, select the plugin and then tick the check-box next to 'Unpack the plug-in archive after the installation'
In your update site, clear out your previously built plugins and features and then re-build this new feature into the update site.
Before installing the new version of the feature it might be a good idea to Uninstall your old version in designer:
File -> Application -> Application Management
Then select the feature in the left pane, and then uninstall from the available tasks in the right pane.
Then re-install from your newly built update site, (or via widget deployment as you did before)
After your installation you can inspect the file system location of where your plugins install to:
<NotesData>/workspace/applications/eclipse/plugins
and verify that the plugin has been un-jarred into a folder instead of being just a jar.
Also, in the Package explorer, if you then open up your XPages application that is using your XspLibrary/Plugin, you should be able to see your plugin in the list of plug-in dependancies, and the icon next to your plugin should be a folder and not a 'jar' icon

Both errors mean that you need to install a dependency of xsplibrary namely apache commons lang 3.x. It is available as an OSGi bundle so you can simply add it to the target platform.

Related

Visual Studio: Include PlugIn but leave out windows part

I am trying to use not the nuget package but the project itself from the media plugin for xamarin forms.
I am adding all the references and upon build (or even clean) i get :
Error: The specified language targets for uap10.0.16299 is missing. Ensure correct tooling is installed for 'uap'. Missing: '/Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/xbuild/Microsoft/WindowsXaml/v16.0/Microsoft.Windows.UI.Xaml.CSharp.targets' (Media.Plugin)
I beleive it is looking for the windows SDK which isnt isntalled on my mac and the project itself only supports android and ios.
Using the nuget package, I can check that I only want ios and Android and it works fine, but upon loading the project in as the project it gives me this error.
In the dependencies folder of the project it is still referencing this UAP 10.0.16299 but upon right click all I can do is "refresh".
How can I build my project and leave out this windows crap?
First include the whole project, then edit the CS proj file (right click on solution -> edit project file).
In the first few lines it says: <TargetFramworks...
Remove the unwanted dependencies. They will be gone in the main folder if you save.
Thats it.

Reference hell accessing .netstandard with framework VS2019 preview

I can get my .net standard 2.0 package working in a .net framework 4.7.2 dll if I do the following steps
In my standard project VS2019 61.4.4 right click the project and select pack to create the .nupkg
Then I set up a nuget package source for the package
In my framework project I install nuget package
I get the following dialog
I choose PackageReference in project file
I answer yes to accept licensing
Then I can see the following
And I can get my project working.
However on a different machine running VS2019 16.5.0 Preview 2.0, I do not get the dialog asking me to choose the package manager format.
Instead the references look like
and I can not get my project working.
[Update]
After following Lance's link to migrate packages.config to PackageReference
The project looks like
I was able to remove the unwanted packages by right clicking references and choosing Remove Unused References
The program worked!
Go Tools=>Nuget Package Manager =>General => Package Management You can control the behavior by Allow format selection on first package install. Enable the checkbox and restart VS, this change will take effect.
And note the dialog only appears when we install first package in current project. So if you create a new project and install package, it will appear. And since you once installed packages in that project, the dialog won't appear in WindowsFormApp2 any more.
(But you can easily migrate packages.config to PackageReference, see this).

Visual Studio : build not referenced plugin project

I'm working on a WPF application that loads plugin assemblies on runtime.
My solution contains the host app (wpf app set as startup project) and the plugin as another project (class library).
The plugin project references the host app.
My problem is that since the host app doesn't reference the plugin project, the plugin project is not built when I click "Start" and I need to manually build it each time I modify it before I start the host app.
In the "Project dependencies" of my solution, I cannot add my plugin project to the dependencies of my host app since VS says it would create a circular reference (it wouldn't since my host app doesn't really need the plugin to compile or work).
Is there a way to tell VS I want the plugin project built when I click Start (if the plugin project is out of date), even if it's not a real reference ?
Thanks,
Regards.

m2e will not run on server [duplicate]

I'm trying out the next version of Eclipse using the latest milestone build and I'm having an issue getting my Maven project deployed to Tomcat.
Previously in Eclipse 3.6, my project was automatically enabled as a web project when checked out from SVN. I've checked out my project in 3.7 but get nothing indicating it's runnable as a web project (e.g. trying to run the project doesn't give me the usual "Run on Server" option).
What I've installed is Indigo RC4 "Eclipse IDE for Java EE Developers" version. I then added the latest M2E milestone from here. This enabled me to get up and running, check out my project and I seem to be able to build the project fine (which does create my .war file for remote deployment). Still no "Run On Server" options though.
Does anyone have any clues on what I could be missing? I'm guessing it's a Maven & WTP integration plugin but I haven't spotted the right one yet.
Before m2e became an eclipse project the WTP integration shipped with the core module. Now the core module is an eclipse module and the WTP integration is shipped separately. The current Indigo snapshots of m2eclipse-wtp can be found here. I was unable to get any artifacts from this update site however, even though it's listed in the corresponding JIRA issue.
Fortunately, today m2e-wtp was made available through the m2e Marketplace. Just open the eclipse preferences, go to 'Maven' -> 'Discovery' -> 'Open Catalog' and install it. .
It will work with the lastet version, it's just the .project that is not right.
Simply go into the project properties, make the projet faceted.. tick Dynamic Web Module and you'll get run on server as an option after that.
This will enable the "Run on Server" option, however your problems don't finish there as when you then run it, you'll get a 404.
To fix this, go back into project properties, Deployment assembly.
Delete the WebContent entry (and you can delete the folder in the project later too), and make sure you have the src-main-webapp & src-main-resource folders added.
Bingo.. run the app and it should be fine.

How to update assembly assembly references in a web site?

I'm making a build using FinalBuilder Pro 7.
I've an ASP.NET web site and I'm trying to use FinalBuilder's "Precompile Asp.net 2.0 Application" action. Well, It fails.
To build it successfully I need to run Visual Studio, open the web site and either build it manually from within VS or manually update all references. After that it works.
Now the question: How to force FinalBuilder to update those references? Even if I create web deployment project associated with the web site and try to build it with msbuild action it would fail for the same reason. Somehow neither action updates references automatically.
Update: OK. Maybe I need to force msbuild to update references. How to do that?
I found some properties that I can change at msbuild action.
On called ResolveAssemblyReferencesDependsOn I tried to put the value = true. Didn't help.
Any ideas?
There are different types of projects in .NET like library project, website project, web API project etc. As you mentioned in your question it is a website project, so I am going to give you a solution for website project.
You can build a project by two ways. Either you can build by visual studio or you can build by using MS Build. If you build your project by using VS, you can update references of your dependencies by executing the command "Update-Package -reinstall" in package manager console. It will reinstall all the packages automatically.
Please note that, all your dependencies are listed in packages.config file.
Secondly if you have to build your project by MS Build using cmd prompt, to load all the dependencies from nuget, you have to execute nuget.exe. By which all your dependencies will be loaded, but their references may not be updated. So in website project you do not have .proj file. So you can't have access to the references of your dependencies. Now problem is that how you can modify your dependencies references?
In website project reference of an assembly exists in its .refresh file. So you have to modify that .refresh file to update the reference of an assembly in website project.
Have you tried using the 'Build VS.NET Solution' or 'MSBuild Project' actions? Both should resolve your assembly references, provided the reference is set to the right location. This requires that you at least have a project file.
As I understand it, the Precompile action (which uses the MS aspnet_compile.exe - see http://msdn.microsoft.com/en-us/library/ms229863(VS.80).aspx) is designed to re-compile an asp.net application which has previously been built via VS or MSBuild. It does either an in-place compile to improve performance for the first user that hits the site, or creates a deployable application (removing source code etc). It's not meant as an alternative to VS/MSBuild.
I'm not 100% sure I understand the problem, but I believe you need to be able to correct some pathing on an assembly reference automatically.
I created a project to handle this (along with some other things): refswap.codeplex.com

Resources