Private inlined VIs and packed project libraries

So, I'm trying to build a packed project library and it has a few *private* VIs that are crying out to be inlined (simple VIs used in a for loop etc). However, this seems to be causing a few issues:
1. When I attempt to build the lvlibp I get an error stating "You cannot include inlined VIs inthis build if you remove the block diagram from the VI or if callers adapt to VIs in the packed library.". Whilst this makes sense to me for public packed library VIs, why does this matter for private ones - surely the VI will already get flattend out into the calling VI during the build process?
2. If I try and set the Source File Settings for the inline VI to not remove the block diagram (as suggested by the error), the error still does not go away (I would really like to keep the ability for callers to adapt to VIs in the packed library).
Here's a stripped out project (with instructions) showing the issue.
It seems like a bug to me, but any ideas? 
Thanks,
Shaun
Attachments:
Inline VIs and Packed Libraries.zip ‏19 KB

I was just going through the instructions to reproduce the error. Because the error says "You cannot include inlined VIs in this build if you remove the block diagram from the VI OR if callers adapt to VIs in the packed library," it seems like as long as you maintain your settings for the caller to be able to adapt the VI, then I would expect this error to continue to occur.

Similar Messages

  • Where Used for VIs and LabVIEW Project

    Is there a way in LabVIEW Project Manager to check the Where Used status on all the VIs at the same time? I am going through a project trying to weed out VIs that are not used in the project. I know I can check the "Find Callers" for each VI, but this feels slow and cumbersome. Is there a way I can generate a report to find the Where Used status on all VIs in a project?
    Thanks,
    Matt

    You also have the Find Items with No Callers Dialog Box as of LV 8.5
    Eric V
    National Instruments
    Applications Engineer
    Certified LabVIEW Associate Developer
    "I'm a Ramblin' Wreck from Georgia Tech and a helluva (NI Applications) Engineer!"

  • Project libraries, polymorphic VIs, and access scope

    I'm trying to be good and arrange all my VIs appropriately in project
    libraries*, marking each VI as public or private as I go. But I have
    found that, when a polymorphic VI is called from outside a project
    library, LabVIEW uses the access scope (public/private) from the
    instance VI, not the polymorphic VI. It seems that the scope for the
    polymorphic VI is simply ignored; you can even call a private
    polymorphic VI, as long as the instance VI is public. I assume this has
    something to do with how the actual instances are dropped on the
    diagram via the polymorphic VI. Is this the intended behavior? It just
    doesn't seem like the way things should be, at least not in my head.
    The attached example contains a project library (Case Lib.lvlib) with three VIs:
    Poly (private)
    Case DBL (public)
    Case I32 (private)
    There
    is also a Use Case DBL VI that calls Case DBL via Poly and a Use Case
    I32 VI that calls Case I32 via Poly. Use Case DBL runs fine. Use Case
    I32 has a broken arrow.
    Originally, I had made a library with a
    public polymorphic VI and private instances, because that's what makes
    intuitive sense to me. Calling the polymorphic VI from another VI
    didn't work because the instances were private.
    (Cross-posted from LAVA.)

    Good observations, these are all issues we are working on addressing in future versions of LabVIEW.  Ultimately the behavior we are going for is having the library scope checking be on the poly VI and not the instances, but I can't say at this point in which version of LabVIEW you would be able to see this changes.  Thank you for the feedback.

  • Projects and Project Libraries

    I've been happily using Projects since they were introduced in LabVIEW 8-something.
    I've got a Project whose task involves examining directory trees containing other VIs.  In some cases, the VIs my code examines have the same name as one of the VIs being used in the code (I'm running in Development Mode, not from an executable).  To avoid "name clashes", I did a search on NameSpaces and learned about Project Libraries.
    So I've successfully ported all of the files in my Project into a similarly-named Project Library.  The code works just fine.
    Today, I opened my Project to look at one of my VIs, and to my horror, the Project had none of the files showing.  It also didn't show the Project Library (where I "knew" all the files were located).  A tad worried, I looked on my disk, and found the Project Library (.lvlib) file -- if I double-click it, there are my files!
    What I'm having trouble doing (maybe because it is impossible!) is getting a view "inside" my Project Library from the Project Explorer.  Given the close relationship between Projects and Project Libraries (the second is created from the first, for example), I would have expected to see such a link.  Does it exist?  Or are you expected to open both a Project (which, in my case, has files that are not in the Project Library) and the corresponding Project Library?
    Note I did a search through the NI Documentation on Project Libraries, and what I read emphasized the close relationship between a Project and an associated Project Library, including giving them the same (or similar) name and keeping the files in the same folders.  [Hmm -- I just realized I did not name my Project and Library identically -- I called the Project "Project XYZ", and the Project Library "Library XYZ" ...].
    Experience "from the field" would be most welcome!
    Bob Schor
    Solved!
    Go to Solution.

    HandyAndy wrote:
    Would you mind posting your project so someone could take a look at it?
    Dear Handy,
         Humble Pie time (again!).  When I saw your request, I said (to myself, silently) "Just how dumb do they think I am?".  So this morning, I brought back an earlier pre-Library version of my Project, captures some screen shots of "Before", and started to (re-)create my Library.  I couldn't remember exactly how I did it before, so I followed the steps in the LabVIEW 2011 Manual.  I did a "New, Library" from My Computer in the Project, and dragged stuff into it.  This time, I noticed there was a lot of "saving VIs" that I didn't recall from my earlier (first) Project Library.  When I was done, there, in Project, right where I was expecting to see it (but wasn't!) was my Project Library!
         So what did I "do wrong" before that caused the Library to "disappear" from the Project?  Who knows, but I clearly did something (mysterious) incorrectly -- I'll try not to do whatever-it-was again!
         Onward and upward (or maybe onward and downward, since Austin, home of NI Week, is south from here ...).
    Bob Schor

  • JDeveloper project libraries and Maven dependencies

    hi
    Using the Apache Trinidad Maven JDev Plugin, I am wondering how JDeveloper project libraries and Maven dependencies are supposed to be related (or "matched", or "kept in sync", or "work together", or ...).
    With the Maven settings.xml configured like this ...
    <settings>
      <!-- ... -->
      <localRepository>C:\my-maven-repository</localRepository>
      <!-- ... -->
    </settings>... I tried this ...
    C:\projects>mvn -v
    Maven version: 2.0.9
    Java version: 1.6.0_05
    OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
    C:\projects>mvn archetype:create -DgroupId=com.oracle.forums.mvnfirstproj -DartifactId=mvn-first-proj
    [INFO] OldArchetype created in dir: C:\projects\mvn-first-proj
    C:\projects>cd mvn-first-proj
    C:\projects\mvn-first-proj>mvn org.apache.myfaces.trinidadbuild:maven-jdev-plugin:jdev
    [INFO] Scanning for projects...
    [INFO] artifact org.apache.myfaces.trinidadbuild:maven-jdev-plugin: checking for updates from central
    Downloading: http://repo1.maven.org/maven2/org/apache/myfaces/trinidadbuild/maven-jdev-plugin/1.2.7/maven-jdev-plugin-1.2.7.pom
    2K downloaded
    [INFO] [jdev:jdev]
    [INFO] Generating JDeveloper 10.1.3.0.4 Project mvn-first-proj
    [INFO] Generating JDeveloper 10.1.3.0.4 Project mvn-first-proj-test
    ...After this, the file C:\projects\mvn-first-proj\mvn-first-proj-test.jpr contains
          <!-- ... -->
          <list n="libraryDefinitions">
            <hash>
              <list n="classPath">
                <url path="../../my-maven-repository/junit/junit/3.8.1/junit-3.8.1.jar" jar-entry=""/>
              </list>
              <value v="true" n="deployedByDefault"/>
              <value v="junit:junit:jar:3.8.1" n="description"/>
              <value v="junit:junit:jar:3.8.1" n="id"/>
            </hash>
          </list>
          <!-- ... -->Notice the path for the JAR file in my specific Maven repository, to be relative to my specific project location.
    questions:
    (1) This seems to severely limit the options to share such a JDeveloper project file between developers in a team (e.g. using Subversion), because they would need their Maven repository and their JDeveloper project to be in the same (relative) location. Is this intended? Are there any options to work around these limitations?
    (2) If a project evolves, and additional libraries need to be configured in a JDeveloper project, what would be the preferred approach to keep these in sync with Maven dependency configurations?
    many thanks
    Jan Vervecken

    Hi Jan,
    Yes, some of the current approach is not ideal.
    +"Maven's primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time."+ - By having the pom.xml define for the project, I get the ability to run site goals, junit tests and other maven reports - get a feel for the project state. Even with a very basic pom.xml file containing the groupId, ArtifactId, version, SVN repository definition and the release plugin you gain the ability to use "mvn release:clean release:prepare" to help with tagging the source in SVN. These represent progress as up to this point the team has not had access to this.
    +"Making the build process easy".+ - The approach does make the build part easier for JDeveloper 10.1.2. As a maven build, it is now possible to check the project into SVN and have it built by Bamboo, without having to include an installation of JDeveloper 10.1.2 (for library access) on the CI server.
    +"If I understand correctly, in your approach, you are trying to keep both pom.xml and JDeveloper project files up-to-date manually?"+ - The only reason for keeping the JPR in sync with the pom.xml file is to allow the developers to still make use of features such as selecting run from the right click menu. At present, I am still slowly getting up to speed on how JDeveloper works and interacts with OC4J. Ultimately, you would want a maven plugin that will deploy the packaged WAR or EAR to the OC4J stand-alone or remote instance. This plugin would probably wrap the commands that the IDE uses, e.g.
    If you right click on the deployment profile for a project (JDeveloper 10.1.2) and select the Platform > Standalone OC4J options, you find:
    Deploying Ear+
    ${java} ${jvm.max.heap.size} -jar ${admin.jar}
    ${oc4j.url} ${username} ${password}
    -deploy -file ${ear.file}
    -deploymentName ${j2ee.app.name}
    Binding Web Apps+
    ${java} -jar ${admin.jar}
    ${oc4j.url} ${username} ${password}
    -bindWebApp ${j2ee.app.name} ${j2ee.web.app.name}
    ${oc4j.web.site} ${j2ee.context.root}
    And for Platform > OracleAS Remote DCM:
    ${java} -Djava.protocol.handler.pkgs=HTTPClient
    -jar ${Oc4jDcmClient.jar}
    ${dcm.servlet.url} ${username} ${password}
    redeploy ${remote.oracle.home}
    ${ear.file} ${j2ee.app.name} ${oc4j.instance.name}
    With a maven plugin- wrapping the deployment (possible even to the embedded OC4J) you could then look at get away without maintaining the libraries in the JPR. The JPR the becomes the configuration file for the IDE interaction only without affecting the build. For debugging, you can deploy to a standalone instance and start it using:
    java -server -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000 -jar oc4j.jar
    Then connect to the port specified. The primary project I was working on was developed in Netbeans and deployed to SJSAS. I have since switch this project to working with JDeveloper 11.1.1 as the IDE and doing remote debugging from the IDE connecting to the SJSAS debug port.
    Note, that the maven plugin development for the managing of these aspects should be easier with JDeveloper 11.1.1 and the integrated WLS.
    Have you used this approach in a project that uses ADF Business Components? - Yes, I have used it on one of the smaller ADF projects that had already been produced by the team. This project has all the maven features and ability to deploy to the remotes AS via ant scripts. The approach worked in both the dev and test environments. However, for final deployment, I still used the deployment profile to be consistent with the rest of the team.
    Regards,
    Graeme.

  • Packed Project Library error: contains compiled code

    I was trying to figure out how the packed library works for LVOOP, but face a wall with an error and don't know how to solve it.
    i) I made a class 'Class 1', which I then put in a library called 'library'.
    ii) I create a Packed Library and set the top-level library in the source files
    iii) Once compiled and saved, I create a new project and add the newly create Packed Project Library to it. Second I add a newly create class, named 'Class 2'.
    iv) I set the inheritance of the Class 2 as a child of Class 1.
    v) select new VI for Override
    vi) get Error 1035
    What am I doing wrong or how to solve this?
    Solved!
    Go to Solution.

    The default setting for packing VIs into lvlibp's will remove the block diagram.
    You must not remove the block diagram for dynamic dispatch VIs you are going to override.
    hope this helps,
    Norbert
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.

  • Packed project library 1003 error when building it

    Hi,
    I am trying to build packed project library, but I get 1003 error. I have tried all things suggested in other threads regarding the 1003 error, but nothing helps.
    My two project HardwareSpecificFunctionalities and ModuleTemplate are attached. HardwareSpecificFunctionalities PPL is used in the ModuleTemplate's VIs. When I am trying to build ModuleTemplate PPL I get 1003 error saying that one VI is broken, but actually it is not. If I remove the ReadOffset.vi from the AcquisitionInitialization_Main.vi, the ModuleTemplate PPL is build successfully.
    Have anybody an idea what is wrong?
    Attachments:
    PPL problem.zip ‏1230 KB

    Hello Andrej.
    I just noticed that in document LabVIEW 2011 and 2011 SP1 Known Issues (http://www.ni.com/white-paper/13164/en#323425_by_C​ategory) it is stated that this bug will be fixed in LV 2012 (32 bit).
    This version of LV will be available in August 2012.
    All workarounds that are known, are the one that are described in this link.
    Kind regards,
    Sofija

  • Packed Project Library Shared With OI?

    I have an application which needs to share some resources/instruments with TestStand steps.  The requirements require the application to communicate with these resources/instruments with or without the TestStand Engine running.
    I understand that the suggested approach is to ONLY place instrumentation code in a test sequence.  However, what is the best approach if the application requirements dictate the resource/instrument must be shared?
    Can a packed project library be shared with the operator interface?
    Is a source distribution the only option?
    CLA, CTA
    Solved!
    Go to Solution.

    > What Language are you using?
    LabVIEW
    > Is it possible to get a more detailed explanation of what you are trying to do?
    Read and write from instruments in both my Code Modules and my Operator Interface
    Implement Diagnostic Panels without requiring the TestStand Engine
    When the TestStand engine is not running, I would like to read and write from the instruments in debug panels on the operator interface.
    Implement Status Panels without requiring the TestStand Engine
    During a TestStand Sequence, I only wish to read from the instruments in the operator interface (IO status panels).
    Implement a few high-speed timed loop state machines within LabVIEW.  These loops must start running as soon as the application is launched and for the lifetime of the application.  I would like to share the state/data of these loops with TestStand and allow a command/response interface.
    > It is possible in TestStand to run the test Sequence in a independent execution as long as it has the references to the source files.
    What if I want to start a VI that talks with an instrument.  Why can't I open a serial port in the OI and pass the session to the TestStand API?
    Why is is "better" to call a Code Module VI in a new execution vs just calling the VI from the Operator Interface?  For example, if I want to display the "status panel" of a digital input card...
    > You mentioned that you need the program to sometimes run even if TestStand is not running, will these programs ever be running at the same time?
    There will only be a single application that launches the TestStand Engine.
    The idea is that the program utilizes the TestStand engine to run automated tests.  I would like to allow the OI to read the current values (status panels) while TestStand both reads and writes.
    Additional Questions
    I would like to understand how TestStand executes LabVIEW VIs differently with the Development and Run-Time adapters.
    If I run a TestStand sequence with the LabVIEW Development System Adapter, from my Operator Interface (OI) I can call code modules and vice versa.  This will work for VIs within the context "Main Application Instance" (no project).
    When I deploy this system using the LabVIEW Run-Time Engine with a built "Operator Interface" EXE, it seems they may run in different "Contexts".
    Why is the separation between User/Operator Interface and Code Modules required?
    The TestStand Reference Manual states "Do not use instrumentation code in user interfaces".  Why?
    If I change the Preferred Execution System in the LabVIEW VI (that is running in the OI) settings to "standard" is this ok?
    I hope this detailed response explains my goals adequately.  Thanks for your assistance.
    CLA, CTA

  • COPA reporting with open and closed projects

    Dear All,
    I am designing a COPA solution for an infrastructure providing company using project systems and posting to/settling out of projects on a monthly basis. Projects run for long periods and continually incurr costs and earn revenue untill they are closed. The requirement is to report by common characteristics (say customer group) and separately for open and closed projects. My issue is how to separate the line items of projects where status changed to closed (having posted with the status REL previously), from the open ones, without entering the projects individually in the selections screen.
    Any ideas will be greatly appreciated.
    Thanks,
    Maddy

    Dear Satya,
    http://help.sap.com/saphelp_erp2005/helpdata/en/75/ee0bbd55c811d189900000e8322d00/content.htm
    An item of a purchase requisition is only regarded as Closed if the requested order quantity has been included in a purchase order.
    You can also set an item to Closed manually. <b>This item will then not be taken into account by the materials planning and control system.</b>
    You can set the Closed indicator manually at the following points (it can later be cancelled if necessary):
    When changing a purchase requisition, on the item detail screen
    When creating a purchase order referencing a requisition, on the item detail screen of the PO
    You can still create purchase orders by referencing a requisition if this indicator has been set in the requisition concerned.
    The indicator can also be set in the case of automatic PO generation from purchase requisitions. On the initial screen of the requisition, you can specify that the requisition is to count as closed as soon as an associated purchase order has been generated, even if the complete quantity requested has not been ordered, for example (Set reqs. to "closed" indicator).
    Analyses of Purchase Requisitions:
    http://help.sap.com/saphelp_erp2005/helpdata/en/75/ee1fa755c811d189900000e8322d00/frameset.htm (visit section under Reporting in Purchasing)
    Hope this will help.
    Regards,
    Naveen.

  • Sharing iMove Projects Libraries with different users on the same machine

    I was wonder how two different users on the same machine can
    share project libraries. Some Context:
    My daughter has some finished projects in her project library and
    I either want to import those project into my library or share them
    so both user accounts can access the projects (similar to how the
    event library is accessible)
    Note: I've already moving the project library to a shared disk (the one
    the event library is on) with no luck
    Using iMove 09
    tia...

    You need to move each project to the external drive from within iMovie. Be sure to use command-drag so you move, not copy.

  • LV 8.2 won't associate with VIs and uses 7.1 RTE?!?!

    Hi,
    I'm in the process of creating a new exe of our project. A strange thing keeps happening and I don't know what's wrong. I had LV 7.1 installed on the machine, as well as LV 8.2 to transition to the new version. I created an .lvproj and built a new .exe of our application. Lo and behold, it flashes the LV 7.1 flash screen and then asks me to select the VI I want to run, when i select the main VI of the application, it simply gives me an Error 9 message and says that that vi is compiled in version 8.2 of LV and won't open. I tried right-clicking on a vi and trying to force it to associate with 8.2, that didn't work. I uninstalled 7.1 and the 7.1 RTE entirely and when I try to run my LV 8.2 built exe it STILL manages to use the 7.1 run time from somewhere.
    After that I tried to re-associate them with 8.2 yet again to no avail. When i run my exe it just tries to open them in the non-existing 7.1 RTE and re-associates them all with 7.1. Please help, i think this is a bug.

    Justin,
    Thanks for the reply. I do understand how bizzare this must seem to you, I had the same reaction. I know perfectly well the behavior of LV built exe, been using it for 5 years. The problem here is the bizzare behavior of the .exe (any in fact, i've built several test vis and exes) on 3 different machines.
    I'll try to explain what's happening:
    1) I create a new project
    2) I add my Test.vi to the project
    3) I set my Test.vi as the startup vi (Test.vi simply calls my main vi via the vi reference).
    4) I build the exe and execute it
    5) Upon execution, an LV 7.1 splash screen pops up for a brief second and I get an Open VI file dialog box asking me to select a VI I want to open, all the VI files inside that window take on the appearance of LV7.1 icons, instead of 8.2. If I try to select a VI from that window, I get LabView load error 9: VI version (8.2) is newer than LabView version (7.1).
    I'm used to that error after you recompile a 7.1 vi to 8.2, but I don't even have LV7.1 installed. It seems like the exe is trying to use LV7.1 RTE to run itself instead of 8.2. I though I have 8.2 RTE automatically installed by LV Dev, but I guess not since it doesn't show in Add/Remove Programs menu, but it DOES show up in MAX under software, go figure. I wish I could get someone in NI to look into this. I've never had a problem like this, it is happening on 3 PCs here and is taking up a lot of work time. I have source code I can send as well as a short video of what's happening on my machine.

  • How to connect Template project and Implementation project

    Hi Experts,
         I would like to know how to connect Template project and Implementation project
        in Solution maneger.   Please help.
    Best regards,
       Gaito

    Hey Gaito,
    great. Now that you have a template project, you need to create one or more templates within the project template.
    Go to tab Templates (of your Templ Proj) and activate 'Global Rollout Functionnality' to be able to use the templates.
    Create a new template thanks to button create. Visibility will be set to red 'private'. You ll have to set it to visible so it becomes visible from your implementation project.
    You ll see when trying to do that next message 'No scenarios/configuration structures assigned to the template XXXX'. That means that in SOLAR01 you did not define a scenario that ll be used in template you re trying to create
    In order to do that go to SOLAR01 for template project, select/create scenarios in tab structure and set in column template value of your template (the one you re creating in SOLAR_PROJECT_ADMIN) and in Global Attribute set value t Global
    You l definitely find more info on this in sap document SMI310 (course). I don t know if you can find it on internet
    Hope this helps
    Regards
    Khalil

  • Software Systems Engineer (LV, LV RT, LV FPGA, CVI TestStand, Veristand, C/C++) available for full/part time and remote project work

    I am a software engineer with lots of experience in embedded and test systems. I am a certified TestStand developer, and recently finished a cRIO based embedded system for a medical device company using LV RT and LV FPGA. I have done a lot of TestStand customization and APIs to HIL and other test equipment and created my share of Windows/Linux based C++ applications and libraries.
    I am located in Southeast Michigan and interested in both local and remote project work, as well as full or part time employment.
    I will be at NIWeek 2010 on Wednesday and Thursday. I am holding a session on Simple TCP/IP messaging on Thursday.
    If you would like to meet during NIWeek and/or request my resume please email me at [email protected]

    I saw your posting on the LabView discussion forum concerning your need for a LabView Software Systems Engineer.
    I am a consultant and I am currently available for contract work.
    I have done the things you describe as experience you would like to have.
    I have attached a "Fact Sheet" which describes some of the systems I have built.
    You will notice that I am experienced with developing hardware systems and controls as well as software systems..
    I have over 20 years of experience developing these kinds of systems and have worked with many different kinds of hardware/computer interfaces as well as numerous different software environments.
    If you are interested in discussing this further please call or email me.
    Tom Moser
    ForMost Systems
    North Canton Ohio
    330-470-0404 begin_of_the_skype_highlighting              330-470-0404      end_of_the_skype_highlighting x202
    email:  [email protected]
    Attachments:
    IS 071410a .pdf ‏253 KB

  • Soft links and xcode projects

    In other unix environments using soft links ("ln -s") is a handy way of "abstracting away" at the file system level what a file or directory actually contains, so that its contents can be easily changed without having to modify the original file or directory. In other words, if I have eg. three versions of the same file, and several projects share the usage of one of those files, I can easily change which version of the file those projects will use by simply making a softlink that points to the file I want, and make those projects depend on that softlink (they see it as a regular file). If I later want to change the file in question, I only need to change the softlink to point to another version of the file.
    This is especially useful when dealing with a third-party library that gets regular updates. I can install the third-party library somewhere, with the version number of the library in the directory name, and have a more generic directory name as a softlink (as a concrete example, I could have a softlink named "cocos2d" pointing to a directory named "cocos2d-iphone-0.99.5"). If I update the library, I can install it in a new directory (eg. "cocos2d-iphone-1.0.1") and simply change the softlink to point to the new directory, and then recompile the projects that depend on it.
    The problem is that Xcode doesn't like softlinks. I don't know if this is a feature of MacOS X in general, or a quirk in Xcode in particular. The problem is that Xcode doesn't want any softlinks in any of its paths, and instead always resolves where the softlink is really pointing to. Thus if I add, for example, the file "libraries/cocos2d/cocos2d-ios.xcodeproj" to the project, what ends up in the project is actually a reference to "libraries/cocos2d-iphone-0.99.5/cocos2d-ios.xcodeproj". Thus the whole softlink is circumvented, making it useless. If I update the library in question, I have to go through all the projects that use it and change the references to point to the new directory. This causes only needless extra work.
    This resolving of softlinks only happens when adding a new file to the xcode project. Xcode doesn't seem to change them afterwards, if they already exist in the project. In the past I could get around this problem by editing the project file directly with a text editor and forcing the path to refer to the softlink. However, all the paths in xcode 4 projects seem to be obfuscated, making this impossible. Another possibility is to rename the directory in question with the name of the softlink, then add it to the project, then restore its original name and then add the soft link.
    Is there any better way of doing this?

    Hello I have probably exact same problem with source files whereas a constant location (my softlink) points to different version of the sources in a repository. For example:
    ../MyProject/DependantProjetXyz could point to
    ../Repository/DependantProjectXyz/V1.0
    ../Repository/DependantProjectXyz/V1.1
    My xcode project is setup with ../MyProject/DependantProjetXyz which is pretty useful as I don't need to update all the include and lib path everytime I update the dependancies.
    The main problem I am facing is that if I have a compilation error in the dependancies, xcode isn't able to automatically bring me to the error. It simply open the file and position at the very first line in the file. No highlight.
    I am forced to use contextual menu on the error then reveal in the log to find the line number and manually navigate to that line. In other words, I am almost back to good old command line compilation with separate text editor...
    BTW, this was all working fine before upgrade to xcode 4.
    Was a bug filed on this issue?

  • How to save inline images and attachments separatley?

    Hi,
    I want to save all inline images into a certain directory and all attachments into another directory.
    I use the following code to do this:
      Multipart multipart = (Multipart) message.getContent();
            for (int x = 0; x < multipart.getCount(); x++) {
                BodyPart bodyPart = multipart.getBodyPart(x);
                String disposition = bodyPart.getDisposition();
                if(disposition != null){
                     log.debug("Disposition: " + disposition);
                     if (disposition.equals(BodyPart.ATTACHMENT)) {
                          log.debug("Mail has attachment: ");
                         DataHandler handler = bodyPart.getDataHandler();
                         log.debug("FILENAME: " + handler.getName());                    
                         saveAttachment(session, bodyPart, emailData);
                     else if(disposition.equals(BodyPart.INLINE)){
                          log.debug("Mail has inline attachment: ");
                         DataHandler handler = bodyPart.getDataHandler();
                         log.debug("Inline FILENAME: " + handler.getName());
                         saveInlineAttachment(session, bodyPart, emailData);
                else {
                     log.debug(bodyPart.getContent());
            }This approach works when the email has inline images only or attachments only.
    It does not work when the email has both inline images and attachments. (Only the attachments are saved).
    Come someone please help me correct my solution so that it can process an email that has both inline images and attachments and save them in different directories.
    Thank you

    Thanks bshannon.
    It took me a while to understand what you meant but I think I finally got it.
    I modified the getText method in order to save the embedded images:
    private Image getImages(Part p, EmailData emailData, String ext) throws MessagingException, IOException {
             if (p.isMimeType("image/*")) {
                InputStream is = p.getInputStream();         
                BufferedImage im = ImageIO.read(is);
                String fileName = "attachments/inline/body " + inlineImageNumber++ + "." + ext;
                File imageFile = new File(fileName);
                ImageIO.write(im,ext,imageFile);
                is.close();
                emailData.getInlineAttachments().add(fileName);
                return null;
            if (p.isMimeType("multipart/related")) {
                Multipart mp = (Multipart)p.getContent();
                Image image = null;
                for (int i = 0; i < mp.getCount(); i++) {
                    Part bp = mp.getBodyPart(i);
                    if (bp.isMimeType("image/jpeg")) {
                        if (image == null){
                            image = getImages(bp, emailData, "jpg");
                        continue;
                    else if (bp.isMimeType("image/gif")) {
                        if (image == null){
                            image = getImages(bp, emailData, "gif");
                        continue;
                    else if (bp.isMimeType("image/bmp")) {
                        if (image == null){
                            image = getImages(bp, emailData, "bmp");
                        continue;
                    else if (bp.isMimeType("image/png")) {
                        if (image == null){
                            image = getImages(bp, emailData, "png");
                        continue;
                return image;
            else if (p.isMimeType("multipart/*")) {
                Multipart mp = (Multipart)p.getContent();
                for (int i = 0; i < mp.getCount(); i++) {
                    Image image = getImages(mp.getBodyPart(i), emailData, "");
                    if (image != null){
                        return image;
            return null;
        }

Maybe you are looking for